Javaのコーヒを啜る

ITを学ぶオタクの日記

自由制作第2回目

自由制作第二回ということで実は前から気になってたものがありまして、、、

f:id:nora_robin:20181019104529p:plain

0.032%の確率でキズナアイになるbotです.....!

このランダムに文字列を抽出するプログラムを作ってみたいなと思い、なんとなくPythonを使って色々ポチポチしてみました。

 

 

f:id:nora_robin:20181019105651p:plain

f:id:nora_robin:20181019105706p:plain

これは「れいちゃん」という文字列をランダムに並び替えて、「れいちゃん」という文字列に生成し直せれば、出力をするというものなのですが、、、、

 

明らかに繰り返し回数が少ないと思い、少し確認したところ

f:id:nora_robin:20181019110432p:plain

本家は重複をしてるのに対し自分のプログラムはただランダムに "並び替えてる" だけなので重複していないことに気づきました。

 

そこで今度は「れいちゃん」という配列から重複を許しランダムに要素を取得するという方法で作ってみました

f:id:nora_robin:20181019110732p:plain

f:id:nora_robin:20181019110840p:plain

きた......!!!!

しっかり重複しながら試行回数が増加してますね。

 

最初は「random.sample」という関数をつかい配列の要素をシャッフルしてただけなのですが、「random.choices」を使えば配列内から要素を重複を許しランダムに抜き取る事ができます。

 

しかしこの「random.choices」ですが、どうやらPython3.6から実装された機能らしく、「この機能なかったらどうしよう......」と思っちゃったりしました。