代码拉取完成,页面将自动刷新
import pandas as pd
import numpy as np
from time import sleep
from datetime import datetime
from multiprocessing import Manager
from multiprocessing import Process
class Soduku:
def NewData(self):
dataDf = pd.read_excel('SudokuData.xlsx', header = None)
for index in range(len(dataDf), 9):
dataDf = dataDf.append({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0}, ignore_index = True)
for index in range(len(dataDf.columns), 9):
dataDf[index] = [0, 0, 0, 0, 0, 0, 0, 0, 0]
dataDf = dataDf.where(dataDf.notnull(), 0)
dataDf = dataDf.astype(np.int)
dataArray = np.array(dataDf)
# 创建备选数
backupList = [['123456789' for x in range(9)] for x in range(9)]
backupArray = np.array(backupList)
backupArray = np.where(dataArray == 0, backupArray, '')
return [dataArray, backupArray]
# 备选数组
def BackupNumebrArray(self, dataArray, backupArray):
# 计算已使用数字, 去除备选
# 行
for rowIndex in range(9):
rowItem = dataArray[rowIndex]
backupItem = backupArray[rowIndex]
usedItem = ''.join([str(x) for x in rowItem])
usedItem = usedItem.replace('0', '')
for colIndex in range(9):
for item in usedItem:
backupItem[colIndex] = backupItem[colIndex].replace(item, '')
# 列
for colIndex in range(9):
colItem = dataArray[:,colIndex]
backupItem = backupArray[:,colIndex]
usedItem = ''.join([str(x) for x in colItem])
usedItem = usedItem.replace('0', '')
for rowIndex in range(9):
for item in usedItem:
backupItem[rowIndex] = backupItem[rowIndex].replace(item, '')
# 九宫格
for rowIndex in range(0, 9, 3):
for colIndex in range(0, 9, 3):
regionItem = dataArray[rowIndex : rowIndex + 3, colIndex : colIndex + 3]
backupItem = backupArray[rowIndex : rowIndex + 3, colIndex : colIndex + 3]
usedItem = [*regionItem.flat]
usedItem = ''.join([str(x) for x in usedItem])
usedItem = usedItem.replace('0', '')
for x in range(3):
for y in range(3):
for item in usedItem:
backupItem[x, y] = backupItem[x, y].replace(item, '')
# backupArray = np.where(backupArray == '', dataArray, backupArray)
return backupArray
dataArray, backupArray = Soduku().NewData()
print(Soduku().BackupNumebrArray(dataArray, backupArray))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。