Perft
(緩募) この数列(Number of possible chess games at the end of the n-th ply)の将棋版(30,900,...)をどなたかご存じでしたらご教示ください(できればn=10まで) oeis.org/A048987
2015-05-27 12:31:46@igatoxin n手目の局面までの指し手列が何通りあるか、です。将棋だと初手が30通りあるのでX(1)=30、2手目も30通りあるのでX(2)=30×30=900です(n=0のときはX(0)=1と定義するようです)。もっと厳密な定義をお尋ねでしょうか?
2015-05-27 13:47:10@math26 ありがとうございます。終局に絡むのかと思いちょっと悩んでしまいました。 このような問題に関してはもしかしたら篠田正人教授が詳しいかもしれないですね。
2015-05-27 13:53:54@igatoxin あ、本人です(笑) チェスだと「n手目でcheckmate」の数も数えられているようですね。 wismuth.com/chess/statisti…
2015-05-27 14:04:28@math26 n手目までの合法指し手が何通りあるかがまとめてあると、コンピュータ将棋のプログラムチェックとかに役に立ちそうな気がして(終局判定もチェックするためにn>7がいいかなと)
2015-05-27 14:12:37@math26 もしかしたらとは思ってはいたんですが、失礼しました(笑)あと心当たりは大槻先生くらいですが多分やってないですね……いまなら将棋ソフトの作者の方々に計算をお願いしたらすぐにできてしまいそうですね。
2015-05-27 14:15:53@igatoxin いえいえ(笑)自分でプログラムいじるより、将棋ソフト開発されている方にお聞きしたほうが早いかなと思って手を抜きました。ただ、チェスでn=13まで、となると将棋ではn=11,12くらいで大変なのかもしれません
2015-05-27 14:27:22@math26 Perftですね。 chessprogramming.wikispaces.com/Perft?response… CraftyやStockFishに実装もあります。Ponanzaでは・・飛車角とかの不成を作成してないのでわからないです・・
2015-05-27 15:38:32[0 1] [1 30] [2 900] [3 25440] [4 718565] [5 19778301] [6 544123956]
2015-05-27 15:52:33GPS将棋でコマンド入力すれば出るみたいですね。 $usi $perft [depth] ここから先は時間がかかりそうなので@math26 さんにお願いします
2015-05-27 15:53:48X(0)=1,X(1)=30,X(2)=900,X(3)=25440,X(4)=718565,X(5)=19778301,X(6)=544123956,X(7)=14906093373ですか。nを1増やすと時間が約30倍かかるとすると、うちの環境ではn=10までは無理っぽい
2015-05-27 16:25:31n=3以降でnを1増やしても30倍を少し切ってて「?」と思ったけど、玉を立ったり金上がったりすると飛車の可動域が減っちゃうから、ですね
2015-05-27 16:27:51@issei_y うん、Blunder。今飛車・角・歩の不成を除外したやつでやってみたら19778301とかになったから、GPSのも不成は入ってないみたい。
2015-05-27 21:27:12@issei_y @ak11 n=3だと「▲76歩(△44歩以外)▲33角不成」の29通り、「▲76歩△34歩▲22角不成」の1通りが除外されて25470-30=25440のようですね。ありがとうございました
2015-05-27 22:06:39