むつかしいです

どうにかうまいこと先読みせずに、つまり「失敗→やり直し」という過程を経ることなく、id:Nabetani:20061217#p1を解くプログラムが書けないものかとあれこれやってみたが、理論的に無理っぽい気がしてきた。つまり、

[[a1, a2], [b1, b2], c1]

というグループ構成の集団があったとき、僕の数え上げ方が間違っていなければ(←間違っていた。追記を見よ)、プレゼント交換の可能なパターンは

a1→b1→a1, a2→b2→c1→a2
a1→b1→a1, a2→c1→b2→a2
a1→b1→a2→b2→c1→a1
a1→b1→a2→c1→b2→a1
a1→b1→c1→a2→b2→a1
a1→b1→c1→a1, a2→b2→a2
a1→b2→a1, a2→b1→c1→a2
a1→b2→a1, a2→c1→b1→a2
a1→b2→a2→b1→c1→a1
a1→b2→a2→c1→b1→a1
a1→b2→c1→a2→b1→a1
a1→b2→c1→a1, a2→b1→a2
a1→c1→b1→a2→b2→a1
a1→c1→b2→a1→b1→a1

の14通りとなるのだけれども、「先読み→失敗」という過程を経ない限り、ここで7という素因数を導入することは不可能なのではないか、ということ。

追記

早速数え落としを見つけた。

a1→c1→b1→a1, a2→b2→a2
a1→c1→b2→a2, a2→b1→a2

が残っていた。これで合計は16(=2^4)通りとなったので、もしかしたらいけるんじゃないの、という気にはちょっとなる。しかしそれでも、a1からの最初の選択肢を選ぶにあたって、採用すべき確率の比が6:6:4であることを事前に教えるアルゴリズムが書けるかどうかは、やはりよく分からない。