成本函数-对数独网格的非整数使用计数器函数

时间:2018-11-22 10:56:44

标签: python sudoku

我目前正在尝试为Sudoku构建成本函数。我的随机9x9网格分配具有以下代码:

m = np.zeros((9,9)) #9x9 grid of all zeros 
vals = np.arange(1,10) #set of values from 1 to 9 aranged randomly
for i in range(0,9):
m[i,:] = np.random.choice(vals,size=9,replace=False) #randomly choses a set of 9 values for the row
print(m.astype(int)) #prints as integers

随后,我为此网格的每一列中的重复次数创建了一个分数:

m = m
i = 1
for i in range(0,9):  #produces the sum of the columns score values collectively 
print(sum([r - 1 for r in Counter((m[:,i])).values()])) 

我想知道是否有一种方法可以生成每个Nonet的分数? (9x9数独网格的每个3x3分组)

我感觉我将不得不为每个3x3网格划分一个小节,然后以与上述相同的方式使用Counter函数生成重复项,但是我不确定如何执行此操作。

0 个答案:

没有答案