Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python到Swift,While循环。_Python_Swift_While Loop - Fatal编程技术网

Python到Swift,While循环。

Python到Swift,While循环。,python,swift,while-loop,Python,Swift,While Loop,我正在将一些代码从python重新编写到swift,我不确定这个while循环是否正确。下面的代码显示了python中的while循环,我在下面用swift重新编写了它。在运行代码时,我似乎得到了一个冻结的模拟器,并且进行了一些调试,while循环似乎很好。也许我错过了什么。有什么见解吗 #parents = [[Int]] #pop = [[Int]] parents_length = len(parents) desired_length = len(pop)

我正在将一些代码从python重新编写到swift,我不确定这个while循环是否正确。下面的代码显示了python中的while循环,我在下面用swift重新编写了它。在运行代码时,我似乎得到了一个冻结的模拟器,并且进行了一些调试,while循环似乎很好。也许我错过了什么。有什么见解吗

    #parents = [[Int]]
    #pop = [[Int]]
    parents_length = len(parents)
    desired_length = len(pop) - parents_length
    children = []
    while len(children) < desired_length:
        male = randint(0, parents_length-1)
        female = randint(0, parents_length-1)
        if male != female:
            male = parents[male]
            female = parents[female]
            half = len(male) / 2
            child = male[:half] + female[half:]
            children.append(child)
Swift编码

        //newParents = [[Int]]
        //pop = [[Int]]

private func randomIntergerInRange(low:Int, high:Int) -> Int {
        let randomGeneratedNumber = low + Int(arc4random()) % (high - low);
        return Int(randomGeneratedNumber)
    }
        let parents_length = newParents.count
        let desired_length = pop.count - parents_length
        var children : [[Int]] = []

    while children.count < desired_length {

        let male = randomIntergerInRange(0, high: parents_length - 1)
        let female = randomIntergerInRange(0, high: parents_length - 1)

        if male != female {
            var males = newParents[male] //This should return an individual from the array of parents
            var females = newParents[female] ////This should return an individual from the array of parents
            let half = males.count / 2


            let child = males[0..<half] + females[half..<females.count]
            children.append(Array(child))
        }
    }
试试下面的代码

import UIKit

var newParents : [[Int]] = [[]]
var pop : [[Int]] = [[]]

private func randomIntergerInRange(low:Int, high:Int) -> Int {
    let randomGeneratedNumber = low + Int(arc4random()) % (high - low);
    return Int(randomGeneratedNumber)
}

let parents_length = newParents.count
let desired_length = pop.count - parents_length
var children : [[Int]] = []

while children.count < desired_length {
    let male = randomIntergerInRange(0, parents_length - 1)
    let female = randomIntergerInRange(0, parents_length - 1)

    if male != female {
        var males = newParents[male] //This should return an individual from the array of parents
        var females = newParents[female] ////This should return an individual from the array of parents
        let half = males.count / 2

        let child = males[0..<half] + females[half..<females.count]
        children.append(Array(child))
    }
}

请解释您所做的更改以及如何解决问题。我不是想挑剔;我就是看不到。这和我发布的代码一样,不幸的是它不起作用。