从0到20的随机数跳跃4次

时间:2011-04-08 08:49:16

标签: iphone cocoa random nsarray range

HI 我有生成随机数的库存 我有一个包含20个变量的数组,我想在该范围内随机选择一个条件,它会跳过每4个变量。随机数应该是(0,4,8,12或16)??我怎样才能做到这一点 ? 我的NSArray类型数组...

谢谢,

6 个答案:

答案 0 :(得分:3)

int random = (arc4random() % 5)*4;

答案 1 :(得分:1)

使用下面的代码块

int randomNum;
do 
{
  randomNum = arc4random() % 17; //Ensure --> Your number will be in the range (0-16)
}while(randomNum % 4 == 0) //Must be the multiple of 4 means ----> { 0,4,8,12,16}

答案 2 :(得分:0)

您可以使用int r = arc4random() % 20;获取随机数。然后,当您想要获得另一个随机数时,检查您获得的前一个号码并根据您的需要使用它

答案 3 :(得分:0)

我认为最好的方法是将“随机数”存储到

新的NSArray:[0,4,8,12,16]

然后您可以生成标准随机整数,例如

int r = arc4random() % 5;

在0到4的范围内,间接从定义的NSArray中检索所需的“随机数”。

否则,您可以使用电源或其他算术计算来获得所需的输出等,但如果您知道只有5个候选人,那么为什么要浪费计算的费用呢?

答案 4 :(得分:0)

喜欢这个

NSArray *numbers = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:4],[NSNumber numberWithInt:8],[NSNumber numberWithInt:16],nil];

int myRandom0to16 = [[numbers objectAtIndex:arc4random()%numbers.count] intValue];

答案 5 :(得分:0)

int random =(arc4random()%5)* 4;

对于Ex-

如果随机数为0,则得到0 * 4 = 0

如果随机数为1,则得到1 * 4 = 4

如果随机数为2,则得到2 * 4 = 8