BlogEnsekiTTが書くブログです。Pythonつまりなにしたの?先日のライフゲームと同じ要領で「プログラムでシダを描画する」をやってみた2018。ついでに確率的に実行されているシダの関数呼び出しがどんな分布を描くのか調査した。シダってなに?2013年末〜2014年頃にプログラミングする界隈でちょっと流行ってQiitaや個人Blogにいろいろな環境でやってみた記事が上がっていた。2018年、「そういえば、そんな課題あったな?」と思いだしたので描画ネタとして今回ピックアップした。目新しいことは特に無いのでQiitaを見に行くといろいろな実装が見られて面白い。あと元ネタになったYouTubeの動画は消えてしまっているみたい。qiita.comただ、いろいろな実装があるものの、一度その実装を見ちゃうと引っ張られるのでほぼ写経になった。0.9乱数を使ってW1〜W4が確率的に呼び出されるような形になっている。yieldを使ってforループを回すことでshidaを呼び出したら都度pointを返す形になっている。kが0未満になるまで再起していって、0未満になると引数で渡されたx、yに描画用の係数をかけて値を返している。0.3未満の乱数で実行するので何度もやっていたら、shidaは1回の呼び出しに対して概ね1.9回ずつ実行される。仮にkの初期値が20だったら、1.9^20→375899回呼び出される気がする。呼び出し回数があっているか確認した呼び出すと都度ポイントを返してくれるので、ループ回数を数えれば良いはず。kの初期値を20にして、シダを1000回生成してそのヒストグラムを出してみた。平均値は367894、中央値は337747だった。f.write(str(epoch_list))#plt.hist(epoch_list)#plt.show()やってみてどうだった?実行回数は結構ばらつくんだなーってヒストグラムを見たときには思ったけど、ツリー状に再起していくんだから序盤の乱数が0.3より小さい数字だらけだと簡単に増えるのは直感的にも普通だった。先日、動体検知をやってみた。ヶ月)EnsekiTTが書くブログです。機械学習とかロボットの仕事してます。ライセンスの下に提供されています。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。