パズル

n-ominoの列挙(Redelmeier's algorithm)

n-ominoとはn個の正方形で構成されるポリオミノ(Wikipedia)。 n-ominoの列挙を行うRedelmeier's algorithmをPythonで実装した。 速度検証 反転・回転を考慮しないn-ominoを列挙し、個数を数えた。所要時間は下記の通りだった。 n n-omino elapsed[s] 1 1 0.0…

ポリオミノの敷き詰め問題をDancing LinksとKnuth's Algorithm Xを使って解く

ポリオミノの敷き詰め問題を解くプログラムを書いた。効率的に解くためにDancing Linksというデータ構造を実装し、Knuth's Algorithm Xを使用した。 ポリオミノの敷き詰め問題とは こういうパズルがAmazonで売っている。結構難しい。 Amazon | 明治ミルクチ…

川渡りパズルを解く

川渡りパズル(男が狼、ヤギ、キャベツを持って川を渡るが船には1つしか積めないみたいなやつ)をPython3で解いてみました。