アルゴリズムに関するantimon2_mathのブックマーク (6)

  • ifelse() と関数の分離による高速化 -- Base.randn() を題材にして -- - yomichi's blog

    JuliaLang Advent Calendar 2014 の 18 日目の記事です。遅れてすみません。 今回も速度向上の記事です。 概要 Base.randn() に最近なされた速度向上のための更新(#9126, #9132)を通じて、 ifelse() 関数や関数分離の有用性を示します。 サンプルコード https://gist.github.com/yomichi/62d5f121ab11831b0759 Base.randn() について 正規分布はホワイトノイズ の分布として誤差解析によく使われ、 中心極限定理によって平均値の分布にもなり、 さらには拡散方程式の解として直接現れるなど、 自然科学や工学の分野では一様分布と同じぐらい重要な分布となっています。 また、手で積分の計算ができるほどに非常に性質が良いため、 様々なランダム性を含む理論モデルで、そのランダム性の分布として使

    ifelse() と関数の分離による高速化 -- Base.randn() を題材にして -- - yomichi's blog
    antimon2_math
    antimon2_math 2015/07/03
    半年経ってやっとこの記事の有用性が分かってきた気がする
  • 「最強最速アルゴリズマー養成講座」関連の最新 ニュース・レビュー・解説 記事 まとめ - ITmedia Keywords

    最強最速アルゴリズマー養成講座: そのアルゴリズム、貪欲につき――貪欲法のススメ アルゴリズムの世界において、欲張りであることはときに有利に働くことがあります。今回は、貪欲法と呼ばれるアルゴリズムを紹介しながら、ハードな問題に挑戦してみましょう。このアルゴリズムが使えるかどうかの見極めができるようになれば、あなたの論理的思考力はかなりのレベルなのです。(2010/9/4) 最強最速アルゴリズマー養成講座: 病みつきになる「動的計画法」、その深淵に迫る 数回にわたって動的計画法・メモ化再帰について解説してきましたが、今回は実践編として、ナップサック問題への挑戦を足がかりに、その長所と短所の紹介、理解度チェックシートなどを用意しました。特に、動的計画法について深く掘り下げ、皆さんを動的計画法マスターの道にご案内します。(2010/5/15) 最強最速アルゴリズマー養成講座: アルゴリズマーの登

    antimon2_math
    antimon2_math 2013/12/04
    ちょっと基礎を見直そうと思ってあとで読む。
  • 全ての組み合わせを作る【C++】 - Programming Magic

    C++で全ての順列を作りたければ、STLにnext_permutation関数があり、以下のように簡単に作ることができる。 #include <iostream> #include <vector> #include <algorithm> int main(){ const int n = 3; std::vector<int> data; // [0, 1, 2, ....]というサイズnの配列を作成 for(int i=0; i<n; ++i){ data.push_back(i); } // 全ての順列を出力 do{ std::cout << "[ " << data[0]; for(unsigned int i=1; i<data.size(); ++i){ std::cout << ", " << data[i]; } std::cout << " ]" << std::end

  • 「組み合わせ爆発」動画のコンピューターをWebで実装 アルゴリズムを駆使した高速化モードも - はてなニュース

    お姉さんが人生を懸けて「組み合わせ爆発」を解説する日科学未来館の動画が、ネット上で大きな話題となりました。この動画に登場した「同じ場所を2度通らずに何通りの線が引けるか」という問題を解くコンピューターが、Webで実装されています。動画では6年掛かりで導き出された「9×9」マスの計算や、25万年掛かった「10×10」マスの計算も忠実に再現。動画の最後で言及されている、高速化したアルゴリズムで解くことも可能です。 ▽ おねえさんのコンピュータ ▽ お姉さんが人生を懸けて“組み合わせ爆発”を力説 動画「フカシギの数え方」が壮大すぎる - はてなニュース 再現された「おねえさんのコンピューター」を使って、実際に5×5の問題に挑戦してみました。動画でもそうだったように、数秒で計算が終了します。コンピューターが線を辿りながら組み合わせを計算している様子も再現されていました。 左が「おねえさんのコンピ

    「組み合わせ爆発」動画のコンピューターをWebで実装 アルゴリズムを駆使した高速化モードも - はてなニュース
    antimon2_math
    antimon2_math 2012/09/30
    アルゴリズム大事。数学大事。プログラミングはその上に乗っけるもの。おねえさんに教えてあげたかった…。
  • Hatena ID

    Hatena ID is an account used for various Hatena services.

    Hatena ID
    antimon2_math
    antimon2_math 2012/08/12
    10ん年前に同じコト考えてた。自作ゲームのスコア保存用簡易符号化に階乗進法利用してた懐かしい記憶が。
  • 素数列挙について - MugiCha

    Competitive Programming Advent Calendar 3日目は、数学っぽい話をしたいと思います。 N以下の素数をすべて求めよ。 N以下の素数の個数を求めよ。 A以上B以下の素数の個数を求めよ。 こんな感じの問題を見たことがあると思います。また問題としてでなくても、解く過程にこのようなサブ問題を解かなければいけない場合もよくあると思います。素数については説明しなくてもいいですよね? このような問題を素数列挙と呼ぶことにします。素数列挙ができれば、大きい数の素数判定や素因数分解をめっちゃ高速化したり、トーティエント関数、メビウス関数等、数学系のいろんな関数を求めたりできます。最近のもので素数列挙がほぼ必須のものだと Codeforces Beta Round #86 (Div. 1 Only) C. Double Happiness ICPC 国内予選 2011 A

    素数列挙について - MugiCha
    antimon2_math
    antimon2_math 2012/06/22
    Atkinの篩は実装してみたいなー。
  • 1