如何编写一个不使用内置random库randc功能的函数,来生成10位无重复的随机数?
时间: 2024-11-20 19:35:44 浏览: 18
编写一个不使用内置`random`库的函数来生成10位无重复的随机数可以采用一个基于列表和循环的方法。这里我们假设我们有一个较大的整数范围,例如从1到999999999,我们可以创建一个包含所有数字的列表,然后通过每次选择一个不在结果中的数字来填充我们的序列。以下是Python的一个示例:
```python
import time
def generate_unique_random(length=10):
# 创建一个包含1到最大可能值的列表
numbers = list(range(1, 1000000000))
# 保证随机性(虽然time.time()不是真正的随机,但在这种场景下足够)
seed = int(time.time())
random_numbers = []
while len(random_numbers) < length:
seed = (seed * 1103515245 + 12345) % 2**32
index = seed % len(numbers)
if not random_numbers or index != random_numbers[-1]:
random_numbers.append(numbers.pop(index)) # 取出并移除已选中的数
return random_numbers[:length] # 返回前10位随机数
# 示例
print(generate_unique_random(10))
阅读全文