求int rand3() ,返回1-3之间的随机数,要求每个数的概率相等。
然后求int rand7(),要求一样每个数的概率相等。
//不知概率是否相等
#include<stdio.h>
#include<stdlib.h>
#define STAR "**************************"
int rand5(void)
{
return rand()%5 +1;
}
int rand3()
{
int a = rand5();
if(a == 1)
return 1;
else if(a == 2)
return 2;
else if(a == 3)
return 3;
else
return rand3();
}
int rand7()
{
int a = rand3();
if(a == 1)
return rand3();
else if(a == 2)
return rand3()+3;
else
{
if(rand3() == 1)
return 7;
else
return rand7();
}
}
int main()
{
int i;
for(i = 0 ; i < 5;i++)
{
printf("%d ",rand5());
}
printf("%s\n",STAR);
for(i = 0 ; i < 5;i++)
{
printf("%d ",rand3());
}
printf("%s\n",STAR);
for(i = 0 ; i < 5;i++)
{
printf("%d ",rand7());
}
return 0 ;
}