タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

algorithmとAlgorithmとmathに関するrydotのブックマーク (47)

  • 内部実装について—Wolfram言語ドキュメント

  • Graphillion: 数え上げおねえさんを救え / Don't count naively

    Graphillion は膨大な数のグラフに対して検索や最適化、列挙を行うための Python モジュールです。このビデオは Graphillion の概要を知るためのチュートリアルです。「フカシギの数え方」 http://youtu.be/Q4gTV4r0zRs の続編として作成されました。 Graphillion is a Python software package on search, optimization, and enumeration for a very large set of graphs. This video is a quick tutorial to learn what Graphillion is. The story follows our previous episode, "Let's count!" http://youtu.be/Q4gT

    Graphillion: 数え上げおねえさんを救え / Don't count naively
  • 条件数 - Wikipedia

    条件数(じょうけんすう、英: condition number)は、問題のコンピュータでの数値解析しやすさの尺度であり、その問題がどれだけ数値解析に適しているかを表す。条件数が小さい問題は「良条件 (well-conditioned)」であり、条件数が大きい問題は「悪条件 (ill-conditioned)」である。 たとえば という方程式の条件数は、 を近似的に求める際の不正確さの上限を与える。なお、これには丸め誤差の影響は考慮しない。条件数は行列の属性であって、計算に使うシステムの浮動小数点数の精度やアルゴリズムとは無関係である。この場合(非常に大まかに言って)、 の変化によって解である が変化する率が条件数である。従って、条件数が大きければ の小さな誤差も の大きな誤差となって現れる。一方、条件数が小さければ、 における誤差は における誤差より大きくなることはない。 より正確に条件数

  • 様々な全域木問題

    最小カットを使って「燃やす埋める問題」を解く方法について、問題とソースコードつきで、まとめました。ニコニコ生放送「TopCoderでプログラムしてみた」2000回記念放送の資料です。

    様々な全域木問題
  • Percolation threshold - Wikipedia

    3.5 Approximate formulas for thresholds of Archimedean lattices

    Percolation threshold - Wikipedia
  • PRML Wednesday (平日読書会) と読み始める人のための参考リンク集 - 木曜不足

    毎週決まった平日の夜に 「機械学習とパターン認識」(PRML) を読み進めようという PRML Wednesday のキックオフにのこのこ顔を出してきた。主催の naoya_t さん&参加者のみなさん、お疲れ様でした&ありがとうございました。 ほとんど初顔の方ばかりの中で好き放題しゃべってしまい。まあ例によって反省はしていないのだけれど(苦笑)。 会であれこれ言ったこと(めんどくさいので、ここでもう一度繰り返すことはしないw)はあくまで「素人から出発して PRML をひと通り読み終わった個人が、その経験から感じたこと」であり、絶対の正解なんかではない。 気に入らなかったら「なるほど、お前の中では(ry」で片付けて欲しい。勉強なんて続かなかったら意味が無いので、自分が続けられる方法やスタンスを模索して選びとっていかないとしょうがないのだから。 PRML Wednesday にはたぶん毎回は参

    PRML Wednesday (平日読書会) と読み始める人のための参考リンク集 - 木曜不足
  • 違法素数 - Wikipedia

    違法素数(いほうそすう/英: illegal prime)とは、素数のうち、違法となるような情報やコンピュータプログラムを含む数字。違法数(英語版)の一種である。 2001年、違法素数の1つが発見された。この数はある規則に従って変換すると、DVDのデジタル著作権管理を回避するコンピュータプログラムとして実行可能であり、そのプログラムはアメリカ合衆国のデジタルミレニアム著作権法で違法とされている[1]。 DVDのコピーガードを破るコンピュータプログラムDeCSSのソースコード 1999年、ヨン・レック・ヨハンセンはDVDのコピーガード (Content Scramble System; CSS)を破るコンピュータプログラム「DeCSS」を発表した。ところが2001年5月30日、アメリカ合衆国の裁判所は、このプログラムの使用を違法としただけではなく、ソースコードの公表も違法であると判断した[2

  • ゴロム定規 - Wikipedia

    次数4、長さ6のゴロム定規。最短で完全である。 ゴロム定規(ゴロムじょうぎ、英: Golomb ruler)とは、想像上の定規の上で一連の整数位置にマークを配置し、任意のマークの対の距離がどれをとっても等しくならないものをいう。ゴロム尺とも。マーク数を「次数 (order)」、2つのマーク間の距離のうち最大の距離を「長さ (length)」という。ゴロム定規の平行移動と鏡映は自明と考えられる。そのため慣例として、最小のマークを0とし、その次のマークは2つの可能な値のうち小さいほうを取る。 ソロモン・ゴロムが名前の由来だが、Sidon(英語版)[1]とBabcock[2]も独自に発見している。 ゴロム定規は、その長さまでの全ての距離を測定できる必要はないが、全ての距離を測定できるゴロム定規を「完全 (perfect)」ゴロム定規 (PGR) という。5個以上のマークのあるゴロム定規では、完全

    ゴロム定規 - Wikipedia
  • Difficult Sudoku Puzzles Created by Replica Exchange Monte Carlo Method

    An algorithm to create difficult Sudoku puzzles is proposed. An Ising spin-glass like Hamiltonian describing difficulty of puzzles is defined, and difficult puzzles are created by minimizing the energy of the Hamiltonian. We adopt the replica exchange Monte Carlo method with simultaneous temperature adjustments to search lower energy states efficiently, and we succeed in creating a puzzle which is

  • NTL: A Library for doing Number Theory

    NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. By default, NTL is thread safe. NTL is distributed under LGPLv2.1+ (i.e., LGPL version 2.1 or later) [more details] If you are interested in contributing to the development o

  • AKS素数判定法 - Wikipedia

    AKS素数判定法(AKSそすうはんていほう)は、与えられた自然数が素数であるかどうかを決定的多項式時間で判定できる、世界初のアルゴリズムである。ここで、素数判定法が多項式時間であるとは、与えられた自然数 が素数であるかどうかを判定するのにかかる時間が の多項式を上界とすることをいう。 の多項式ではないことに注意する必要がある。 AKS素数判定法は2002年8月6日に "PRIMES is in P" と題された論文で発表された。Agrawal-Kayal-Saxena 素数判定法としても知られ、論文の著者であるインド工科大学のマニンドラ・アグラワル教授と、2人の学生ニラジュ・カヤル、ナイティン・サクセナ(英語版)の3人の名前から付けられた。 この素数判定法が発見される以前にも、素数の判定方法は多数知られていたが、リーマン予想などの仮説を用いずに、決定的多項式時間で判定できるアルゴリズムは存

  • http://cl-www.msi.co.jp/reports/svm.pdf

  • 高速フーリエ変換より高速なフーリエ変換アルゴリズム | スラド サイエンス

    DFT(短時間フーリエ変換)した結果がkスパースな (=ほとんど0ばっかりで、0以外のデータが最大でもk個しかない) ような、信号に対して行える高速アルゴリズムの話しのようです。 計算オーダー ・DFT O(n^2) ・FFT O(n log n) ・NOSFT ①O(k log n)      ※理想 ②O(k log n log(n/k))  ※一般的な入力 ただしk≦n, フーリエ変換結果がkスパースな場合。 理想的には、kスパースなデータであれば①なんでしょうけど、 わりあいkスパースなデータであれば②程度。外れていれば誤差が増える。 10倍早いという感じは受けなかったのですが、 イメージ的には全データ1024個だったら、フーリエ変換した後の結果が 0以外のデータ102以下、ほとんど0データが残992個であれば、 ②の演算が採用でき、k=102, n=1024としてFFTに比べ10

  • approximate double precision division using SSE2

  • Fast Inverse Square Root (Revisited)

  • 楓 software: 平方根の逆数の高精度化

    « 逆数の高精度化 | メイン | テクスチャマッピングの高速化 その3 » 2008年02月23日 x86 SIMD Technique:: 平方根の逆数の高精度化 Tweet    @jin1016をフォロー 平方根の逆数を求める命令として、_mm_rsqrt_ss / _mm_rsqrt_ps がある。 でも、これは 11bit 精度しかない ( 11bit 精度だと、10 進数で3桁程度 ) 。 と言うことで、11bit 精度で得られた平方根の逆数の近似値をニュートン-ラフソン法 ( Newton-Raphson ) を用いて高精度化する。 SSE のソースコードは以下。 // 22bit 精度で平方根の逆数を求める。 // 1/√x = 3/2 * x0 - 1/2 * a * x0^3 を用いる inline __m128 m128_rsqrt_22bit_ps( const 

  • approximate

    これはどの程度の精度があるのでしょうか. まず誤差をどう表すかを考えます. r = 1 / √a を正しい値とします. 単純に |y - r| を誤差としても構いませんが, a が 0 に近いときや大きいときでも同じように評価するために を誤差と定義することにします. 例えば y が11bitまで正しければ ε は 2-11 程度になります. y = r + rε と変形して z に代入します. a = r-2に注意 (r + rε)3 = r3 + 3 r2(rε) + 3 r (rε)2 + (rε)3 となりますが r に比べて rε は十分小さいので3乗の項は無視します. z = 3/2 * (r + rε) - 1/2 * r-2 * (r3 + 3 r2 rε + 3 r (rε)2) = 3/2 * (r + rε) - 1/2 * (r + 3rε + 3 r

  • 数値演算のアルゴリズム

    3Dの計算処理では、「正確性よりも速度を求める」という場合がよくあります(特にリアルタイム)。 そのあたりで使えそうな、数値演算のアルゴリズムをまとめてみました。 sqrt:平方根を求める C言語では"math.h"の「sqrt」で平方根を計算します。 これと同等の機能をするプログラムは以下のようになります。 浮動小数点での平方根の計算 double mySqrt(double x) { double s,last; if(x<=0.0) return 0.0; if (x > 1) s = x; else s = 1; do { last = s; s = (x / s + s) * 0.5; } while (s < last); return last; } 整数での平方根の計算 int myISqrt(int x) { int s, t; if (x <= 0) return 0;

  • 平方根を使わないピタゴラス加算 | Codelogy

    二次元座標上の2点間の距離を求めたいとき、複素数の絶対値を求めたいとき、その他いろいろなときに x = √(a2 + b2) という式を使います(これをpythagorean additionと言うそうです)。これを実装するとき、 という文がよく使われますが、この文を無闇に使っていると、あまり嬉しくない事態を引き起こすことになります。 さて、この文ののどこがいけないのでしょうか。 賢明な皆さまはもうお気づきでしょうが、a*a + b*bはオーバーフローを引き起こすおそれがあるのです。変数の値域を保証できるのならともかく、そうでなければ次に挙げる3つの対策のいずれかを採るべきです。 1.式変形 a’ = max( |a|, |b| ), b’ = min( |a|, |b| ) とおくと、 √(a2 + b2) = a’√(1 + (b’/a’)2) と変形できます。この式を使うとオ

  • fast sqrt

    高速根号計算 (fast sqrt algorithm) 概要: C言語のsqrt(float)より精度は若干劣るものの,2倍以上速いsqrtのalgorithm. ググって見つけた物が,非常に面白かったのでまとめておく.精度より速度が求められる場面で活躍する.   参考文献 [1] David Eberly, Fast Inverse Square Root (Revisited), http://www.geometrictools.com/Documentation/ FastInverseSqrt.pdf, 1/2002-. 実装 //---Algorithm float(IEEE754)用------ inline float t_sqrtF( const float& x ) { float xHalf = 0.5f * x; int tmp = 0x5F3759DF