【问题标题】:Generate a random number with a random numberlength in Objective-C在 Objective-C 中生成具有随机数长度的随机数
【发布时间】:2010-01-03 01:12:43
【问题描述】:

当我尝试使用 Int = arc4random % MAXNUM 生成随机数时,数字的长度与 MAXNUM 数字长度 -1 一样长。 因此,如果我将 arc4random % 1000000 设置为介于 100000-999999 之间。如何获得不同的数字,例如 78、476 或 4842? 这是一个示例:

 int number = arc4random() % 1000000;
 outputLabel.text = [NSString stringWithFormat:@"The Number is %d", number];

感谢您的帮助,对不起我的英语不好!

更新:好的,我刚刚看到,我得到的不仅仅是 5 位数字,但大多数时候。有没有办法更频繁地获得较低的数字或数字较少的数字?

【问题讨论】:

  • 由于您的范围内的大多数数字都是5位数字,因此大多数时候您自然会得到一个5位数字,随机选择一个。如果您希望返回每个长度的数字的概率相等,则在 0-9、10-99 等每个范围内生成一个随机数,然后选择一个随机数返回。

标签: iphone objective-c xcode


【解决方案1】:

如果你想得到一个在x 到y 范围内的随机整数,你可以通过int randomNumber = (arc4random() % y) + x; 做到这一点

【讨论】:

  • 嗯,它也不起作用。当我设置 (arc4random() % 100000) + 1;我总是得到一个 5 位数的号码。如果我没看错,你只需在“随机”数字上加 1。
  • 您使用的是什么平台?根据iphonedevelopment.blogspot.com/2008/10/…,它的范围是 0 到 0x100000000。此外,数字 是 随机的,因此您可能只是碰巧碰到了 5 位数字。
  • 我将它与 iPhone OS 3.2.1 一起使用 - 这不是纯粹的机会,因为我总是得到 100000 的 5 位数字和 10000 的 4 位数字,1000 的 3 位数字等等...... 5位数字是随机的,但不是长度。
  • (arc4random() % 100000) + 1 应该几乎总是生成 5 位或更少的数字。该语句生成从 1 到 100000 的数字。它可以生成的唯一具有 6 位数字的数字是 100000,其发生概率为 0.00001(假设均匀分布)。
【解决方案2】:

我认为从 arc4random() 返回的数字大小的默认值为 6 位。 尝试将 3,4,5 作为参数,例如 arc4random(4);然后查看结果。

【讨论】:

  • 它不起作用。他说:“函数‘arc4random’的参数太多
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2018-01-25
  • 2012-10-21
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多