Я сейчас пытаюсь построить функцию стоимости для Судоку.У меня есть следующий код для моего случайного назначения сетки 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()]))
ЯИнтересно, есть ли способ получить оценки для каждого нонета?(каждая группировка 3x3 сетки 9x9 Sudoku)
Мне кажется, что мне придется взять подраздел для каждой сетки 3x3, а затем произвести дублирование с использованием функции Counter таким же образом, как указано выше, но я не уверенотносительно того, как это сделать.