赞:0123, 0913, 7612
不喜欢:0000, 1333, 3499
可以在swift中使用arcRandom()
吗?没有数组或循环?
或者如果那不可能,怎么用arcRandom()
以任何方式完成?
答案 0 :(得分:4)
您只想随机播放数字并选择所需的数字。
从Nate Cook's Fischer-Yates shuffle code开始。
// Start with the digits
let digits = 0...9
// Shuffle them
let shuffledDigits = digits.shuffle()
// Take the number of digits you would like
let fourDigits = shuffledDigits.prefix(4)
// Add them up with place values
let value = fourDigits.reduce(0) {
$0*10 + $1
}
答案 1 :(得分:1)
var fourUniqueDigits: String {
var result = ""
repeat {
// create a string with up to 4 leading zeros with a random number 0...9999
result = String(format:"%04d", arc4random_uniform(10000) )
// generate another random number if the set of characters count is less than four
} while Set<Character>(result.characters).count < 4
return result // ran 5 times
}
fourUniqueDigits // "3501"
fourUniqueDigits // "8095"
fourUniqueDigits // "9054"
fourUniqueDigits // "4728"
fourUniqueDigits // "0856"
答案 2 :(得分:0)
Swift Code - 用于生成4位数
它给出了1000到9999之间的数字。
func random() -> String {
var result = ""
repeat {
result = String(format:"%04d", arc4random_uniform(10000) )
} while result.count < 4 || Int(result)! < 1000
print(result)
return result
}
请注意 - 您可以删除此 Int(结果)! &LT; 1000 如果你想要这样的数字 - 0123,0913