如何让计算机在 Swift 中生成预定义的一组数字?

Posted

技术标签:

【中文标题】如何让计算机在 Swift 中生成预定义的一组数字?【英文标题】:How to make computer generate predefined set of numbers in Swift? 【发布时间】:2015-08-05 20:10:20 【问题描述】:

我想让计算机一个接一个地生成一组预定义的数字。在 Swift 中怎么可能?可以使用数组吗?

例如:我想以相同的顺序一个接一个地生成[1,2,3,4]。通过生成,我的意思是当您输入arcrandom_uniform() 时显示随机数的方式。

例子:

var randomNumber = [1,2,3,4,5]
var guessInt = guess.text.toInt()

然后当我输入 ..

if Int(randomNumber) == guessInt 

//conditions



错误显示为:Cannot assgn to the result of ths expresson 有时我会收到Int' is not convertible to '[Int]' swift的错误

代码不起作用!帮忙?

这是@David Skrundz 的代码:

` @IBAction funcguessButton(sender: AnyObject) var randomNumber = [1,2,3,4,7,8,9,5] varguessInt =guess.text.toInt()

    func generator() -> () -> Int 
        var currentIndex = 0
        let array = Array(1...5)
        func generate() -> Int 
            let value = array[currentIndex++]
            if currentIndex >= array.count 
                currentIndex = 0
            
            return value
        
        return generate
    

    let gen = generator()
    gen() // Returns 1
    gen() // Returns 2
    gen() // Returns 3
    gen() // Returns 4
    gen() // Returns 1

     let answer = gen()


        if answer == guessInt 
            resultLabel.text = "Bingoo..! "
        else 
            resultLabel.text = "Oh such a bad guesser! It was a \(answer)"
            

    println(answer)

` 任何想法如何解决这个代码下面提到的问题! ?请 !

【问题讨论】:

什么是“生成”? 欢迎来到 SO。你的问题需要明确和具体 这个问题太模糊了。你是什​​么意思“预定义的数字集”?你想要一串可重复的随机数吗? 计算机如何生成随机数?以同样的方式,我希望计算机第一次生成例如“1”,第二次生成“3”。如何快速做到这一点? 无意冒犯,但您在此处询问基本内容之外的内容。至少这是我理解这个问题的方式。你真的需要一本好的编程书。 没有兄弟!我可能承认我不是比你更好的程序员。但是你回答了这个问题。你是冠军!冠军! 【参考方案1】:

您可能需要范围运算符:

for index in 1...5 
    println("\(index)")

【讨论】:

谢谢!好主意!让我试试看,但我现在需要在“if”命令中应用它! @ShahamKampala 对if 的帮助在文档的这一章中关于基础知识:developer.apple.com/library/prerelease/ios/documentation/Swift/… 一个小疑问@EricD。那么为什么这段代码不起作用呢?任何的想法 ? var randomNumber = [1,2,3,4,5] var guessInt = guess.text.toInt()if Int(randomNumber) == guessInt //conditions 【参考方案2】:

如果要生成重复序列中的下一个元素,可以使用

func generator() -> () -> Int 
    var currentIndex = 0
    let array = Array(1...4)
    func generate() -> Int 
        let value = array[currentIndex++]
        if currentIndex >= array.count 
            currentIndex = 0
        
        return value
    
    return generate

并使用它:

let gen = generator()
gen() // Returns 1
gen() // Returns 2
gen() // Returns 3
gen() // Returns 4
gen() // Returns 1

【讨论】:

代码完美运行!但是 resultLabel 显示:“哦,真是个糟糕的猜测者!它是 [1, 2, 3, 4, 5]”但我想要的是:看到:而不是计算机说:“哦,如此糟糕的猜测者!它是 [1, 2, 3, 4, 5]"... 它应该说...**首先如果我输入 2 然后“哦,真是个糟糕的猜测者!这是一个 1..然后如果我输入 2 。 .计算机应该说:“Bingoo ..! " Bcoz...数组中的 nxt 数是 2 ..!这就是我们想要的!** 使用var guessInt = guess.text.toInt()let answer = gen() 然后你可以使用if guessInt == answer ... 让我试试..!我会尽快通知你! 代码完美运行!感谢那 !但是现在,问题是:它从数组中选择一个数字,那就是 2..!当我点击按钮并在文本字段中输入另一个数字时,计算机仍然从数组中生成的数字是 2。它始终是 2。就像,当我在文本字段中输入下一个数字时,生成的数字数组中的计算机应该更改为数组中的下一个数字,对吗?先生,我该怎么办? 我已经更新了问题详情部分的代码:)

以上是关于如何让计算机在 Swift 中生成预定义的一组数字?的主要内容,如果未能解决你的问题,请参考以下文章

(Swift 4) 如何在 firebase 中生成自定义自动 id?

在 Swift Playground 中生成 PDF

如何向SQLSERVER中进行update一组随机数

如何在 Java 中生成随机排列?

如何使用平滑和过滤技术从一组测量中生成估计值

swift 如何在swift中生成随机数?