數獨為什麼只到 9?

時間 2021-11-02 22:05:29

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...