生成n個,在0-100之間的不重疊的隨機數。
分別使用列表和集合來實現。
- 列表法實現時核心是判斷新生成的隨機數是否已經存在於列表中,可以使用
if x not in list進行判斷。 - 集合法使用時則不用擔心重疊問題,因為集合天然不允許重疊。
- 使用
while len(numbers) < n作為while循環的條件,即可生成一組長度為n的不重疊隨機數。 - Notes:向列表中添加元素使用
list.append(x),而向集合中添加元素使用set.add(x)
import random
def collectionMethod(n):
"""集合方式實現"""
numbers = set()
while len(numbers) < n:
# 0~100之間的隨機數
i = random.randint(0, 100)
numbers.add(i)
return numbers
def listMethod(n):
"""列表的方法實現"""
numbers = []
while len(numbers) < n:
i = random.randint(0, 100)
if i not in numbers:
numbers.append(i)
return numbers
if __name__ == '__main__':
n = int(input("請輸入數字個數n\n"))
# 生成n個,在0-100之間的不重疊的隨機數。
print(f"集合方式實現:{collectionMethod(n)}")
print(f"列表方法實現{listMethod(n)}")
運行結果

