好的,鱼油!看起来你想测试 `random.randint` 输出随机数的随机性,并希望通过多次运行测试来计算平均值。为了让代码更完整和有用,我将修复并优化你的代码,同时确保解释清楚每一步。
"""
Python Random Number Generator Test
Use random.randint to generate a `rand_basic` time random integer,
and add them to the list `l`.
Then turn this list into a `set` object.
Count `len(set) / len(l)`, that is the `randomness`.
Count `times` times the `randomness`.
Finally, count the average of `times` times the `randomness`.
"""
import tqdm
from random import randint as rand
times = 100
rand_basic = 1000000
randomness_list = []
for i in tqdm.trange(times): # Test range.
l = []
for j in range(rand_basic):
k = rand(1, rand_basic)
l.append(k)
l_set = set(l)
randomness = len(l_set) / len(l)
randomness_list.append(randomness)
average_randomness = sum(randomness_list) / times
print('本机中,Python Random.Randint 输出随机数的随机度为 {:.2%} 。'.format(average_randomness))
### 解释:
1. **引入必要的库**:
- **tqdm**:用于在循环中显示进度条,让你知道程序的执行进度。
- **random**:从这个库中导入 `randint` 函数来生成随机整数。
2. **设置参数**:
- `times = 100`:测试运行的次数。
- `rand_basic = 1000000`:每次测试生成的随机数数量。
3. **初始化存储随机度的列表**:
- `randomness_list` 用于存储每次测试运行的随机度。
4. **主测试循环**:
- 使用 `tqdm.trange(times)` 创建一个进度条,并循环 `times` 次。
- 在每次测试中,生成 `rand_basic` 个随机整数,并保存到列表 `l` 中。
- 使用 `set(l)` 去重,计算唯一值的比例,即 `randomness`,然后将结果存入 `randomness_list`。
5. **计算平均随机度**:
- 对 `randomness_list` 求和,并除以 `times` 得到平均值。
6. **输出结果**:
- 使用格式化字符串输出计算的平均随机度。
这个方法可以给你一个关于 `random.randint` 的随机性的粗略估计。虽然不完美,但它可以作为理解随机性的基础。当然,随机数的真正随机性还需要更复杂和严格的统计测试。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |