当前位置: 首页 > 面试题库 >

如何在Swift中无重复地生成随机数?

卫泉
2023-03-14
问题内容

如何在Swift语言中不两次调用0到31之间的随机数?


问题答案:

您可以创建一个返回生成随机数闭包的函数,如下所示:

func randomSequenceGenerator(min: Int, max: Int) -> () -> Int {
    var numbers: [Int] = []
    return {
        if numbers.isEmpty {
            numbers = Array(min ... max)
        }

        let index = Int(arc4random_uniform(UInt32(numbers.count)))
        return numbers.remove(at: index)
    }
}

要使用它,首先调用生成器一次以创建随机序列生成器,然后根据需要多次调用返回值。这将打印出一到六个之间的随机值,并在重新开始之前遍历所有这些值:

let getRandom = randomSequenceGenerator(min: 1, max: 6)
for _ in 1...20 {
    print(getRandom())
}


 类似资料:
  • 问题内容: 我对Swift和编程逻辑很陌生,所以请耐心等待 如何在Swift中生成0到9之间的随机数而不重复最后生成的数字?因为相同的数字不会连续出现两次。 问题答案: 将先前生成的数字存储在变量中,然后将生成的数字与先前的数字进行比较。如果它们匹配,则生成一个新的随机数。重复生成新数字,直到它们不匹配为止。

  • 本文向大家介绍如何在Python中生成非重复随机数?,包括了如何在Python中生成非重复随机数?的使用技巧和注意事项,需要的朋友参考一下 接下来的程序会生成10个介于1到100之间的随机非重复整数。它会在给定的时间间隔内生成一个随机整数,如果先前未添加过该整数,则将其添加到列表中。

  • 问题内容: 有人可以帮助我制定一种无需重复在Android中生成随机数的方法吗?最大数量是:这是我的JSON数组。并且返回值应为整数。 我已经拥有的是: 我将方法强制转换了3次,因为我需要3个随机生成的数字。它有效,但是我不知道如何避免重复。因此,这3个数字彼此之间不会相同。 谢谢 问题答案: 您是否尝试过仅使用Math.random()? 只要做一些铸造魔术,您就可以轻松开始了: 编辑: 如果要

  • 我正在尝试生成位随机数。我可以生成一个随机数,但这里的情况是生成一个位数字。我尝试通过将随机数存储在数组中来执行此操作,但我需要它以长长格式而不是数组。

  • 问题内容: 我有以下功能 基本上,我正在创建一个介于1到10之间的随机数,并通过将其添加到数组中并检查新创建的数字来检查该数字是否已创建。我通过将其添加到变量中来调用它。 这可行,但是在Chrome浏览器中出现以下错误: 我猜这是因为我在内部调用了太多次该函数。这意味着我的代码不好。 有人可以在逻辑上帮助我吗?确保我的数字不重复的最佳方法是什么? 问题答案: 如果我理解正确,那么您只是在寻找数字1

  • 问题内容: 好的,这是一个比听起来更棘手的问题之一,所以我转向堆栈溢出,因为我想不到一个好的答案。这就是我想要的:我需要Python以随机顺序生成一个从0到1,000,000,000的简单数字列表,以用于序列号(使用随机数,这样您就无法知道已分配了多少个数字或进行了计时攻击也很容易,例如,猜测将要发生的下一个攻击)。这些数字与链接到它们的信息一起存储在数据库表(索引)中。生成它们的程序不会永远运行