吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 989|回复: 18
收起左侧

[讨论] 概率模拟

  [复制链接]
甜萝 发表于 2024-5-7 23:19
本帖最后由 paypojie 于 2024-5-7 23:42 编辑

突发奇想弄的一个东东 功能是通过生成n次随机数来达到跟期望的数字相等 并输出概率
[Python] 纯文本查看 复制代码
import random

for i in range(101):

    count = 1   
    random_1 = random.randint(0,i+1)

    while i != random_1:
        random_1 = random.randint(0,i+1)
        count += 1

    else:
        percentage = (1 / count) * 100
        print('[%d 循环%d次得到该数字 概率为%.2f%%]' % (i,count,percentage))

QQ截图20240507230544.png


将代码改改 功能发生了改变 下面的代码作用是 测试随机数与随机数碰撞成功的概率
[Python] 纯文本查看 复制代码
import random

for i in range(1,101):

    count = 1   
    random_1 = random.randint(0,101)
    random_2 = random.randint(0,101)

    while random_1 != random_2:
        random_2 = random.randint(0,101)
        count += 1

    else:
        percentage = (1 / count) * 100
        print('[第%d次碰撞 碰撞%d次得到该数字 概率为%.2f%%]' % (i,count,percentage))

QQ截图20240507231655.png

随机和循环很有意思 哈哈

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ouyang123321 发表于 2024-5-8 01:26
不错,可以搞成彩票软件吗?
爱飞的猫 发表于 2024-5-8 05:35
本帖最后由 爱飞的猫 于 2024-5-8 05:36 编辑

概率不对;一个好的随机算法,应当让生成任意指定范围数字的概率差不多趋势与一致(如果实验次数足够多)。

例如我扔骰子,运气不错连续两次扔到 6。根据你的程序算法,此时会停止,并认为碰到 6 的概率是 100%。此时样本过小,会不足以支撑这个数字。

import random
import secrets
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

USE_SYSTEM_RANDOM = False  # 改为 True 使用 SystemRandom
TEST_COUNT = 1000 * 1000 * 1000

# 计数器
counter = [0] * 100

# 生成随机数
rnd = secrets.SystemRandom() if USE_SYSTEM_RANDOM else random.Random()
for _ in range(1000 * 100):
    number = rnd.randint(1, 100)
    counter[number - 1] += 1

# 出图
_, ax = plt.subplots()
ax.bar(range(1, 101), counter, align='center')

# 默认情况下无法渲染 CJK 字符,姑且写死一个 Windows 下的字体路径凑合用
font = fm.FontProperties(fname="C:/Windows/Fonts/msyh.ttc", size=14)

ax.set_title('随机分布', fontproperties=font)
ax.set_xlabel('数值', fontproperties=font)
ax.set_ylabel('次数', fontproperties=font)

plt.show()

当然,每次执行时,不同值出现的频率都会上下摇摆一部分。

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
甜萝 + 1 + 1 用心讨论,共获提升!
JackLei + 2 + 1 我很赞同!

查看全部评分

ltgb 发表于 2024-5-8 07:03
fatyung 发表于 2024-5-8 07:48
好是好啊
pdanny 发表于 2024-5-8 07:57
概率永远只能被模拟
shengrumenghuan 发表于 2024-5-8 08:33
好,很好
qylisten 发表于 2024-5-8 08:58
爱飞的猫 发表于 2024-5-8 05:35
[md]概率不对;一个好的随机算法,应当让生成任意指定范围数字的概率差不多趋势与一致(如果实验次数足够多 ...

这处ttc字体文件在哪里?

点评

系统字体目录,C:\Windows\Fonts 下。 用 CMD 进入这个目录然后执行 dir 查看字体文件名。  详情 回复 发表于 2024-5-9 07:56
hmg668 发表于 2024-5-8 09:44
大概率期望
jyjjf 发表于 2024-5-8 09:50
random函数本身就是个不完全的随机
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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