タグ

progとmathに関するNeanのブックマーク (7)

  • スパコンで約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 ) | 配電盤
  • 正規表現で素数判定 - NO!と言えるようになりたい

    追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん

    正規表現で素数判定 - NO!と言えるようになりたい
  • A regular expression to check for prime numbers

    Noulakaz The blog of Avinash, Christina, Anya and Kyan Meetoo. Regular expressions are extremely powerful. This is something I read at least once or twice every day while reading articles and blogs on the Web. While browsing today, I found this page which thoroughly describes the use of the regular expression /^1?$|^(11+?)\1+$/ in Perl to check if a number is prime or not!!! /^1?$|^(11+?)\1+$/ To

  • ピタゴラスの定理のダイクストラによる証明の直筆ノート - あらきけいすけの雑記帳

    ダイクストラ(E. W. Dijkstra)というと---少なくとも、ボクにとっては---「構造化プログラミング*1」「最短経路探索に対するダイクストラ法*2」で有名なのだが、そのダイクストラによる「三平方の定理の証明の直筆ノート(のPDF)」があったのでスクラップ*3。 http://www.cs.utexas.edu/users/EWD/ewd09xx/EWD975.PDF彼以前にこの証明が知られていてもおかしくはないように思われるけれど---まあ、証明なんてそんなものだけど---とってもエレガント。三角形ABCの頂点 A, B, C の対辺の長さを a, b, c とおくと sgn(A+B-C)=sgn(a2+b2-c2) となる。ここで sgn は符号関数(引数が正なら +1, ゼロなら 0, 負なら -1)元の三角形をはみ出さない作図で十分な証明というのは、ボクははじめてみた。そ

    ピタゴラスの定理のダイクストラによる証明の直筆ノート - あらきけいすけの雑記帳
    Nean
    Nean 2010/01/01
  • JavaScriptでジュリア集合を描画:Geekなぺーじ

    幅 : , 高さ : ジュリア集合解説 このスクリプトは、以下の数式を実行して色をつけていったものです。 この数式のzとAは実数部と虚数部を持つ複素数です。 Aは定数です。 平面上の各z_0に対して、この計算を繰り返し行っていきます。 この計算を行った結果が特定の値を超えた場合、その計算が発散したとします。 そして、発散するまでにかかった回数で平面上に色をつけていきます。 規定の回数まで行っても発散しない場合は、発散しなかったとして色を塗りません。 (ただし、今回のプログラムでは黒を塗っています。) 実数部の開始位置と終了位置を調整すると、画像全体のズーム率を調整できます。 定数Aの値を変更していくと、模様が変わります。 色々試して見てください。 何を入れていいのか解らない場合などには、以下の値などがお勧めです。 実数 -0.5 ~ 0.5、虚数 -0.5 ~ 0.5、A実数 -0.2、A

  • 連載:はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    連載:はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社
  • 0の0乗は常に1ですがなにか : 404 Blog Not Found

    2006年12月21日01:00 カテゴリMathLightweight Languages 0の0乗は常に1ですがなにか 気になって調べてみました。 www.textfile.org - 0の0乗 経由 Radium Software Development "a0 = 1" から類推すると 1 のように思えるが, "0n = 0" から類推すると 0 のようにも思えてくる。当の答はどちらだろう?Javascript Math.pow( , ) Perl % perl -le 'print 0**0' 1 複素数にしても駄目。 #!/usr/bin/env perl -l use strict; use Math::Complex; my $z0 = cplx(0,0); print "$z0 ** $z0 == ", $z0**$z0; %perl cpow.pl 0 ** 0 ==

    0の0乗は常に1ですがなにか : 404 Blog Not Found
  • 1