9マス将棋の完全解析

どうぶつしょうぎの完全解析プログラムを改造した3三将棋の完全解析プログラムを、一般の9マス将棋に対応させた。 https://github.com/9-square-shogi/dobutsu dobutsu.hの26行目から31行目の初期局面を変更し、make && ./makeAllState && ./makeWinLoseで任意の駒の種類の9マス将棋を完全解析できる。 make checkStateして、init.txtに局面を入力し、./checkState init.txtで特定の局面の解析結果を表示できる。 makeWinLose.ccの連続王手の千日手を反則とする処理にバグがあるかもしれない。 初期局面を変更せずに、次のようなシェルスクリプトをdobutsuディレクトリと同じディレクトリで実行すると、約9時間半で3~6駒(玉を除けば1~4駒)の9マス将棋を全パターン完全解析し、最長手数の局面を求められる。(gem install partitionsが必要) #!/bin/bash for p in $(ruby -rpartitions -e ‘(1..4).each{|n| n.partitions{|p| [*p, *[0]*(7 – p.length)].permutation.uniq.each{|p| puts p.join("") } } }’) do echo $p && cp -r dobutsu $p && cd $p && perl -0777 -i -pE ‘s/0000000/’$p’/’ dobutsu.h && make -s && timeContinue reading “9マス将棋の完全解析”

メルセンヌ素数番目の三角数は完全数

まとめブログに完全数を連続する自然数の和で表したら最後の数はメルセンヌ数になることは証明できるかと書いてあった。 そんなことは証明されているだろうと思ってwikiを見たら、確かに 偶数の完全数は、1から連続する正の整数の和で表せる。 例: 6 = 1 + 2 + 3, 28 = 1 + 2 + 3 + 4 + 5 + 6 + 7, 496 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + … + 31 言い換えると、N(偶数の完全数)は2^p – 1番目の三角数である と書いてあった。 最近無意味な数学の問題を考えるのにハマっているので、このことを証明してみた。 以下ではnを正の整数、pを素数とする。 完全数とは、約数関数をσ(n)として σ(n)Continue reading “メルセンヌ素数番目の三角数は完全数”

Design a site like this with WordPress.com
Get started