パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

4x4の魔法陣を一つ見つける

2018-09-15 | Python
昨日まったく手が出なかった4x4の魔法陣
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]


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。