Pythonのrandomモジュールで乱数を生成

2897 ワード

今日Pythonで小さなプログラムを作成するときに乱数を使うので、Pythonが各種乱数を生成する方法についてネットで調べてみました.
ここでPythonのrandomモジュールを用いて乱数を生成する.まずモジュールをインポートする必要があります:import random
一.要素をランダムに生成
import random

#    0 1      : 0 <= n < 1.0
print(random.random())
>>> 0.8296185863491462

#               ,           ,     。
#  a > b,       n: a <= n <= b。   a >> 8.257312492950838

#            。    a   ,  b   ,
#      n: a <= n <= b,     :random.randint(a, b)
#  :     a<=b
print(random.randint(1, 10))
>>> 3

#      ,                  
#     :random.randrange(start, stop, step)
#     0-10    ,    2, [0,2,4,6,8],            
print(random.randrange(0, 10, 2))
>>> 2

#            。      :random.choice(sequence)
#  :sequence python         ,          ;
#  :list, tuple,       sequence。
print(random.choice( ['apple', 'pear', 'peach', 'orange', 'lemon'] ))
print(random.choice( ('1', '2', '3', '4', '5') ))
print(random.choice( [1, 2, 3, 4, 5] ))
>>> orange
>>> 2
>>> 2

#             。      :random.shuffle(x[, random])
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print(p)
>>> ['Python', 'is', 'simple', 'powerful', 'and so on...']

#                 。sample          。
#  k  sequence         。      :random.sample(sequence, k)
list = [1,2,3,4,5,6,7,8,9]
print(random.sample(list, 2))
print(random.sample(list, 5))
>>> [5, 3]
>>> [9, 5, 4, 7, 3]

二.ランダム配列を生成
import numpy as np

#          array
#   :
a = np.array([2,1,4,5,3,9,6,7,8,0])
print(a)
>>> array([2,1,4,5,3,9,6,7,8,0])

#    (0,1)   10      
#   ;
b = np.random.rand(10)
print(b)
>>> array([ 0.43634533,  0.00256198,  0.9252553 ,  0.46312913,  0.18253324,
            0.70458872,  0.79719794,  0.18972441,  0.5304701 ,  0.11495708])

#    (0,1)   10      
#   ;
c = np.random.random(10)
print(c)
>>> array([ 0.62725822,  0.69752737,  0.67910128,  0.32876791,  0.05591991,
            0.71435415,  0.62612756,  0.10492805,  0.45868039,  0.66527572])

#    (0,1)    3*4      
#   ;
d = np.random.random(size = (3,4))
print(d)
>>> array([[ 0.81287511,  0.07447028,  0.83052561,  0.69899251],
           [ 0.30087294,  0.24102044,  0.2261788 ,  0.7931203 ],
           [ 0.10688122,  0.93165383,  0.02486699,  0.66883373]])

三.リストまたはtupleをランダムに生成
import random

#               list tuple
#   :
a = [random.randint(0,5) for i in range(20)]
print(a)

#   ;
for _ in range(10):
    b = random.randint(0,5)
    print(b)
結果:
[5, 2, 0, 1, 3, 2, 4, 1, 2, 3, 5, 1, 1, 3, 1, 3, 1, 1, 3, 0]
4
2
1
1
3
0
5
4
4
5