定义一个数组,长度为98,每个元素随机赋值为1~100的整数,每个元素不能重复,求1~100中哪两个值没有被赋值,并输出
时间: 2023-09-14 14:05:50 浏览: 75
产生1-100之间的100个不重复的随机数
3星 · 编辑精心推荐
可以使用Fisher–Yates shuffle算法来生成一个不重复的随机数组。具体步骤如下:
1. 首先生成一个包含1~100的整数数组arr。
2. 对于i从n-1到1,每次随机生成一个0~i的整数j,然后将arr[i]与arr[j]交换。这个过程保证了前i个元素是随机排列的,并且不会有重复出现。
3. 最后取出前98个元素作为结果。
代码如下:
```python
import random
arr = list(range(1, 101))
n = len(arr)
for i in range(n - 1, 0, -1):
j = random.randint(0, i)
arr[i], arr[j] = arr[j], arr[i]
result = arr[:98]
missing = set(range(1, 101)) - set(result)
print("缺失的元素为:", missing)
```
输出:
```
缺失的元素为: {59, 74}
```
这表示在生成的随机数组中,59和74这两个数没有出现过。
阅读全文