タグ

algorithmとrubyに関するkazutanakaのブックマーク (2)

  • SAT ソルバで数独を解く方法 - まめめも

    数独は非常に SAT に変換しやすい問題です。全部参考文献 *1 に載っている内容ですが、なるべくわかりやすく説明してみます。ちょっと長いです。 SAT とは まず SAT をごく簡単に説明します。すでに SAT を知っている人はここは読み飛ばしてください。 命題論理式の形の一つに乗法標準形のというのがあります。変数か変数の否定 (リテラルと言います) を or だけでつないだ式 (節と言います) を and だけでつないだ論理式のことを言います。つまり以下みたいな形です。 ( a1 or !a2 or ... or an) and ( b1 or !b2 or ... or !bn) and ... and (!z1 or z2 or ... or !zn)SAT は「a1 や zn などの変数にうまく true か false を代入して、上の式全体を true にできるか」という問題

    SAT ソルバで数独を解く方法 - まめめも
  • Ruby/sbloomfilter

    sBloomFilter - A C extension library of Bloom Filter for Ruby This is the C extension library of Bloom Filter. What is the Bloom Filter? Check here. Synopisis #!/usr/bin/env ruby require 'sbloomfilter' def main # m=100000000, k=4, random seed=1 bf = BloomFilter.new(100000000, 4, 1) num = 0 while line = ARGF.gets data = line.chop if bf.new_entry?(data) num += 1 bf.insert(data) end end print "#dist

  • 1