僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
メモリ6GBのCore i7(1.6GHz)にて9時間動かしても、
faultばかりが何万回だか何十万回だか何百万回だか続いて、
終わるまで待つ気になれなかった。
top(1)で見ると、当該スクリプトでCPU%は98前後..
で、スクリプトを一箇所書き換えて、Queenの数を4つに、盤面 を4x4に制限してみた。
$ time python at_random.py . . . 590 Times Fault 591 Times Fault 592 Times Fault 592 Times Fault and Success [[2, 0], [1, 3], [3, 2], [0, 1]] real 0m2.898s user 0m2.056s sys 0m0.840s
この場合は比較的早く出たが、
3927 Times Fault and Success [[3, 2], [1, 3], [0, 1], [2, 0]] real 0m19.259s user 0m13.580s sys 0m5.676s
のようなこともあった。
統計までは取らなかったが、大体一千回近く
失敗するようだ。
スクリプト自体に無限ループのような間違いは
ないみたいだけど。
4x4の他、5x5もわりと簡単にできた。
しかし、6x6は10分あまり、8万回以上失敗してもダメだった。
前の スクリプト(これも 一箇所で 複数に対応) で試すと、6x6のパターンは一種類(ひっくり返したり裏返したりを重複と見做せば) しかなさげ。
$ python eq2.py 0 1 2 3 4 5 0 | |♕| | | | | 1 | | | |♕| | | 2 | | | | | |♕| 3 |♕| | | | | | 4 | | |♕| | | | 5 | | | | |♕| |
ちなみに5x5は二種類ある模様。
$ python eq2.py 0 1 2 3 4 0 | | |♕| | | 1 |♕| | | | | 2 | | | |♕| | 3 | |♕| | | | 4 | | | | |♕| $ python eq2.py 0 1 2 3 4 0 | |♕| | | | 1 | | | | |♕| 2 | | |♕| | | 3 |♕| | | | | 4 | | | |♕| |
考えれば当たり前かもしれないが、確認したとしても 忘れてしまっている。
$ cat inc.py foo = 3 bar = 4 def fooprint(): print 'foo is ', foo def barprint(): print 'bar is ', bar
$ cat new.py #!/usr/bin/env python import inc inc.foo = 8 inc.fooprint() inc.barprint()
で実行すると、
$ python new.py foo is 8 bar is 4
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。