MicroPython的random模組(pyb上測試)

小曹的發表於2020-12-13

MicroPython的random模組

  • random.getrandbits(n)

返回有 n 隨機位的整數。

  • random.seed(n)

用已知整數 n 初始化隨機數生成器。 這會從給定的開始狀態(n)給出重複確定性的隨機性。

我們呼叫 random.random() 生成隨機數時,每一次生成的數都是隨機的。但是,當我們預先使用 random.seed(x) 設定好種子之後,其中的 x 可以是任意數字,如10,這個時候,先呼叫它的情況下,使用 random() 生成的隨機數將會是同一個。

  • random.randint(ab)

返回一個隨機整數 N ,使得 a <= N <= b 。 別名 randrange(a,b + 1)

  • random.randrange(stop)

返回一個隨機選擇的零和達到(但不包括) stop 狀態之間的整數。

  • random.randrange(startstop)

從 range(start,stop) 返回一個隨機選擇的整數。

  • random.randrange(startstopstep)

從 range(start,stop,step) 返回一個隨機選擇的元素。

  • random.choice(seq)

從非空序列 seq 中返回一個隨機元素。 如果 seq 是空,引發 IndexError

  • random.random()

返回範圍[0.0,1.0)中的下一個隨機浮點數。

  • random.uniform(ab)

返回一個隨機浮點數 N 使得 a <= N <= b a <= b 和 b <= N <= a b <a

在pyb上測試

MicroPython v1.11 on 2019-12-30; MPY_CPU_401RE with STM32F401xE
Type "help()" for more information.

>>> import random
>>> dir(random)
['__class__', '__name__', 'choice', 'getrandbits', 'randint', 'random', 'randrange', 'seed', 'uniform']
>>> names = ["Mary", "Yolanda", "Damien", "Alia", "Kushal", "Mei Xiu", "Zoltan" ]
>>> random.choice(names)
'Alia'
>>> random.choice(names)
'Mei Xiu'
>>> random.getrandbits(8)
174
>>> random.randint(1,6)
2
>>> random.random()
0.6723639
>>> random.randrange(100)
95
>>> random.randrange(50,100,10)
80
>>> random.seed(1)
>>> random.random()
0.2386861
>>> random.seed(2)
>>> random.random()
0.2387042
>>> random.seed(3)
>>> random.random()
0.2383828
>>> random.seed(1)
>>> random.random()
0.2386861
>>> random.seed(2)
>>> random.random()
0.2387042
>>> random.seed(3)
>>> random.random()
0.2383828
>>> random.uniform(1,11)
4.052836
>>> 

 

相關文章