タグ

algorithmとpuzzleに関するkmonのブックマーク (3)

  • yebo blog: ルービックキューブはどんなポジションでも20回動かせば解決

    2010/08/10 ルービックキューブはどんなポジションでも20回動かせば解決 Googleからコンピュータの空き時間として35CPU年を提供してもらい、ルービックキューブの全てのポジションにおける解法を調べたところ、どんなポジションでも20回動かせば解決できる事が分かったそうだ。神のアルゴリズム(ルービックキューブを解くアルゴリズム)が年々短くなってきているのが分かる。キューブの全てのポジションは43,252,003,274,489,856,000との事で、どうやってそれが分かったかというと、19,508,428,800ポジション毎の2,217,093,120セットに分類対称と集合(set covering)を使って解決すべきセットを55,882,296に抑えるそれぞれのポジションの最適解を見つけれなかったが、代わりに20以下の解決法だけを見つける約20秒で1つのセットを解決するプログ

  • http://www.ic-net.or.jp/home/takaken/nt/queen/index.html

  • SQLによる数独の解法:CodeZine

    はじめに SQLを使って数独(ナンプレ)を解く方法を紹介します。 データベースを操作するための言語であるSQLを別の用途に使おうとする理由は、SQLが宣言的な記述が可能な言語の中で最も普及していると思われるからです(宣言的言語と言えばPrologを思い浮かべる方も多いかもしれませんが、残念なことにPrologは、SQLほどには普及していません)。 まず、宣言的な記述について説明しましょう。タクシーに乗ることを想像してください。「渋谷に行ってください」というように、欲しい結果を書くのが宣言的な記述です。具体的な道筋は運転手が考えてくれます。それに対して「まずA通りを北に行って、B交差点を左折して・・・」というように、具体的な道筋を示すのは手続き的記述です。プログラミング言語の場合も同様です。SQLやPrologにおいては、欲しい結果をプログラマが書けば、具体的な実現方法はコンピュータが考えて

  • 1