タグ

mathとalgorithmに関するemergentのブックマーク (8)

  • スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤

    魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現

    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤
  • 連立1次方程式ライブラリ

    /* linear.c */ #include <stdio.h> #include <stdlib.h> #include "sslib.h" void gausei(double a[], int l, int m, int iter, double eps, double x[]) { int i, j, k; double ay, def, *p, *q, *r, sum, w, y; if(l < m || m < 2 || iter < 1 || eps <= 0.) { fprintf(stderr, "Error : Illegal parameter in gausei()\n"); return; } for(i = 0, p = x; i < m; i++) *p++ = 0.; k = 1; do { def = 0.; for(i = 0, p = x; i <

  • 素数判定 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "素数判定" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2018年1月) 素数判定(そすうはんてい、英: primality test)とは、与えられた自然数が素数か合成数かを判定することである。素数判定を行うアルゴリズムを素数判定法という。 RSA暗号の鍵生成のように素数性の判定は応用上重要であるので、素数性を高速に判定するアルゴリズムは計算理論において強い関心の対象である。 仮定なしで決定的かつ多項式時間で終了する(クラスPに含まれる)素数判定法が存在するか否かは長らく未解決の問題だったが、2002年にそのような素数判定法が存在

    emergent
    emergent 2008/09/01
    難しいな
  • 生活や実務に役立つ高精度計算サイト

    emergent
    emergent 2008/04/25
    これイイね
  • Life is beautiful: フィボナッチ関数とJavascriptの黒魔術と

    「最近あなたのブログ、プログラミングの話ばっかりじゃない?」とはの指摘。確かにその通りなんだが、これとかこれを読んでしまうと、どうしてもそちらに走りたくなるのが私の性分。ということで、とことん「ギーク街道」に堕ちてみた。 今回の作品は、iAnime.jsの非同期JSON言語(名前はまだない)を使って非同期に自分を再帰的に呼び出しながらただひたすらにフィボナッチ数列を表示するというプログラム。 function start(k1, k2) { var span = (k2+" ").length*10; var obj=document.createElement("span"); obj.style.position = "absolute"; obj.style.left = -span+"px"; obj.style.right = "0px"; iBrowse.setText(ob

  • 「ウルフラム氏のチューリングマシン」を20歳の学生が証明 | WIRED VISION

    「ウルフラム氏のチューリングマシン」を20歳の学生が証明 2007年10月26日 サイエンス・テクノロジー コメント: トラックバック (0) Brandon Keim 2007年10月26日 複雑系理論の権威であるStephen Wolfram氏が、あるチューリングマシンを提案し、これが考えられるありとあらゆる計算問題を解く能力を持つ、考え得る限りで最も単純なコンピューターであることを証明するよう呼びかけた。 それからわずか47日後、イギリスのバーミンガム大学コンピューター科学部の学生Alex Smithさん(20歳)が、見事にこれを証明して見せた。 チューリングマシンは、コンピューターの世界に偉大な貢献をした数学者、アラン・チューリングが1936年に提案したものだ。 今ではハードウェアをソフトウェアと切り離すことは当たり前になっているが、チューリングはこれを理論として考え出した最初の1

  • てっく煮ブログ - 四則演算を JavaScript で実装する

    aki noteGoogle 電話面接を受けました orz (いまは消えてるけど)にて割り算が壊れました。自分で実装してみてくださいという質問が紹介されていた。せっかく(?)の機会なので、割り算だけでなく、四則演算を全部壊してみて、JavaScript で実装して見ることにした。JavaScript を選んだのは、コンパイル不要、ビット演算がある、Firebug で手軽に確認できる、という理由から。それ以上の深い意味はない。ということで、次のような問題に一般化してみた。問い四則演算を JavaScript で実装しなさい。演算子は ==、!= およびビット演算子のみ使ってよいものとします。補足例えば、for 文で for(var i = 0; i { // ... } と書くためには、++ 演算子は次のように定義できる。 function increment(i){ var c =

  • Richard Kaye's minesweeper page

    Richard Kaye's Minesweeper Pages Until recently, tiling problems were largely relegated to the domain of "recreational mathematics" (an obvious oxymoron to most non-mathematicians, but a pleonasm to true believers). (Solomon W. Golomb, "Mathematics after forty years of the space age", Mathematical Intelligencer, Fall 99, 38-44. Minesweeper is NP-complete! For minesweeper addicts, this is either ve

  • 1