トップ «前の日記(11-July-2018) 最新 次の日記(13-July-2018)» 編集

つれづれなるままに

これまでの訪問者人
本日の訪問者人  昨日の訪問者人
月齢26.2

AI | AIきりたん | Ast | Beat Saber | CeVIO | Cn | cover | de | Emacs | En | Es | fr | git | html | iPad | It | Just Dance | misc | MMD | MV | NEUTRINO | OVA | PC | PV | Ru | SF | SKK | stable diffusion | SynthesizerV | tDiary | Th | Vocaloid | VRC | VRChat MMD | Vsinger | Vtuber | was | YuNi | お茶 | アニメ | アメリカ | イラスト | オカリナ | カゲプロ | キズナアイ | テレビ | ノベル | ノーベル賞 | ビートセイバー | フィートセイバー | フランス | ラズパイ | ラノベ | 万葉語 | 世界 | 中国 | 予定 | 即売会 | 台湾 | 台風 | 合成してみた | 同人 | 地震 | 宇宙 | 家電 | 展示 | 描いてみた | 政治 | 旅行 | 日記 | 映画 | 時事 | 書道 | 歌ってみた | 歴史 | 海外 | 演奏してみた | 漫画 | 特撮 | 科学 | 英国 | 訃報 | 語学 | 踊ってみた | 陶笛 | 障害 | 音楽 | 飲み |

12-July-2018 ふにゃあ [長年日記]

_ [アニメ] あそびあそばせ

初回。

なんというか、最初のCMが入ったところで表紙サギ漫画とありましたが納得。

OPと中見があまりにも違いすぎるやつ。

でもおもしろいし。

_ [科学] メルセンヌ・ツイスター

乱数発生器のメルセンヌ・ツイスターは有名ですが。

C++11には標準でメルセンヌ・ツイスターのライブラリーが入ってるんですよね。調べてみたら正規分布も生成できるんだ。

でもC++のテンプレートやらなんやらわからんし。

と、とりあえず適当にあちこちからひろってくっつけてみました。

#include <iostream>
#include <random>

int main(){
	std::random_device rd;
	std::mt19937 mt(rd());
	std::normal_distribution<> d(5.0,3.0);
	for(int i=0;i<1000000;i++){
		std::cout << d(mt) << "\n";
	}
}

最初、clang コマンドでコンパイルしようとしてうまく行かなかったのではまっていたのですが、何のことはない、clang++ コマンドで次のようにすることでコンパイルできました。(ファイル名を mt.cc としました。)

$ clang++ -std=c++11 mt.cc

100万回、平均値5、標準偏差3の正規乱数を出力してくれます。clang++ のかわりに g++ でもいっしょです。デフォルトではC++11 にならないので、オプションをつけないとだめみたいです。

std::random_device は機器の温度とかのモニターで生成する予測不能な乱数らしいのですが、機械的に結果を出力するため遅いらしいです。そのため乱数の種の生成に使われるんだと。

std::mt19937 がメルセンヌ・ツイスター 19937。

std::normal_distribution が正規分布を作るテンプレートらしいです。

Libreoffice にはりつけて分布解析してみましたが、100万回やると、なんとなくそれっぽい分布になってる感じでした。

でも100万回じゃ少々足りないっぽいなぁ。Libreoffice だとそんなに貼りつけられなかったのでこれ以上はやっていませんが、R とかで分析すればいいのかな? 本当は。

どのぐらいでサチるのかわかりませんが。。。

メルセンヌ・ツイスターの理屈はさっぱりわからないのですが。

あと、この結果を Fortran のプログラムに組み込む方法を考えなきゃ。

はじめて動く C++ のソース書いたわ。(ほとんどコピペだけど。。。)

_ [Vocaloid][Cn] るお・てぃえんい

中華ボカロの洛天依の誕生日だったみたいですね。

時々曲がみつかったりしますが。


【PR】ブログへ記事を投稿して報酬ゲット!アフィリエイトのA8.net