使用rand()选择2个特定数字中的一个

时间:2014-04-07 14:03:29

标签: select random numbers

我试图调用rand()来选择两个数字中的一个,1或2。

这样:(伪)

//the first call might print 2
printf("%d",rand(1 or 2));  //prints 1, perhaps

//and the second call might print 2
printf("%d",rand(1 or 2));  //prints 2, perhaps

如何做到这一点? 也许称这些变量 int first = 1; int second = 2; 从那里工作?

2 个答案:

答案 0 :(得分:2)

假设你想要每个值的概率相等,你可以实现一个这样的简单函数,它测试rand() < RAND_MAX / 2以确定要返回的两个值中的哪一个:

int rand_1_2(int first, int second)
{
    return rand() < RAND_MAX / 2 ? first : second;
}

答案 1 :(得分:-1)

我赞成这样的事情

double rnd = rand();
if(rnd < 1/2)
{
     printf("first");
}
else
{
     printf("second");
}