アカウント名:
パスワード:
これにさらに成/不成を考慮しなければならないので大変です。先手/後手は単純に組み合わせ数を考えて掛ければいいだけですが、と金は行止まりも二歩も関係ないので前提から変わりますから。
個人的には先手後手よりも成不成の場合分けの方が簡単な印象です。まだ未検証ですが、盤面に味方の「歩」がr枚、味方の「と」がs枚としかない場合、「と」の並べ方は、最上段の9升とその他の72升に分割することで、
s≦9の場合 Σ(m=0,m≦s)9Cs-m・72-rCms>9の場合 Σ(m=0,m≦9)9C9-m・72-rCs-9+m
と書き下せて、これと今回の結果の積を取れば局面の数が計算できるかと思います。
「と」の場合は「歩」のような縛りが無いので、既に埋まっている升を数え上げればすむのに対して、恐らく「歩」同様に置けない升のある「香」とか「桂」との組合せの方が場合分けが複雑なように思います。冒頭に「先手後手よりも成不成の場合分けの方が簡単」といったのも敵の「歩」の位置によって場合分けが必要だからです。
香は歩と全く同じルールでいけませんか?最上列に成っていない香が存在してはいけないだけなので。桂は制限が1列多くなるだけで、上から2列に成っていない桂が存在してはいけないだけ。
味方の「香」のみn枚ある場合の有効な盤面を考えるのであれば、72Cnと、同様に味方の「桂」がm枚しかない場合であれば64Cmと計算できるのですが、既に盤面に他の駒が有る場合に駒を置く位置が重ならないようにする場合わけが面倒ですよね。
例えば「香」が1枚、「歩」が1枚ある場合、盤面の場合の数は
72C1・72C1=5184通り
でもなく、
72C2=2556通り
72P2=5112通り
と順列を考慮するか、「香」と「歩」が重なって配置される72通りを先程の
72C1・72C1-72=5112
から除くか、あるいは埋まっている升目を考慮した、
72C1・71C1=5112
とするかだと考えています。個人的には最後の案が拡張しやすいのではないかと思います。
また味方の「香」が複数枚ある場合、それが同じ筋にあるかどうかでも場合分けが必要で、「歩」が9枚、「香」が3枚ある場合、
「香」が同じ筋に3枚 {9C1・8C3}・(8C1)7・5=5,284,823,040「香」が同じ筋に2枚 {9C1・8C2・8C1・8C1}・(8C1)6・7C1・6C1=177,570,054,144「香」が同じ筋に1枚 {9C3・(8C1)3}・(8C1)6・(7C1)3=3,867,081,179,136
と場合分けが必要となってくるかと思います。正直書いてて自分でもよくわからなくなってきてます。重複を考慮した順列で
72P12/(9!・3!)
からニ歩の場合を除いたものと比べてみないと、場合分けが正しいか判断できませんがしんどくなってきました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
成/不成 (スコア:1)
これにさらに成/不成を考慮しなければならないので大変です。
先手/後手は単純に組み合わせ数を考えて掛ければいいだけですが、
と金は行止まりも二歩も関係ないので前提から変わりますから。
Re:成/不成 (スコア:1)
個人的には先手後手よりも成不成の場合分けの方が簡単な印象です。
まだ未検証ですが、盤面に味方の「歩」がr枚、味方の「と」がs枚としかない場合、「と」の並べ方は、最上段の9升とその他の72升に分割することで、
と書き下せて、これと今回の結果の積を取れば局面の数が計算できるかと思います。
「と」の場合は「歩」のような縛りが無いので、既に埋まっている升を数え上げればすむのに対して、恐らく「歩」同様に置けない升のある「香」とか「桂」との組合せの方が場合分けが複雑なように思います。
冒頭に「先手後手よりも成不成の場合分けの方が簡単」といったのも敵の「歩」の位置によって場合分けが必要だからです。
Re:成/不成 (スコア:1)
香は歩と全く同じルールでいけませんか?
最上列に成っていない香が存在してはいけないだけなので。
桂は制限が1列多くなるだけで、上から2列に成っていない桂が存在してはいけないだけ。
Re:成/不成 (スコア:1)
味方の「香」のみn枚ある場合の有効な盤面を考えるのであれば、72Cnと、同様に味方の「桂」がm枚しかない場合であれば64Cmと計算できるのですが、既に盤面に他の駒が有る場合に駒を置く位置が重ならないようにする場合わけが面倒ですよね。
例えば「香」が1枚、「歩」が1枚ある場合、盤面の場合の数は
でもなく、
でもなく、
と順列を考慮するか、「香」と「歩」が重なって配置される72通りを先程の
から除くか、あるいは埋まっている升目を考慮した、
とするかだと考えています。
個人的には最後の案が拡張しやすいのではないかと思います。
また味方の「香」が複数枚ある場合、それが同じ筋にあるかどうかでも場合分けが必要で、「歩」が9枚、「香」が3枚ある場合、
と場合分けが必要となってくるかと思います。
正直書いてて自分でもよくわからなくなってきてます。
重複を考慮した順列で
からニ歩の場合を除いたものと比べてみないと、場合分けが正しいか判断できませんがしんどくなってきました。