No Caffeine, No Life

プログラミング(主にPython)

数学パズル Q38 7セグメントコードの反転:ビット演算

まず全探索をする解答例:

これだと10!分の探索をしていることもありかなり時間がかかる(自分の手元では40秒ほど)。

 

10!の探索には変わりないが、0-9のセグメントの変化をあらかじめテーブルに保存しておき、利用することを考える。この場合、文字列を扱う操作が減る分速くなることが期待される。

 

これで手元では8秒ほどに。。。(でも競技プログラミングでは全くダメ)

 

permutationを使わずに再帰的に解くことを考える:

 

pythonにおける変数のスコープについては下記を参照:

http://www.isl.ne.jp/pcsp/python/python25.html

広告を非表示にする