//首先掷骰子需要概率相等,如果随机数生成0到32767,那么这些值的概率就不是相等的,32766,32767返回的值是0,1会增加概率
//所以,一旦出现就重新生成.
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
const unsigned int MAX_OK_RAND = (RAND_MAX/6)*6-1;//(int)((((long)RAND_MAX+1)/6)*6-1);
int throw_die(){
static int flag = 0;
int value;
if (!flag)
{
flag = 1;
srand((unsigned int)time(NULL));
}
while((value = rand())>MAX_OK_RAND);
return value%6+1;
}
int main(){
int a[100];
//int v = MAX_OK_RAND;
int i = -1;
while(++i<100){
a[i] = throw_die();
}
return EXIT_SUCCESS;
}
利用随机数函数掷骰子
最新推荐文章于 2024-03-21 17:51:33 发布