给定一个随机数范围,产生另一个随机数范围

来源:互联网 发布:deepin是linux吗 编辑:程序博客网 时间:2024/06/08 01:07
#include <bits/stdc++.h>using namespace std;int rand6(){return rand()%6+1;} int rand7(){int i = (rand6()-1)*6+rand6()-1;     while(i > 34)i = (rand6()-1)*6+rand6()-1;  //多出的35过滤掉。 不然会增加了获得1的概率 return i%7+1;}int main(){    srand((unsigned)time(0));for(int i=0;i!=20;++i)printf("%d ",rand7());return 0;} 

以上例子的题目是rand6()产生rand7()

注意:不要简化(rand6()-1)*6+rand6()-1为(rand6()-1)*(6+1)   前后2个事件为独立事件。

1 0