zhangchenyvn 发表于 2024-7-8 16:02:39

Python 输出随机数的随机度测试

本帖最后由 zhangchenyvn 于 2024-7-8 16:14 编辑

使用 random.randint 生成 rand_basic 次的随机整数,
将它们添加到列表 l 中。
然后,将此列表转换为 set。
并计算len(set) / len(l),
最后,计算times次以 随机性 ,并输出平均值。

**** Hidden Message *****

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-7-8 17:56:30

interesting

cjjJasonchen 发表于 2024-7-8 21:31:23

看看

jasonpzc 发表于 2024-7-9 21:11:10

哦?有意思

茶花鱼 发表于 2024-7-10 00:03:04

想学习一下

mwy1024 发表于 2024-7-10 08:06:06

{:5_102:}

小乖乖儿~ 发表于 2024-7-10 08:39:27

1

cjjJasonchen 发表于 2024-7-10 22:58:08

小乖乖儿~ 发表于 2024-7-10 08:39
1

别水贴哦{:10_257:}

jackno1 发表于 2024-7-12 09:43:46

不明觉历

69wuxin69 发表于 2024-12-9 10:54:38

666
页: [1]
查看完整版本: Python 输出随机数的随机度测试