1樓:
這是乙個到25的數獨,5*5,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10
16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6
12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11
17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7
13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12
18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8
14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13
19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9
15 16 17 18 19 25 21 2 3 4 10 1 12 13 9 5 6 7 8 14 20 11 22 23 24
25 21 22 3 4 20 1 7 23 24 5 6 2 8 14 15 11 12 13 9 10 16 17 18 19
20 1 2 23 24 5 6 22 8 9 25 11 7 3 4 10 16 17 18 19 15 21 12 13 14
這是乙個5*6=30的數獨結果(每6*5為1宮)
1 : 0.2423710823059082
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11
17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12
18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13
19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14
20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
以上資料用以下python生成
import time
N=30
NA=5
NB=6
format="%2d"
m = [0]*N*N
log_m=
num=0
def xy2n(x,y):
n=x+y*N
return n
def n2xy(n):
x=n%N
y=n//N
return (x,y)
def n2uv(n):
(x,y)=n2xy(n)
u=x // NA + y//NB * NB
v=x % NA + y %NB * NA
return (u,v)
def uv2n(u,v):
x= u % NB * NA + v % NA
y= u // NB * NB + v // NA
n=xy2n(x,y)
return n
def all_fill(m,n):
if(n>=N*Nreturn False
if(m[n]>0return False
for z in range(1,N+1h=(z+n)%N+1
if(is_valid(m,n,hm[n]=hif(n==N*N-1log(mall_fill(m,n+1m[n]=0
def is_valid(m,n,z):
if(m[n]>0return False
(x,y)=n2xy(n)
(u,v)=n2uv(n)
for k in range(0,Nif(x!=k and m[xy2n(k,y)]==z): #同列重複return False
if(y!=k and m[xy2n(x,k)]==z): #同行重複return False
if(v!=k and m[uv2n(u,k)]==z): #同區重複return False
return True
def output (m):
for y in range(0,Nfor x in range(0,Nn=xy2n(x,yprint(format%m[n],end=" "print()
def log(m):
global num
global t
num+=1
if(num%100==1print(num,":",(time.time()-toutput(m)
t=time.time()
for n in range(0,N):
m[n]=n+1
all_fill(m,N)
for n in range(1,N+1):
num*=n
print("total:" +str(num))
那麼是否可以生成更大的? 可以,只是我的python直譯器的堆疊溢位了,不支援更多層的遞迴,
如果要繼續大,要自己寫遞迴的部分。
數獨候選數較多,請問用什麼方法解題?
小溪溪溪水 首先牢記的就是不要侷限於某乙個格可以填什麼數字,千萬不能這麼想。拿到一片數獨,要有大局觀。第一步 只有這一步,反覆重複3遍 從1開始看,看整篇格仔裡所有能填1的數,這裡的能填指的是100 為1,那就把1填進去,從1找到9,重複上述過程。在此過程中把81個格看成3x3的9個小塊,在找1 9...
該數獨,還有什麼辦法不需要假設的
H1236rt 這題目有乙個位置可使用X wing刪數,但沒有效率。利用UR位置的強關係,去構造一條新鏈就可以達到高效率地解題 本鏈之後可以直達終盤。理解方法 綠色方框四個格中,如果去掉2與4,就會出現此四個格的填數均為5或9,可以互換填入,與陣列唯一解規則矛盾。故可以得到了2與4不能同時為假,有強...
多層建築每半層的台階數為什麼是 9 ?
張士強 樓梯踏步是由步高和步寬組成的,一般來說步高 步寬不大於45厘公尺,同時樓梯坡度 梯間進深均是在設計時須考慮的問題,以上所說的步數一般限於民用住宅,其它公用建築及大型辦公樓等則不等於9步之說。 你說的 每層2大階,每一大階有9級台階 在建築上稱為雙跑樓梯,你說的每一大階建築上成為一跑。因為 1...