首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift存储所有随机生成的数字,不会再次生成它们

Swift存储所有随机生成的数字,不会再次生成它们
EN

Stack Overflow用户
提问于 2018-07-01 00:10:23
回答 2查看 59关注 0票数 0

我正在尝试存储随机数生成器生成的所有数字。之后,数字生成器需要检查数字是否已经生成,如果是,它将继续生成一个新的数字,直到生成所有数字,例如1到30。到目前为止,我只有随机数生成器:

代码语言:javascript
复制
if let Aantalvragen = snapshot?.data()!["Aantal vragen"] as? String {
       self.AantalVragenDef = Aantalvragen
}
let RandomVraag = Int(arc4random_uniform(UInt32(self.AantalVragenDef)!) + 1)

AantalVragenDef是一个指示有多少问题的数字。因此,生成器知道它可以生成多远。请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2018-07-01 00:25:07

最简单的方法可能是创建一个数组或列表,并用您想要的数字1到n填充它,对其进行混洗,然后按数字出现的顺序使用它们。这样你就可以保证每个数字只出现一次。

请参阅how to shuffle an array in Swift

票数 4
EN

Stack Overflow用户

发布于 2018-07-01 00:32:42

我相信你正在尝试得到的是一个随机生成器,它生成从1到问题数量的数字,但是如果这个数字已经存在,你就不想保留它。我建议使用if-else语句和数组。

代码可能如下所示:

代码语言:javascript
复制
if let Aantalvragen = snapshot?.data()!["Aantal vragen"] as? String {
   self.AantalVragenDef = Aantalvragen
}

var array = [Int]()

while array.count != self.AantalVragenDef {
    let RandomVraag = Int(arc4random_uniform(UInt32(self.AantalVragenDef)!) + 1)
    if array.contains(RandomVraag) == false {
        array.append(RandomVraag)
    }

}

这个循环将继续下去,直到数组中有(问题数)个整数。如果这就是你要找的,请告诉我。

祝你好运,阿纳夫

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51116505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档