网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月02日漏签0天
c语言吧 关注:800,812贴子:4,369,344
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 下一页 尾页
  • 97回复贴,共3页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

随机数,从0-9999中取数,为什么0和9999出现次数差别这么大

  • 只看楼主
  • 收藏

  • 回复
  • 澈
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼



  • 澈
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶


2025-11-02 09:28:28
广告
不感兴趣
开通SVIP免广告
  • 澈
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶再


  • 澈
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还顶


  • 宇文nick
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
100w次里差了41个 哪点儿大?


  • 火柴人天秤
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一般来说 rand() 函数生成的随机数范围是 0 ~ 32767,可以认为是均匀分布。
使 rand() % 10000 == 0:那么 rand() 取0、10000、20000、30000。
使 rand() % 10000 == 9999:那么 rand() 取9999、19999、29999。
执行 1000000 次,前者的数学期望是 4 / 32768 * 1000000 = 122.0703,后者的数学期望是 3 / 32768 * 1000000 = 91.5527。


  • XeO2
  • 小吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原因很简单,因为rand()的生成范围不是10000的整倍数,所以0和9999出现的概率本来就是不一样的,7L已经分析得很清楚了。
如果使用生成范围更大的随机数发生器,可以在一定程度上削弱概率的差异,但无法完全消除它,使用梅森旋转器的测试代码如下:

输出如下,显然64位的梅森旋转器产生的结果比32位的更均匀一些:

以下是生成指定范围内均匀分布随机数的算法,这种做法可以消除概率上的偏差:

其中d->random(d->engine)返回[0,4294967295]之间均匀分布的随机整数


  • 澈
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
说误差不大,我没学过概率论的,好好看看这些大神的评论,真的牛逼


2025-11-02 09:22:28
广告
不感兴趣
开通SVIP免广告
  • 朔墨
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
随机数一直有疑惑,今天真的受益


  • XeO2
  • 小吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
改了一个简单的版本,不需要<stddef.h>和<stdint.h>之类的头文件,在调用之前需要用srand初始化,然后直接调用random(0,9999)就可以:


  • 汉莎五十六号
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的评价是,把RAND_MAX减去RAND_MAX对你的随机上界取模,随机结果比这个大就重新随机一次


  • 巫女小姐
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哈哈,以前还没注意到这一点。其实也还好解决,把rand()为0那种情况排除掉可以了。


  • 嗯了
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
等概率好像可以用位操作


  • -将子山-
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不等概是不等概,你这误差不大就是误差不大,又不冲突


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 97回复贴,共3页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示