免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: glq2000

[算法] 已知一个函数f可以得到1-5间的随机数,问怎么得到1-7的随机数 [复制链接]

论坛徽章:
0
发表于 2010-07-06 19:14 |显示全部楼层
f()运行7次加起来模7呢?我写个程序试试..

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-05-27 06:20:00
发表于 2010-07-06 19:19 |显示全部楼层
回复 9# iamxmz


    恩 得到7的概率是7个1/5相乘, 而不是1/7. 我再怀疑这个题是不是没有解啊 但又证明不了。。。。。。

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-05-27 06:20:00
发表于 2010-07-06 19:21 |显示全部楼层
回复 11# iamxmz


    模7的话有可能为0。。 而要求是 等概率的返回1-7,不包括0

    ps, 好变态的题啊

论坛徽章:
0
发表于 2010-07-06 19:22 |显示全部楼层
回复 9# iamxmz

嗯,的确那样产生是有问题的,我想想

论坛徽章:
0
发表于 2010-07-06 19:25 |显示全部楼层
rand() * (7/5)

论坛徽章:
0
发表于 2010-07-06 19:26 |显示全部楼层
回复  iamxmz


    模7的话有可能为0。。 而要求是 等概率的返回1-7,不包括0

    ps, 好变态的题 ...
glq2000 发表于 2010-07-06 19:21



    我简略了一步而已,要得到A-B之间的数都是模(B-A+1)然后加A的,具体到这个题上就是模7然后+1.

最新结果,分布还是不平均,误差在0.2%左右.

论坛徽章:
0
发表于 2010-07-06 19:45 |显示全部楼层
本帖最后由 churchmice 于 2010-07-06 19:47 编辑

from
http://www.mitbbs.com/article_t/Quant/31188147.html

基本方法就是产生一串序列
1,4,5,3,2,4
然后前后两两划分为一组,比如(1,4),(5,3),因为总共有5X5 =25种等概率的可能,不能被7整除,可以拿掉4种,这样剩下21种,编号为#1,#2,...#21
如果出现#1,#2,#3则输出1,....如果出现#19,#20,#21则输出7,如果出现了被拿掉的那4种情况则忽略之

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-05-27 06:20:00
发表于 2010-07-06 20:05 |显示全部楼层
17楼是正解, 多谢 churchmice  iamxmz等人的解答 ~~~~~~~~

论坛徽章:
0
发表于 2010-07-07 13:26 |显示全部楼层
17楼的怎么证明呢,总觉得有点怪.

1*1 的概率明显小于 1*3 + 3*1的概率
生成的1-25这25个数据等概率是怎么证明

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
发表于 2010-07-07 13:30 |显示全部楼层
from


基本方法就是产生一串序列
1,4,5,3,2,4
然后前后两两划分为一组,比如(1,4),(5,3),因为总共有 ...
churchmice 发表于 2010-07-06 19:45


恩,这个NB
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP