等概率随机函数

简介: 昨天在做练习题的时候,看到了一道设计等概率随机函数的练习题,突然想到了之前看到过的问题,故仔细求解。 问题如下: 现有一个等概率随机函数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,搞定。

相关文章
|
数据可视化 Python
概率学中的随机变量与分布
概率学中的随机变量与分布
概率学中的随机变量与分布
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
75 0
(一)探索随机变量及其分布:概率世界的魔法
(一)探索随机变量及其分布:概率世界的魔法
|
索引 Python
随机生成四则运算题并判断正确率
随机生成四则运算题并判断正确率
171 0
随机生成四则运算题并判断正确率
|
JavaScript 前端开发
一个适当的随机函数
一个适当的随机函数
89 0
|
程序员
生男生女概率一样吗?
生男孩的概率和生女孩的概率是一样的吗,以下内容解决你的疑惑。
360 0
生男生女概率一样吗?
宿舍买饭随机数概率生成器
宿舍买饭随机数概率生成器
141 0
宿舍买饭随机数概率生成器
C# 之 概率随机数
概率随机数:是在1-10内产生随机数,但是每个数生成的概率不同。例如1-9概率为10%,10的概率是%90;
757 0
C# 之 概率随机数

热门文章

最新文章

下一篇
开通oss服务