#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个事件为独立事件。