[英]Use Random.random [30,35] to print random numbers between 30,35. Seed(70)
[英]Output random number between 30-35 using Random.seed(), 'for' and multiplication in Python
我是編程新手。 我有一個任務要編寫一個代碼,該代碼將輸出 30 到 35 之間的隨機數。此代碼需要使用random.seed()
、一個for
語句和一個乘法。 我知道random.seed([x])
生成一個初始值,可以在代碼的后續部分中使用。 但是,我無法弄清楚在獲得隨機值后如何進行:
import random
random.seed(70)
print(random.random()) # This returns a value of 0.909769237923872
如何使用此值生成 30 到 35 之間的隨機值?
注意:如果沒有上面的具體說明,我已經能夠編寫兩個按需要運行的代碼,所以我不是在尋找編寫代碼的替代方法。
這是另一種方法:
import random
#initial random seed based on current system time
#https://docs.python.org/2/library/random.html#random.seed
random.seed(9) #We set this so random is repeatable in testing
random_range = [30, 31, 32, 33, 34, 35]
while True:
num = int(round(random.random(),1)*100)
if num in random_range:
print num
break
種子設置為 9,所以如果你一遍又一遍地運行它,你會得到相同的隨機值......因此設置了一個種子。 請注意,運行多次迭代是因為提到不使用像 random.choice 這樣的選擇
import random
def problem():
random.seed(70)
list_no=[]
i = 0
while(i<10):
x = (5*random.random()+30)
list_no.append(x)
i=i+1
print(list_no)
random.seed(70)
設置為確保我們生成相同的隨機數。
list_no=[]
是一個空列表,用於以列表的形式保存值(輸出)。
random.random()
從 0-1 生成值,因此通過相乘,我們可以將隨機數展開以覆蓋 0 到 5 的范圍。通過相加,您可以將這些數字移動到所需的 30 到 35 的范圍,該范圍正在被存儲在 x。
存儲值后,我們將結果附加到 list_no 並遞增 i。 循環執行后,我們正在打印列表
這是在任意兩個浮點數之間查找隨機數的通用代碼。
from random import random, seed
def rand_no(x_lower, x_upper):
'''
Function to generate random number
x_lower : lower bound value
x_upper : upper bound value
'''
random_number = x_lower + (x_upper - x_lower)*random()
return random_number
if __name__ == '__main__':
seed_value = 70 # Seed value for random generator
seed(seed_value)
print('Printing a list of 10 random numbers\n')
for i in range(10):
sample_value = rand_no(30, 35)
print("Number %d = %4.2f"%(i+1, sample_value))
輸出如下:
Printing a list of 10 random numbers
Number 1 = 34.55
Number 2 = 31.47
Number 3 = 32.30
Number 4 = 30.68
Number 5 = 34.98
Number 6 = 30.77
Number 7 = 33.37
Number 8 = 32.99
Number 9 = 33.57
Number 10 = 32.05
import random
def random_no():
# Making a list of 10 random reals numbers between 30 and 35
random.seed(70)
random_list=[]
for i in range(10):
x=(5*random.random()+30)
random_list.append(x)
print(random_list)
試試這個方法:
import random
def problem2_4():
A = []
random.seed(70)
for i in range(0,10):
A.append(5*random.random()+30)
# it gives in a range of 0-1 so multiplied by 5
# we need in range of 30-35 so we add it to 30
# if 0.000000001 ~30.000000005 it is still in 30-35 range
# if 0.999999901 ~34.999999505 it is still in 30-35 range
# print the list of numbers generated at random
print(A)
試試這個代碼:
import random
def function():
random.seed(70)
for i in range(0,10):
print(5*random.random()+30)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.