如何生成1-10之间的随机数?

时间:2011-12-02 14:01:03

标签: iphone random arc4random

是否可以生成1-10之间的随机数,但不应该是5?

3 个答案:

答案 0 :(得分:6)

#include <stdlib.h>

// ...

int i;

do {
   i = rand() % 10 + 1; // generate random number from 1 to 10
} while (i == 5);       // repeat until number != 5

答案 1 :(得分:6)

int x = arc4random()%9;
x += x>=4? 2 : 1

答案 2 :(得分:2)

一个简单的解决方案是使用系统函数生成介于1-10之间的随机数,如果恰好是5再次生成它,直到不是这种情况。这个解决方案有一个小概率,你的功能在iPhone面板死亡之前不会返回:)。替代方案如下所列

另一种解决方案是使用1-9和图5-9之间的系统函数生成随机数为6-10

int GenRandomNumber()
{
    int x = GetSystemRandomBetween1and9();
    if ( x >= 5 )
      x += 1;
    return x;
}