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

如何在Swift中生成一个随机数而不重复上一个随机数?

简景焕
2023-03-14
问题内容

我对Swift和编程逻辑很陌生,所以请耐心等待

如何在Swift中生成0到9之间的随机数而不重复最后生成的数字?因为相同的数字不会连续出现两次。


问题答案:

将先前生成的数字存储在变量中,然后将生成的数字与先前的数字进行比较。如果它们匹配,则生成一个新的随机数。重复生成新数字,直到它们不匹配为止。

var previousNumber: UInt32? // used in randomNumber()

func randomNumber() -> UInt32 {
    var randomNumber = arc4random_uniform(10)
    while previousNumber == randomNumber {
        randomNumber = arc4random_uniform(10)
    }
    previousNumber = randomNumber
    return randomNumber
}


 类似资料:
  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 如何在1到9之间生成9个随机数,而不重复,一个接一个。它类似于:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9]{4}中。我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复。但在更糟糕的情况下,比如我们已经生成了6个数字,我们必须再生成3个数字,这个过程会有点慢。当范围从[1,9]更改为[1,1000]时,这种方法听起来不正确。有人能提出一个替代方法吗。

  • 问题内容: 如何在Swift语言中不两次调用0到31之间的随机数? 问题答案: 您可以创建一个返回生成随机数闭包的函数,如下所示: 要使用它,首先调用生成器一次以创建随机序列生成器,然后根据需要多次调用返回值。这将打印出一到六个之间的随机值,并在重新开始之前遍历所有这些值:

  • 问题内容: 我意识到Swift书提供了一个随机数生成器的实现。将这种实现复制并粘贴到自己的程序中的最佳实践是吗?还是有一个可以立即使用的库? 问题答案: 迅捷4.2+ Xcode 10附带的Swift 4.2为许多数据类型引入了新的易于使用的随机函数。您可以在数字类型上调用该方法。

  • 我意识到斯威夫特的书提供了一个随机数生成器的实现。在自己的程序中复制粘贴这个实现是最佳实践吗?或者有没有我们现在可以使用的库?

  • 问题内容: 我正在寻找生成一个随机数,该随机数不在另一张桌子上。 例如:如果一个表称为具有值。 除上述值外,我还想生成一个数字。 我尝试了以下查询。 询问 但是有时此查询不返回任何内容。 因为那时候它生成表中存在的数字。 如何解决这个问题? 小提琴供参考 问题答案: 另一个选择,我一直喜欢随机排序,并且交叉联接非常有效地创建了许多行: 演示:SQL Fiddle