鱼C论坛

 找回密码
 立即注册
查看: 272|回复: 10

[作品展示] Python 输出随机数的随机度测试

[复制链接]
发表于 2024-7-8 16:02:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

游客,如果您要查看本帖隐藏内容请回复
[/hide]

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-8 17:56:30 | 显示全部楼层
interesting
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-8 21:31:23 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-9 21:11:10 | 显示全部楼层
哦?有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 00:03:04 | 显示全部楼层
想学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-10 08:06:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-10 08:39:27 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-10 22:58:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-12 09:43:46 | 显示全部楼层
不明觉历
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-12-9 10:54:38 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 11:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表