用python 写一个随机数独
时间: 2023-09-13 19:07:32 浏览: 61
这里是一个用 Python 写的随机数独生成器:
```python
import random
def generate_sudoku():
base = 3
side = base*base
def pattern(r,c): return (base*(r%base)+r//base+c)%side
rows = [ g*base + r for g in shuffle(range(base)) for r in shuffle(range(base)) ]
cols = [ g*base + c for g in shuffle(range(base)) for c in shuffle(range(base)) ]
nums = shuffle(range(1,base*base+1))
# produce board using randomized baseline pattern
board = [ [nums[pattern(r,c)] for c in cols] for r in rows ]
squares = side*side
empties = squares * 3//4
for p in sample(range(squares),empties):
board[p//side][p%side] = 0
return board
def shuffle(s): return random.sample(s,len(s))
def sample(s,n): return shuffle(s)[:n]
```
通过调用 `generate_sudoku()` 函数可以生成一个随机的数独,其中 0 表示空格。您可以在此基础上进行修改以实现您自己的需求。