首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

随便问问解决办法

2012-02-17 
随便问问给你一个函数能够产生1—7七个随机数,产生各个数的概率相等,如何用这个函数产生1—10的等概率随机数

随便问问
给你一个函数能够产生1—7七个随机数,产生各个数的概率相等,如何用这个函数产生1—10的等概率随机数。

[解决办法]
有人问过了好像。
产生10组,相加,除以7。
[解决办法]
2楼 佩服 貌似 数组处理 能作为一种通式了
[解决办法]
呵呵 结贴了
[解决办法]

探讨
有人问过了好像。
产生10组,相加,除以7。

[解决办法]
学习了,好想法
[解决办法]
很抱歉,误导大家了。上面我的方法是错的,而且错的非常离谱,根本经不起推敲~。
下面再贴一个应该可以经得起验证的。有更好的方法可以拿出来分享~
C/C++ code
int rand7();//返回一个1-7的数int rand10(){    int i = rand7()-1;//0-6    int j = rand7()-1;//0-6    i = i*7+j;      //产生一个00-66(7进制数,相当于10进制的0-48)                    //其中0-48出现的概率相等。    if(i>=40)        return rand10();    else//0-39出现的概率相等        return i%10 + 1;    //i%10为个位} 

热点排行