Python の乱数

Python は、乱数を生成または操作するために使用される一連の関数を定義します。 ランダムモジュール。

の機能 ランダムモジュール 擬似乱数生成関数random()に依存し、0.0から1.0の間のランダムな浮動小数点数を生成します。これらの特定の種類の関数は、多くのゲーム、宝くじ、または乱数の生成を必要とするアプリケーションで使用されます。

を使用して Python で乱数を生成する例を見てみましょう。 ランダム()関数。

Python3




import> random> num> => random.random()> print> (num)>

出力:

0.30078080420602904 

Python で乱数を生成するさまざまな方法

Python のランダム モジュールの関数を使用して、Python で乱数を生成する方法はいくつかあります。いくつかの異なる方法を見てみましょう。

乱数の生成 Choice() を使用する

パイソン ランダム.チョイス() は、リストからランダムな項目を返す Python プログラミング言語の組み込み関数です。 タプル 、または文字列。

Python3




# import random> import> random> # prints a random value from the list> list1> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ,> 6> ]> print> (random.choice(list1))> # prints a random item from the string> string> => 'striver'> print> (random.choice(string))>

出力:

5 t 

randrange() を使用して乱数を生成する

Random モジュールは、指定された範囲から Python 乱数を生成できる関数を提供し、 randrange() と呼ばれるステップを含める余地も許可します。

Python3




# importing 'random' for random operations> import> random> # using choice() to generate a random number from a> # given list of numbers.> print> (> 'A random number from list is : '> , end> => '')> print> (random.choice([> 1> ,> 4> ,> 8> ,> 10> ,> 3> ]))> # using randrange() to generate in range from 20> # to 50. The last parameter 3 is step size to skip> # three numbers when selecting.> print> (> 'A random number from range is : '> , end> => '')> print> (random.randrange(> 20> ,> 50> ,> 3> ))>

出力:

A random number from list is : 4 A random number from range is : 41 

seed() を使用して乱数を生成する

パイソン ランダムシード() 関数はランダム関数の状態を保存するために使用され、同じマシン上または異なるマシン上で (特定のシード値に対して) コードが複数回実行されるときに Python で乱数を生成できるようにします。シード値は、ジェネレーターによって生成された以前の値の番号です。前回の値がない場合は初めて、現在のシステム時間が使用されます。

Python3




# importing 'random' for random operations> import> random> # using random() to generate a random number> # between 0 and 1> print> (> 'A random number between 0 and 1 is : '> , end> => '')> print> (random.random())> # using seed() to seed a random number> random.seed(> 5> )> # printing mapped random number> print> (> 'The mapped random number with 5 is : '> , end> => '')> print> (random.random())> # using seed() to seed different random number> random.seed(> 7> )> # printing mapped random number> print> (> 'The mapped random number with 7 is : '> , end> => '')> print> (random.random())> # using seed() to seed to 5 again> random.seed(> 5> )> # printing mapped random number> print> (> 'The mapped random number with 5 is : '> , end> => '')> print> (random.random())> # using seed() to seed to 7 again> random.seed(> 7> )> # printing mapped random number> print> (> 'The mapped random number with 7 is : '> , end> => '')> print> (random.random())>

出力:

A random number between 0 and 1 is : 0.510721762520941 The mapped random number with 5 is : 0.6229016948897019 The mapped random number with 7 is : 0.32383276483316237 The mapped random number with 5 is : 0.6229016948897019 The mapped random number with 7 is : 0.32383276483316237 

shuffle()を使用した乱数の生成

shuffle() 関数は、シーケンス (リスト) をシャッフルするために使用されます。シャッフルとは、シーケンスの要素の位置を変更することを意味します。ここではシャッフル操作が行われています。

Python3




# import the random module> import> random> # declare a list> sample_list> => [> 'A'> ,> 'B'> ,> 'C'> ,> 'D'> ,> 'E'> ]> print> (> 'Original list : '> )> print> (sample_list)> # first shuffle> random.shuffle(sample_list)> print> (> ' After the first shuffle : '> )> print> (sample_list)> # second shuffle> random.shuffle(sample_list)> print> (> ' After the second shuffle : '> )> print> (sample_list)>

出力:

Original list : ['A', 'B', 'C', 'D', 'E'] After the first shuffle : ['A', 'B', 'E', 'C', 'D'] After the second shuffle : ['C', 'E', 'B', 'D', 'A'] 

unique() を使用して乱数を生成する

uniform() 関数は、引数で指定された数値の間の浮動小数点 Python 乱数を生成するために使用されます。下限値(生成に含まれる)と上限値(生成に含まれない)の 2 つの引数を取ります。

Python3




# Python code to demonstrate the working of> # shuffle() and uniform()> # importing 'random' for random operations> import> random> # Initializing list> li> => [> 1> ,> 4> ,> 5> ,> 10> ,> 2> ]> # Printing list before shuffling> print> (> 'The list before shuffling is : '> , end> => '')> for> i> in> range> (> 0> ,> len> (li)):> > print> (li[i], end> => ' '> )> print> (> ' '> )> # using shuffle() to shuffle the list> random.shuffle(li)> # Printing list after shuffling> print> (> 'The list after shuffling is : '> , end> => '')> for> i> in> range> (> 0> ,> len> (li)):> > print> (li[i], end> => ' '> )> print> (> ' '> )> # using uniform() to generate random floating number in range> # prints number between 5 and 10> print> (> 'The random floating point number between 5 and 10 is : '> , end> => '')> print> (random.uniform(> 5> ,> 10> ))>

出力:

The list before shuffling is : 1 4 5 10 2 The list after shuffling is : 2 1 4 5 10 The random floating point number between 5 and 10 is : 5.183697823553464