ページへ戻る
− Links
印刷
Python/乱数
の編集 ::
NJF Wiki
xpwiki
:
Python
/
乱数
の編集
Python/乱数 の編集
詳細な入力項目を表示
ページタイトル
( 空白で自動設定 )
:
ページ並び順
( 0-9 小数可 標準:1 )
:
ページ別名
(複数は[
改行
]で区切る)
:
ページ内容:
Pythonで疑似乱数を生成するには、randomモジュールを使います。 ただし、このモジュールの多くの乱数はプログラムの状態などから予想可能です。 セキュリティや暗号に使うなら他にsecretsというモジュールを使って下さい。 *0以上1未満の乱数 [#lde6c507] 他の言語にもよくある、0以上1未満の乱数を生成するにはrandomメソッドを使います。 import random for i in range(10): print(" %d : %f" % (i, random.random())) 結果 0 : 0.270474 1 : 0.359992 2 : 0.429213 3 : 0.657160 4 : 0.902497 5 : 0.932992 6 : 0.607276 7 : 0.884832 8 : 0.544661 9 : 0.948175 これを使って工夫すればよく使う大抵の乱数を必要とするプログラムは書けますが、Pythonにはこれ以外にもいろいろ便利なメソッドが用意されているので、用途があうならそちらを使いましょう。 *リストなどからランダムに要素を取り出す [#a0f98b65] リストなどからランダムに要素を取り出すには、choiceメソッドを使います。 testList = ["one","two","three","four"] for i in range(10): print(" %d : %s" % (i, random.choice(testList))) 結果 0 : four 1 : two 2 : three 3 : four 4 : four 5 : two 6 : two 7 : one 8 : one 9 : one *a以上b以下のランダムな整数 [#p88b7ff1] a以上b以下のランダムな整数を得るにはrandint(a,b)を使います。 for i in range(10): print(" %d : %d" % (i, random.randint(5,20))) 結果 0 : 7 1 : 14 2 : 9 3 : 18 4 : 19 5 : 11 6 : 10 7 : 5 8 : 20 9 : 18 両端の値は含まれます。 *乱数のseed(種)を指定する [#sfb995c1] seedメソッドを使うと乱数のseed(種)を指定できます。 同じseedを指定すると、何度実行しても同じ結果が得られます。 import random random.seed(1) for i in range(10): print(" %d : %f" % (i, random.random())) 結果 0 : 0.134364 1 : 0.847434 2 : 0.763775 3 : 0.255069 4 : 0.495435 5 : 0.449491 6 : 0.651593 7 : 0.788723 8 : 0.093860 9 : 0.028347 この結果は何度実行しても同じになります。 これは、例えば乱数を含むプログラムをテストするために、前回のプログラムの実行結果と比較したいときや、複数の環境で実行結果をあわせたいときなどに使えます。 seedを指定しないと、その時の時刻やOSの提供している乱数などでseedが自動で設定されます。 *まとめ [#xbade676] これ以外にも多くの便利なメソッドがrandomモジュールにはあります。 このうち、[[Python/リストをランダムに並べ替える]]についてはこちらで紹介しています。 長くなるので、こちらではよく使いそうな物だけ紹介しました。 他の物もページを分けてそのうち紹介するつもりです。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「東京」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
添付ファイル
[2]
:
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E4%B9%B1%E6%95%B0
(This host)
/cms/modules/xpwiki/?plugin=attach&pcmd=list&refer=Python%2F%E4%B9%B1%E6%95%B0