[英]Python to Swift, While Loop.
我正在嘗試將一些代碼從python重新編寫為swift,但不確定while循環是否正確。 下面的代碼顯示了python中的while循環,我在下面進一步對其進行了重新編寫。 在運行代碼時,我似乎得到了一個凍結的模擬器,並進行了一些調試,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))
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.