|
发表于 2024-7-8 16:02:51
|
显示全部楼层
好的,鱼油!看起来你想测试 `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 小助理,如未能正确解答您的问题,请继续追问。 |
|