等概率随机函数

简介: 昨天在做练习题的时候,看到了一道设计等概率随机函数的练习题,突然想到了之前看到过的问题,故仔细求解。 问题如下: 现有一个等概率随机函数f5,返回1~5这5个自然数随机一个数,需要用f5来构造f7,返回1~7这7个自然数的随机一个数,请问f7该如何构造? 我灵光一现,这个简单啊,f5+f5%3,OK。但是仔细想想,好像不对,f5%3中,0的概率是1/5,1和2的概率是2/5,

昨天在做练习题的时候,看到了一道设计等概率随机函数的练习题,突然想到了之前看到过的问题,故仔细求解。


问题如下:

现有一个等概率随机函数f5,返回1~5这5个自然数随机一个数,需要用f5来构造f7,返回1~7这7个自然数的随机一个数,请问f7该如何构造?


我灵光一现,这个简单啊,f5+f5%3,OK。但是仔细想想,好像不对,f5%3中,0的概率是1/5,1和2的概率是2/5,所以整个算法产生6和7的概率,要高于产生5的概率。

仔细想了想,等概率,是不是意味着,如果我有30个数,等概率取出来,那么我只要从这30个数中能够让他取到1~7的时候返回,其余时候重新去取,不就可以了?而取1~7,是不是也就意味着取到1~21,我用这个结果%7+1就可以了,所以算法如下:

while(x < 21) {

x = 5 * (f5 - 1) + f5

}

return 1 + x%7;

取1到25个自然数等概率,然后大于21的舍弃重新去取,最后的结果模7加1,搞定。

相关文章
|
10月前
|
数据安全/隐私保护
|
10月前
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
58 0
|
人工智能 移动开发 BI
概率论<一>——随机事件与概率(二)
概率论<一>——随机事件与概率
概率论<一>——随机事件与概率(二)
|
索引 Python
随机生成四则运算题并判断正确率
随机生成四则运算题并判断正确率
148 0
随机生成四则运算题并判断正确率
|
JavaScript 前端开发
一个适当的随机函数
一个适当的随机函数
77 0
|
程序员
生男生女概率一样吗?
生男孩的概率和生女孩的概率是一样的吗,以下内容解决你的疑惑。
290 0
生男生女概率一样吗?
宿舍买饭随机数概率生成器
宿舍买饭随机数概率生成器
123 0
宿舍买饭随机数概率生成器
|
数据挖掘 测试技术
3分钟,看懂区间估计and置信区间
很多小伙伴想知道:做数据分析,到底要懂多少统计学?小熊妹很认真地做一个懒人攻略,不讲复杂的理论,直接讲实际操作,希望能帮助到大家哦。 如果要讲统计学,第一个概念要从区间估计讲起,这是后续很多方法的基础。 一听:“区间估计”的名字,很多小伙伴会一脑袋问号: 为什么要“估计” 为什么还要有“区间” 今天的分享就从这里开始
532 0
3分钟,看懂区间估计and置信区间