枚数と正規手本の回転数
| 円盤数 | 回転数 |
|---|
THE MECHANICAL PUZZLE · 01
ひとつ動かすと、次が見えてくる。
凹みを合わせ、レールを通して、スライドを引き抜こう。
① 持ち手をドラッグ ② 丸い窓に合わせて円盤をタップ ③ 台を左へ引き抜く
円盤は台に固定された軸で回ります。上の丸い切り欠きに中心を合わせると回転用の空間が生まれます。横の円盤の凸部や先頭円盤の直線辺が邪魔をすることもあります。下のストッパーを通すには凸部を横へ向けます。赤い×は実際の接触位置です。
円盤は左から1、2…と数えます。円盤をタップすると通常の縦・横を往復します。↶/↷は直前にタップした円盤を回します(タップ自体も回転操作です)。反対向きやケース外の回転も試せます。台は持ち手または中央の板をドラッグ。狭い画面は盤面の余白を横スクロールできます。ドラッグを離すと、障害物を越えずに最寄りの整数目盛へ止まります。持ち手の上の矢印ボタンは1回につき1目盛です。
「手数」は円盤1枚の90度回転を数え、スライドは含めません。Undoはスライドも戻します。ヒントと手本は4方向の円盤と、円盤間隔ごとのスライド位置を探索します。ヒントの残り回転数は現在の状態からの探索結果で、クリア後は0回です。連続する全スライド位置や実製品の最短性を保証する値ではありません。ケース外の半回転は90度2回として数えます。探索上限に達したときは明記して正規手本へ切り替えます。
構造はKeisterの特許 Fig.1〜4を参照。寸法は共通半径で正規化した2Dモデルです。製品の厚み・摩擦・遊びは再現していません。衝突は描画と共通の円弧を細分して検査します。
PATTERNS BEHIND THE PUZZLE
正規の2向きでは、凸部が下を1、右を0と表します。左から円盤1 … 円盤nの順です。上・左も使った場合は向きの名前を表示します。
| 円盤数 | 回転数 |
|---|
円盤を1枚増やすと、手数は何倍に近づく?
いちばん左を回す直前、右側はどう並ぶ?
隣同士が1ビットだけ異なる並びがグレイコードです。スライドの位置を省き、下・右の正規2向きだけに制限すると、反射型二進グレイコードの道になります。単に1ビットが違うだけでは合法とは限りません。
参考:正規2向き解法の回転数 Lₙ = Lₙ₋₁ + 2Lₙ₋₂ + 1(L₁=1、L₂=2)。一般式は ⌊2ⁿ⁺¹/3⌋。7枚は全て下→全て右の85回です。スライド位置と4方向を含む全機構の最短回数ではありません。