Python 生成乙個不重複隨機list(無放回)

2021-09-25 10:50:21 字數 1214 閱讀 9735

在乙個範圍內,生成乙個元素數量固定的隨機不重複list.

使用for迴圈逐一對生成每個值進行判斷,在有重複值的時候,不會被被新增.在需要生成多個隨機值的時候,容易出現輸出的結果比較少的情況.比如下面需要生成20個隨機值,可是一般輸出的都不到20.

import random

all_num = 100

a_list = [i for i in range(all_num)]

b_list =

num = 20

for i in range(num):

random_number = random.randint(1,all_num-1)

if random_number not in b_list:

print(b_list)

print(len(b_list))

import random

all_num = 100

a_list = [i for i in range(all_num)]

num = 20

def make_random():

b_length = 1

b_list =

while b_length<=num:

random_number = random.randint(1, all_num - 1)

if random_number not in b_list:

b_length = len(b_list)+1

return b_list

print(make_random())

print(len(make_random()))

這裡使用的list的元素個數來作為判斷條件,保證了個數.

這裡有一點值得注意的是b_list放在函式裡面比較合適,如果放在函式外面定義,在

print(len(make_random()))
結果會為21,因為函式裡定義b_length=1,函式會再給b_list增加乙個元素進去.

可以適當修改解決…

all_num = 100

num = 20

result=random.sample(range(1,all_num),num)

print(result)

print(len(result))

PHP高效生成乙個不重複隨機數

array unique rand int min,int max,int num 生成一定數量的不重複隨機數 min 和 max 指定隨機數的範圍 num 指定生成數量 function unique rand min max num 為陣列賦予新的鍵名 shuffle return return...

建立乙個不重複的隨機列表

隨機列表是我們常用的資料結構,我們一般會使用隨機函式srand rand 取隨機數來生成乙個隨機列表。但問題是我們希望隨機列表不要在乙個迴圈內多次的重複同乙個index,並且每乙個index都能被索引到。請看下面乙個例子 void createradomlist int pbuf,int lengt...

隨機生成52個不重複的數字

生成五十二個隨機數,存放在陣列中,範圍是1 52,不允許重複,最後在螢幕上顯示出來。小小思路,不成敬意 有專案學習想法的讀者可以利用這個思路研究一下,ai鬥地主等撲克類的遊戲是如何開發的。include include include 生成五十二個隨機數,存放在陣列中,範圍是1 52,不允許重複,最...