簡體   English   中英

我正在嘗試在 Python 中創建一系列隨機數

[英]I'm trying to create a series of random numbers in Python

我在這里創建了一個腳本來生成一串隨機數。 我不知道如何使它每次使用時數字都是隨機的。 例如,我希望它是這樣的:

0,1,2,3,5
1,4,7,3,5
2,8,2,1,3

相反,我得到:

0,1,2,3,5
1,1,2,3,5
2,1,2,3,5

第一個數字是按順序運行的,這很棒。 但我需要改變其他 4 個數字。

inter1rand = random.randint(1, 1)
inter1time = inter1rand
inter1 = inter1time
print (inter1)  

inter2rand = random.randint(24, 31)
inter2time = inter2rand + inter1time
inter2 = inter2time
print (inter2)

inter3rand = random.randint(34, 55)
inter3time = inter3rand + inter2time
inter3 = inter3time
print (inter3)


mouse1 = random.randint(110, 1100)
mouse2 = random.randint(875, 1100)
mouse3 = random.randint(375, 607)



col_list1 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(0,inter1)]
col_list2 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(inter1,inter2)]
col_list3 = [str(n) + ',1,' + str(mouse1) + ',' + str(mouse2) + ',' + str(mouse3) + ';' for n in range(inter2,inter3)]
#print (col_list1)
#print (col_list1 + col_list2)
#print (col_list1 + col_list2 + col_list3)

將代碼從使用 mouse1、mouse2 和 mouse3 更改為直接使用 random.randint:

col_list1 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(0,inter1)]
col_list2 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(inter1,inter2)]
col_list3 = [str(n) + ',1,' + str(random.randint(110, 1100)) + ',' + str(random.randint(875, 1100)) + ',' + str(random.randint(375, 607)) + ';' for n in range(inter2,inter3)]

如果您想要真正隨機的 integer 值,您也可以查看np.random.choice() function 。

np.random.choice(10,3)
array([9, 4, 2])
>>> np.random.choice(10,3)
array([6, 7, 8])
>>> np.random.choice(31,3)
array([11, 28, 10])
>>> np.random.choice([0,1],3)
array([0, 1, 1])

在此 function 中,您可能無法給出范圍,但重復的機會較少。

使用 random 模塊及其randint

import random

for u in range(3):
    r = [random.randint(0, 10) for i in range(5)]
    for d in r[:-1]:
        print(d, end=', ')
    print(r[-1])

回報:

9, 6, 0, 4, 1
7, 9, 2, 2, 1
4, 10, 6, 5, 8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM