已知一个函数f可以得到1-5间的随机数,问怎么得到1-7的随机数
时间:2010-07-06
来源:互联网
在 http://blog.csdn.net/DKarthas/archive/2007/11/05/1868212.aspx看到一个面试题,博主只是提出了问题,没有给出解答,所以在这发一下,希望知道解的tx解答下 :)
问题:
已知一个函数f可以等概率的得到1-5间的随机数,问怎么等概率的得到1-7的随机数,
这个问题是有解的么? 若无解,说明原因,若有解,那解是什么?
(该问题已解决,剧透一下,正解在17楼~~~~~~~~)
作者: glq2000 发布时间: 2010-07-06
作者: evaspring 发布时间: 2010-07-06
运行7次f()加起来除5
写完之后想了一下,7只会出现一次,前边的数都会出现很多次,这个不对.
作者: iamxmz 发布时间: 2010-07-06
f()+f()%2 的取值范围是 1到6啊
后来我改为 f()+f()%3, 这样取值范围倒是1到7了,但取七的概率是
前面需要为5, 后面需要为2或者5, 所以 1/5 * 2/5 = 2/25, 也不是1/7, 满足不了等概率的条件。。。。。。。。。
作者: glq2000 发布时间: 2010-07-06
evaspring 发表于 2010-07-06 18:41
这个好像不是平均分布的把
作者: egmkang 发布时间: 2010-07-06
f()随机返回1-5, 那f()运行7次相加的话,再除以7的话,最大也就是 5*7/7 = 5, 根本取不到6和7啊。
如果你的意思是对7取余,即使先不考虑等概率,取余的结果中包含0,而要求是对1-7返回等概率,不包括0。
我感觉这个题是个数学题。。。。。。
作者: glq2000 发布时间: 2010-07-06
这个题目是有解的么? 解是什么? 无解的话,原因是?
作者: glq2000 发布时间: 2010-07-06
仔细看,人家是除以5
作者: churchmice 发布时间: 2010-07-06
作者: iamxmz 发布时间: 2010-07-06
作者: egmkang 发布时间: 2010-07-06
作者: iamxmz 发布时间: 2010-07-06
恩 得到7的概率是7个1/5相乘, 而不是1/7. 我再怀疑这个题是不是没有解啊 但又证明不了。。。。。。
作者: glq2000 发布时间: 2010-07-06
模7的话有可能为0。。 而要求是 等概率的返回1-7,不包括0
ps, 好变态的题啊
作者: glq2000 发布时间: 2010-07-06
嗯,的确那样产生是有问题的,我想想
作者: churchmice 发布时间: 2010-07-06
作者: redspider 发布时间: 2010-07-06
模7的话有可能为0。。 而要求是 等概率的返回1-7,不包括0
ps, 好变态的题 ...
glq2000 发表于 2010-07-06 19:21
我简略了一步而已,要得到A-B之间的数都是模(B-A+1)然后加A的,具体到这个题上就是模7然后+1.
最新结果,分布还是不平均,误差在0.2%左右.
作者: iamxmz 发布时间: 2010-07-06
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种情况则忽略之
作者: churchmice 发布时间: 2010-07-06
作者: glq2000 发布时间: 2010-07-06
作者: glq2000 发布时间: 2010-07-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28