

しらみ潰しによる求解・数え上げ 
番外編。 効率的な探索プログラム
- 2×2人のリーグ戦 (C++プログラムによるしらみ潰し探索1)
- 単純なプログラムで探索し計算時間にある程度時間がかかっても、プログラムを工夫してい間に答えが出る場合もある。
- しかし、そうでない場合もあり、この場合は対象性などを考慮し、かつ事前に頻繁に登場するパターンをリスト化しておくことにより、圧倒的に早くなる場合がある。これはその一例である。
- さらに、ビットパタン演算を用いることにより複数の操作を、ベクトル化できる場合がある。ただしこの場合は早くなっても1桁程度である。
- 2×2人のリーグ戦9人版 (C++プログラムによるしらみ潰し探索2)
- 上記の問題の設定を少し変えてみたものである。
- 内容的にはほぼ同じ。
- 砂漠の冒険 (C++プログラムによる「思い込み+しらみ潰し」探索)
- T Uのような工夫をしても多大な計算時間を要するような場合、経験的事実をプログラムに持ち込むことにより数学的には完全ではないかもしれないが、実用的には十分という解を得ればよいという考え方もある。
- この問題は「未菜実の数理パズル入門」の問題です。
- ミキソミノの探索 (C++プログラムによるしらみ潰し探索 基本編)
- ペントミトの探索方法は、プログラミングの初歩の教科書として、かつては、良く用いられていました。
- 2次元の問題を1次元の、かつビットパターンの問題に置き換えられるという点で、コンピュータとは大変相性がよい問題です。
- 大変見事なアルゴリズムであり、私もかつて感動したのでありました。
- 変形ハノイの塔 (JavaScript 2)
- ハノイの塔は数学的に解ける、ある種のパズル問題として有名です。これはそれを少し変形させた問題で、必ずしも最小解がわかってはいません。(数学の部屋の問題より)
- その最小手順解をC++で効率的に求めるも方法を検討しています。
- 高速化のいろいろな手段を用いています。その全てを解説してはいませんが、ソースは公開しています。
- 立方体4個の凸形体のはめ込み(Pov-Ray Animation 1)
- 立方体4個でできたの凸形体を用いて隙間なく直方体を埋めることが可能かを考える問題である。
- 最小辺が2以上である場合は、可否の判定が可能であるために必要な幾つかの大きさの直方体の場合について、C++で組んだプログラムんで可否を判定できた。
- 難問は、平面的な場合である。この場合、探索プログラムでは4の倍数×4の倍数×1のみ可能であるらしい結果が得られた。