【问题标题】:random number from 0 to 20 that jumps 4 times从 0 到 20 的随机数,跳跃 4 次
【发布时间】:2011-04-08 08:49:16
【问题描述】:

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

谢谢,

【问题讨论】:

  • 您可以选择一个随机数 0,1,2,3,4 然后乘以 4。请注意,如果您重复此操作,您仍将被限制为数组中相同的五个变量.
  • 查看我的答案。只有一行:)
  • 嘿@Dalal Chetan Bhalara 完成,只需从我的答案中复制并粘贴即可。我在他面前发布了答案。请检查给出答案的时间。

标签: iphone cocoa random nsarray range


【解决方案1】:
int random = (arc4random() % 5)*4;

【讨论】:

  • int random = ((arc4random() % 5)+1)*4;它会给出 4,8,12,16,20。
【解决方案2】:

使用下面的代码块

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}

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      然后就可以生成一个标准随机整数比如

      int r = arc4random() % 5;
      

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

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

      【讨论】:

      • 我认为在这种情况下,存储“随机”编号数组并将 ramdonly 索引到其中并不是最好的解决方案。鉴于他想要的一组随机 no 是规则的,那么算术解决方案对我来说似乎是最清楚的。
      • 我猜这取决于他的目标。我认为这两种方法都有效,一种是引发数组查找和空间,另一种是......哦,是的。同意
      【解决方案5】:

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

      前-

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

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

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

      【讨论】:

        【解决方案6】:

        这样

        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];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-10
          • 2014-11-12
          • 1970-01-01
          • 2012-10-04
          • 1970-01-01
          • 1970-01-01
          • 2021-04-21
          • 1970-01-01
          相关资源
          最近更新 更多