python randomモジュールの簡単な紹介
5667 ワード
python randomモジュール 基本ランダム関数 拡張乱数関数 転載先:https://www.cnblogs.com/masked/p/8846439.html
部分的に作者自身の理解に修正する
randomモジュール
randomライブラリは乱数を使用したPython標準ライブラリです
確率論の観点から言えば、乱数はランダムに生成されたデータ(例えばコインを投げる)であるが、コンピュータはランダム値を生成することは不可能であり、本当の乱数も特定の条件の下で生成された確定値であるが、これらの条件は私たちが理解していないか、あるいは私たちの理解範囲を超えている.コンピュータが真の乱数を生成できない場合、擬似乱数も乱数と呼ばれます.
-擬似乱数:コンピュータでメイソン回転アルゴリズムを使用して生成された(擬似)ランダムシーケンス要素
pythonで擬似乱数を生成するための関数ライブラリはrandomです
標準ライブラリなので、使用時はimport randomのみ
Pythonで発生する乱数は乱数シードを用いて発生する(シードが同じであれば、発生する乱数シーケンスは、各数でも数と数の関係でも決定されるので、乱数シードは乱数シーケンスの発生を決定する)
きほんランダムかんすう
関数#カンスウ#
説明
seed(a=None)
与えられた乱数シードを初期化し、デフォルトは現在のシステム時間>>randomである.seed(10)#シード10に対応するシーケンスを生成
random()
[0.0,1.0]の間のランダム小数>>random.random()を生成します.
乱数シードを使うメリットは乱数のあるプログラムを再現できることです
かくちょうらんすうかんすう
randomライブラリではseedとrandom関数が最も基本的であるが,時機能は比較的単一であり,そのために6つの拡張乱数関数が生成された.
関数#カンスウ#
説明
randint(a,b)
[a,b]間の整数を生成する
randrange(m,n[,k])
[m,n)間のkをステップ長とするランダム整数を生成する
getrandbits(k)
k比の特長のランダム整数を生成する
uniform(a,b)
[a,b]間のランダム小数を生成する
choice(seq)シーケンス相関
シーケンスから要素をランダムに選択
shuffle(seq)
シーケンスseqの要素をランダムに並べて、乱れたシーケンスを返します
出力結果
部分的に作者自身の理解に修正する
randomモジュール
randomライブラリは乱数を使用したPython標準ライブラリです
確率論の観点から言えば、乱数はランダムに生成されたデータ(例えばコインを投げる)であるが、コンピュータはランダム値を生成することは不可能であり、本当の乱数も特定の条件の下で生成された確定値であるが、これらの条件は私たちが理解していないか、あるいは私たちの理解範囲を超えている.コンピュータが真の乱数を生成できない場合、擬似乱数も乱数と呼ばれます.
-擬似乱数:コンピュータでメイソン回転アルゴリズムを使用して生成された(擬似)ランダムシーケンス要素
pythonで擬似乱数を生成するための関数ライブラリはrandomです
標準ライブラリなので、使用時はimport randomのみ
-- : seed(), random()
-- :randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
Pythonで発生する乱数は乱数シードを用いて発生する(シードが同じであれば、発生する乱数シーケンスは、各数でも数と数の関係でも決定されるので、乱数シードは乱数シーケンスの発生を決定する)
きほんランダムかんすう
関数#カンスウ#
説明
seed(a=None)
与えられた乱数シードを初期化し、デフォルトは現在のシステム時間>>randomである.seed(10)#シード10に対応するシーケンスを生成
random()
[0.0,1.0]の間のランダム小数>>random.random()を生成します.
乱数シードを使うメリットは乱数のあるプログラムを再現できることです
import random
random.seed()
"""
seed() ,
,
seed(x) x = x
seed(x) x x
"""
a = random.random()
random.seed()
b = random.random()
print(a)
print(b)
かくちょうらんすうかんすう
randomライブラリではseedとrandom関数が最も基本的であるが,時機能は比較的単一であり,そのために6つの拡張乱数関数が生成された.
関数#カンスウ#
説明
randint(a,b)
[a,b]間の整数を生成する
randrange(m,n[,k])
[m,n)間のkをステップ長とするランダム整数を生成する
getrandbits(k)
k比の特長のランダム整数を生成する
uniform(a,b)
[a,b]間のランダム小数を生成する
choice(seq)シーケンス相関
シーケンスから要素をランダムに選択
shuffle(seq)
シーケンスseqの要素をランダムに並べて、乱れたシーケンスを返します
import random
print( random.randint(1,10) ) # 1 10
print( random.random() ) # 0 1
print( random.uniform(1.1,5.4) ) # 1.1 5.4 ,
print( random.choice('tomorrow') ) #
print( random.randrange(1,100,2) ) # 1 100 2
a=[1,3,5,6,7] # a
random.shuffle(a)
print(a)
出力結果
"""
4
0.061401400678613105
5.388597406589035
t
35
[1, 5, 7, 3, 6]
"""