「SQLで数学パズルを解く(数論編)」の素数を求める問題について、泉さんという方からメールでうまい別解を教えていただいたので、紹介します(オリジナルに少し私の方で手を加えました)。 SELECT Dividend.num as prime FROM Numbers Dividend, Numbers Divisor WHERE 1 < Dividend.num AND Divisor.num <= SQRT(Dividend.num) --約数は被除数の平方根以下 GROUP BY Dividend.num HAVING SUM(CASE WHEN MOD(Dividend.num, Divisor.num) = 0 THEN 1 ELSE 0 END) = 1 --1でしか割り切れない ORDER BY prime; SQRT関数が使えない場合は、「Divisor.num <= SQRT
非決定性 McCarthy の非決定性オペレータ amb [cite{jmc:amb}, cite{wc:amb}, cite{zmc:amb}] は Lisp 自身と同じくらい古いものですが、Lisp にはありません。amb は 0個あるいはそれ以上の式を引数としてとり、それらの、非決定的な (あるいは「あいまいな」)な選択を作ります。プログラムを意味のあるものに 収束させるこれらの選択を好んでつかいます。ここで、 曖昧選択の深さ優先選択をつかい、他の選択肢を探索するための バックトラックに Scheme の制御オペレータ call/cc を使う amb の Scheme への埋め込みについて検討しましょう。 結果は、拡張言語にたよることなく、Scheme で直接書けるような 探索問題の分野で使用できるエレガントなバックトラッキング戦略が できあがります。この埋め込みは Prolog 流
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く