タグ

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

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとC++とRandomに関するagwのブックマーク (6)

  • C++のmt19937は環境非依存だがdistributionは環境依存 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    C++のmt19937は環境非依存だがdistributionは環境依存 - Qiita
  • C++11 random 覚え書き - 簡潔なQ

    C++11以降では<random>ヘッダで良質な擬似乱数を得ることができる。 #include <random> 外部からの乱数 外部から乱数を得るにはrandom_deviceを使う。 #include <random> #include <iostream> int main() { std::random_device rand_dev; std::cout << rand_dev() << std::endl; std::cout << rand_dev() << std::endl; return 0; } 上のように、外部からの乱数源は関数として呼び出すことで乱数を生成する。 このプログラムは実行するごとに異なる値を出力する。 擬似乱数 擬似乱数は、シード値を放り込むと乱数っぽい数列を吐き出すプログラム。 生成方法が何種類かあるが、mt19937だけ把握していればよい。 #in

    C++11 random 覚え書き - 簡潔なQ
  • std::shuffle()の経緯 - Faith and Brave - C++で遊ぼう

    C++11のヘッダでは、既存のstd::random_shuffle()に加えてstd::shuffle()という関数が入りました。std::shuffle()の方は、C++11の乱数生成エンジンを受け取りやすいというのが特徴です。 template<class RandomAccessIterator, class UniformRandomNumberGenerator> void shuffle(RandomAccessIterator first, RandomAccessIterator last, UniformRandomNumberGenerator&& rand); 経緯を調べてみると、std::shuffle()は元々std::random_shuffle()という名前でした。 これはConcept-basedオーバーロードで既存のstd::random_shuffle

    std::shuffle()の経緯 - Faith and Brave - C++で遊ぼう
  • Fisher-Yates Shuffle - Faith and Brave - C++で遊ぼう

    Fisher-Yates Shuffle – An Algorithm Every Developer Should Know てきとうに抜粋して書く。 以下のシャッフルアルゴリズムは間違っていて、 def incorrect_shuffle(items): for i in range(len(items)): randomIndex = random.randint(0, len(items)-1) temp = items[randomIndex] items[randomIndex] = items[i] items[i] = temp return items これには、以下の3つの問題がある: 偏る 偏る 偏る 実は1つだったけど、これは大きな問題だ。 Fisher-Yates Shuffle (Knuth Shuffleとも呼ばれる)の実装は、以下のようになる: def fi

    Fisher-Yates Shuffle - Faith and Brave - C++で遊ぼう
  • C++11 の乱数ライブラリ <random> - Siv3D 開発ブログ

    C++11 では、新しい乱数ライブラリのヘッダ <random> が追加されました。 一様にランダムな整数を生成する「乱数生成エンジン」と、値を特定の方法で分布させる「分布生成器」が用意されています。 乱数生成エンジンは 線形合同法 メルセンヌ・ツイスター Lagged Fibonacci 法 ハードウェアエントロピーソース(時刻や CPU カウンター、I/O の状態など大量の低レベルシステム情報)を利用した非決定論的(予測不可能)な乱数生成 の 4 種類が実装されています。非決定論的な乱数生成以外の手法では、初期シードから擬似乱数列を生成します。 分布生成器は 一様分布 正規分布 ベルヌーイ分布 ポアソン分布 をはじめ多数のアルゴリズムが実装されています。 非決定論的な乱数生成エンジン std::random_device を使ってランダムな値を出力してみましょう。プログラムを実行するた

    C++11 の乱数ライブラリ <random> - Siv3D 開発ブログ
  • 本の虫: C++0xの新しい乱数ライブラリ、random

    注意:最新ドラフトのN3000のrandomの規定は、コンセプトが却下される前の文面であり、今後、変更があると思われる。 C++は標準ライブラリが貧弱であるとは、よく言われることだ。ことに、乱数に関しては、貧弱の極みである。ご存じのように、C++は、Cから標準ライブラリを引き継いでいる。rand()だ。これは、0からRAND_MAXまでの値を返すと規定されている。RAND_MAXは実装によって異なるが、ほとんどの処理系では、32767である。現代の乱数需要を満たすには、あまりにも小さすぎる。 この状況を打破すべく、C++0xには新しい乱数のライブラリが盛り込まれた。randomである。これはBoostの実装を元にしているのだが、Boostとは少し違っている。今回はそのrandomを、浅く触りだけ紹介しようと思う。というのも、ライブラリの細かなメンバ関数の一つ一つまで説明するのは、甚だ冗長で

  • 1