昨日まったく手が出なかった4x4の魔法陣
1行決め打ちして検索かければ16までの階乗ではなくて12までの階乗
これなら見つかるのではと挑戦してみました。
ようやくひとつ見つけました。
これの回転や鏡像で8つ。全部で7040あるらしい。
<実行結果>
34
10000000 : 11.744559526443481
[2, 5, 13, 11, 3, 4, 15, 7, 12, 10, 14, 6]
20000000 : 23.275845050811768
[2, 10, 11, 4, 3, 6, 14, 13, 7, 5, 15, 12]
30000000 : 34.80860471725464
[2, 13, 5, 12, 3, 7, 11, 15, 14, 10, 6, 4]
40000000 : 46.42683506011963
[3, 2, 4, 7, 5, 12, 13, 10, 14, 11, 15, 6]
50000000 : 58.26629424095154
[3, 5, 13, 14, 2, 11, 7, 12, 6, 4, 15, 10]
60000000 : 69.74955892562866
[3, 10, 11, 6, 2, 14, 5, 15, 13, 12, 7, 4]
70000000 : 81.34218716621399
[3, 13, 5, 15, 2, 14, 6, 7, 11, 10, 12, 4]
80000000 : 92.89773941040039
[4, 2, 3, 11, 6, 5, 7, 14, 12, 10, 15, 13]
90000000 : 104.76050329208374
[4, 5, 14, 2, 6, 3, 15, 13, 12, 11, 10, 7]
100000000 : 116.26694178581238
[4, 10, 11, 12, 3, 5, 15, 6, 13, 7, 14, 2]
110000000 : 127.90181851387024
[4, 13, 6, 3, 5, 10, 14, 12, 7, 2, 15, 11]
120000000 : 139.4261031150818
[5, 2, 3, 13, 6, 11, 12, 15, 14, 10, 7, 4]
130000000 : 150.92682147026062
[5, 4, 14, 6, 3, 12, 11, 7, 13, 10, 15, 2]
140000000 : 161.92701482772827
[5, 10, 11, 14, 3, 13, 6, 12, 4, 2, 15, 7]
150000000 : 172.90365481376648
[5, 13, 6, 7, 3, 15, 4, 14, 12, 11, 10, 2]
160000000 : 183.77817273139954
[6, 2, 3, 15, 7, 4, 10, 11, 13, 12, 14, 5]
170000000 : 195.3058910369873
[6, 4, 14, 10, 5, 3, 2, 13, 11, 7, 15, 12]
180000000 : 206.3334219455719
[6, 10, 12, 2, 5, 4, 15, 14, 13, 11, 7, 3]
190000000 : 217.3209490776062
[6, 13, 5, 11, 4, 7, 15, 3, 12, 10, 14, 2]
200000000 : 228.12351965904236
[7, 2, 4, 5, 10, 12, 14, 13, 6, 3, 15, 11]
210000000 : 239.65738916397095
[7, 4, 14, 12, 5, 11, 10, 15, 13, 6, 3, 2]
220000000 : 250.61284399032593
[7, 10, 12, 4, 5, 14, 11, 3, 13, 6, 15, 2]
[1, 8, 9, 16]
[7, 13, 4, 10]
[14, 2, 15, 3]
[12, 11, 6, 5]
230000000 : 261.6173732280731
[7, 13, 5, 14, 4, 15, 6, 11, 3, 2, 12, 10]
240000000 : 272.3586223125458
[10, 2, 4, 7, 11, 3, 6, 15, 14, 13, 12, 5]
250000000 : 283.859934091568
[10, 4, 14, 15, 6, 3, 5, 7, 12, 11, 13, 2]
260000000 : 294.93348264694214
[10, 7, 12, 6, 5, 4, 2, 14, 11, 3, 15, 13]
270000000 : 305.83327627182007
[10, 13, 6, 2, 7, 5, 15, 14, 12, 11, 4, 3]
280000000 : 316.7132635116577
[11, 2, 4, 12, 7, 10, 15, 5, 13, 6, 14, 3]
290000000 : 328.3028371334076
[11, 4, 15, 3, 7, 12, 13, 10, 5, 2, 14, 6]
300000000 : 339.33490681648254
[11, 7, 12, 13, 5, 14, 6, 15, 10, 4, 3, 2]
310000000 : 350.1821541786194
[11, 13, 6, 4, 7, 15, 10, 3, 12, 5, 14, 2]
320000000 : 361.02992939949036
[12, 2, 4, 14, 10, 3, 7, 13, 6, 5, 15, 11]
330000000 : 372.5566818714142
[12, 4, 15, 6, 10, 3, 5, 14, 13, 11, 7, 2]
340000000 : 383.59499073028564
[12, 7, 11, 15, 6, 4, 3, 5, 13, 10, 14, 2]
350000000 : 394.5144340991974
[12, 13, 6, 7, 10, 5, 2, 14, 4, 3, 15, 11]
360000000 : 405.3295841217041
[13, 2, 5, 3, 11, 10, 15, 14, 12, 7, 6, 4]
370000000 : 416.85606122016907
[13, 4, 15, 10, 7, 11, 14, 3, 6, 5, 12, 2]
380000000 : 427.7447681427002
[13, 7, 12, 3, 10, 14, 11, 6, 4, 2, 15, 5]
390000000 : 438.63672852516174
[13, 12, 6, 11, 7, 15, 5, 14, 10, 4, 3, 2]
400000000 : 449.4044051170349
[14, 2, 5, 6, 12, 3, 11, 7, 13, 10, 15, 4]
410000000 : 461.0810923576355
[14, 4, 15, 12, 10, 3, 6, 11, 5, 2, 13, 7]
420000000 : 471.96153259277344
[14, 7, 12, 5, 11, 4, 3, 15, 13, 10, 6, 2]
430000000 : 482.89475536346436
[14, 12, 6, 15, 10, 5, 3, 4, 11, 7, 13, 2]
440000000 : 493.70243287086487
[15, 2, 5, 10, 12, 11, 3, 13, 6, 4, 14, 7]
450000000 : 505.2674822807312
[15, 5, 2, 3, 12, 11, 14, 13, 10, 7, 6, 4]
460000000 : 516.0992834568024
[15, 7, 12, 10, 11, 13, 14, 3, 5, 4, 6, 2]
470000000 : 526.9595994949341
[15, 12, 7, 3, 11, 14, 10, 6, 4, 2, 13, 5]
1行決め打ちして検索かければ16までの階乗ではなくて12までの階乗
これなら見つかるのではと挑戦してみました。
ようやくひとつ見つけました。
これの回転や鏡像で8つ。全部で7040あるらしい。
import itertools import time st=time.time() lineNum=int(sum([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])/4) baseLine=[1,8,9,16] print(lineNum) #n = itertools.permutations([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16], 16) n = itertools.permutations([2,3,4,5,6,7,10,11,12,13,14,15], 12) c=0 for i in n: c+=1 a=list(i) if c%10000000==0: print(c,":",time.time()-st) print(a) if a[3]>4: if sum(a[0:4])==34==sum(a[4:8]): a=[1,8,9,16]+a if sum(a[8:12])==sum(a[12:16])==sum(a[0:16:4])==sum(a[1:16:4])==sum(a[2:16:4])==sum(a[3:16:4])==sum(a[0:16:5])==sum(a[3:13:3]): print(a[0:4]) print(a[4:8]) print(a[8:12]) print(a[12:16]) print(" ")
<実行結果>
34
10000000 : 11.744559526443481
[2, 5, 13, 11, 3, 4, 15, 7, 12, 10, 14, 6]
20000000 : 23.275845050811768
[2, 10, 11, 4, 3, 6, 14, 13, 7, 5, 15, 12]
30000000 : 34.80860471725464
[2, 13, 5, 12, 3, 7, 11, 15, 14, 10, 6, 4]
40000000 : 46.42683506011963
[3, 2, 4, 7, 5, 12, 13, 10, 14, 11, 15, 6]
50000000 : 58.26629424095154
[3, 5, 13, 14, 2, 11, 7, 12, 6, 4, 15, 10]
60000000 : 69.74955892562866
[3, 10, 11, 6, 2, 14, 5, 15, 13, 12, 7, 4]
70000000 : 81.34218716621399
[3, 13, 5, 15, 2, 14, 6, 7, 11, 10, 12, 4]
80000000 : 92.89773941040039
[4, 2, 3, 11, 6, 5, 7, 14, 12, 10, 15, 13]
90000000 : 104.76050329208374
[4, 5, 14, 2, 6, 3, 15, 13, 12, 11, 10, 7]
100000000 : 116.26694178581238
[4, 10, 11, 12, 3, 5, 15, 6, 13, 7, 14, 2]
110000000 : 127.90181851387024
[4, 13, 6, 3, 5, 10, 14, 12, 7, 2, 15, 11]
120000000 : 139.4261031150818
[5, 2, 3, 13, 6, 11, 12, 15, 14, 10, 7, 4]
130000000 : 150.92682147026062
[5, 4, 14, 6, 3, 12, 11, 7, 13, 10, 15, 2]
140000000 : 161.92701482772827
[5, 10, 11, 14, 3, 13, 6, 12, 4, 2, 15, 7]
150000000 : 172.90365481376648
[5, 13, 6, 7, 3, 15, 4, 14, 12, 11, 10, 2]
160000000 : 183.77817273139954
[6, 2, 3, 15, 7, 4, 10, 11, 13, 12, 14, 5]
170000000 : 195.3058910369873
[6, 4, 14, 10, 5, 3, 2, 13, 11, 7, 15, 12]
180000000 : 206.3334219455719
[6, 10, 12, 2, 5, 4, 15, 14, 13, 11, 7, 3]
190000000 : 217.3209490776062
[6, 13, 5, 11, 4, 7, 15, 3, 12, 10, 14, 2]
200000000 : 228.12351965904236
[7, 2, 4, 5, 10, 12, 14, 13, 6, 3, 15, 11]
210000000 : 239.65738916397095
[7, 4, 14, 12, 5, 11, 10, 15, 13, 6, 3, 2]
220000000 : 250.61284399032593
[7, 10, 12, 4, 5, 14, 11, 3, 13, 6, 15, 2]
[1, 8, 9, 16]
[7, 13, 4, 10]
[14, 2, 15, 3]
[12, 11, 6, 5]
230000000 : 261.6173732280731
[7, 13, 5, 14, 4, 15, 6, 11, 3, 2, 12, 10]
240000000 : 272.3586223125458
[10, 2, 4, 7, 11, 3, 6, 15, 14, 13, 12, 5]
250000000 : 283.859934091568
[10, 4, 14, 15, 6, 3, 5, 7, 12, 11, 13, 2]
260000000 : 294.93348264694214
[10, 7, 12, 6, 5, 4, 2, 14, 11, 3, 15, 13]
270000000 : 305.83327627182007
[10, 13, 6, 2, 7, 5, 15, 14, 12, 11, 4, 3]
280000000 : 316.7132635116577
[11, 2, 4, 12, 7, 10, 15, 5, 13, 6, 14, 3]
290000000 : 328.3028371334076
[11, 4, 15, 3, 7, 12, 13, 10, 5, 2, 14, 6]
300000000 : 339.33490681648254
[11, 7, 12, 13, 5, 14, 6, 15, 10, 4, 3, 2]
310000000 : 350.1821541786194
[11, 13, 6, 4, 7, 15, 10, 3, 12, 5, 14, 2]
320000000 : 361.02992939949036
[12, 2, 4, 14, 10, 3, 7, 13, 6, 5, 15, 11]
330000000 : 372.5566818714142
[12, 4, 15, 6, 10, 3, 5, 14, 13, 11, 7, 2]
340000000 : 383.59499073028564
[12, 7, 11, 15, 6, 4, 3, 5, 13, 10, 14, 2]
350000000 : 394.5144340991974
[12, 13, 6, 7, 10, 5, 2, 14, 4, 3, 15, 11]
360000000 : 405.3295841217041
[13, 2, 5, 3, 11, 10, 15, 14, 12, 7, 6, 4]
370000000 : 416.85606122016907
[13, 4, 15, 10, 7, 11, 14, 3, 6, 5, 12, 2]
380000000 : 427.7447681427002
[13, 7, 12, 3, 10, 14, 11, 6, 4, 2, 15, 5]
390000000 : 438.63672852516174
[13, 12, 6, 11, 7, 15, 5, 14, 10, 4, 3, 2]
400000000 : 449.4044051170349
[14, 2, 5, 6, 12, 3, 11, 7, 13, 10, 15, 4]
410000000 : 461.0810923576355
[14, 4, 15, 12, 10, 3, 6, 11, 5, 2, 13, 7]
420000000 : 471.96153259277344
[14, 7, 12, 5, 11, 4, 3, 15, 13, 10, 6, 2]
430000000 : 482.89475536346436
[14, 12, 6, 15, 10, 5, 3, 4, 11, 7, 13, 2]
440000000 : 493.70243287086487
[15, 2, 5, 10, 12, 11, 3, 13, 6, 4, 14, 7]
450000000 : 505.2674822807312
[15, 5, 2, 3, 12, 11, 14, 13, 10, 7, 6, 4]
460000000 : 516.0992834568024
[15, 7, 12, 10, 11, 13, 14, 3, 5, 4, 6, 2]
470000000 : 526.9595994949341
[15, 12, 7, 3, 11, 14, 10, 6, 4, 2, 13, 5]