プログラミング、ガジェット、趣味ネタを配信するブログ

雑記

乱数のメルセンヌ・ツイスタについて

投稿日:

乱数について勉強する機会がありそこでメルセンヌ・ツイスタを知りました。
こちらは覚えておいて損はないと思いましたので、忘却録としてまとめていこうと思います。

メルセンヌ・ツイスタとは

こちらを使用するメリットとしてはランダムの周期が長いということになります。

ランダムの周期が短いと、同じパターンが繰り返されることになる為、似たような値が繰り返し算出されてしまいますが
メルセンヌ・ツイスタをしようすることでそちらが解消できます。

C++サンプル

実際にメルセンヌ・ツイスタを使用したサンプルになります。

// メルセンヌ・ツイスタを使用するために必要なヘッダ

#include <random>

// メルセンヌ・ツイスタのテスト

// 0から99までの値をランダムで生成

void MersenneTwisterTest()

{
     // メルセンヌ・ツイスタ乱数のインスタンスを生成します。
     std::mt19937 mt;

    // 乱数のシード値を設定します。(最終的にはTick時間を設定するのがいいかと思います)
     mt.seed(100);

    // 範囲指定用の乱数生成関数を作成します。
     std::uniform_int_distribution<> rand100(0, 99);

    // 乱数の表示
     for (int i = 0; i < 20; ++i) {
         std::cout << rand100(mt) << "\n";
     }

}

-雑記

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

【VirtualBox】仮想マシンの起動時にエラー

  VirtualBoxを起動した際に下記のエラーが表示された際の解決方法についてですが、 BIOSの設定でCPUの項目の「Virtualization Technology」を有効にしない …

ゲーム、アニメ、マンガ等のエンターテインメントイベント 全国エンタメまつり開催!!

この前いった「BitSummit」でもらったチラシに載っていたのですが、2017年8月5日(土)~6日(日)の2日間にわたり、岐阜県岐阜市柳ヶ瀬商店街(JR岐阜駅及び名鉄岐阜駅よりすぐ)でエンターテイ …

no image

CppCheckをVisualStudioで使う方法

静的解析ツールを使用したいと思いフリーのcppcheckを使用してみようと思います。 CppCheckのインストール https://cppcheck.sourceforge.io/ こちらのリンクか …

no image

【GCC_2019】「大規模ゲーム開発におけるフリーラン実装事例 ~気持ちよく走り続けさせるために~」の感想

今回はGCCで見てきた講演の1つ「大規模ゲーム開発におけるフリーラン実装事例 ~気持ちよく走り続けさせるために~」について ざっくりとですが、書いていこうと思います。 スライドはこちら 概要 実際のゲ …

no image

GameCreatorsConference2019に行ってきました!

ゲームの大規模勉強会「ゲームクリエイターズカンファレンス2019」に行ってきました! 勉強会といっても、講演を聞いて質疑応答などを行う感じです。 チケット代は4000円とちょっとお高め。 参加した講演 …

スポンサー 人気記事 最近の投稿