[swift]配列をシャッフルしたい
2015/05/06
swift
swiftです。配列をシャッフルしたいです。
How do I shuffle an array in Swift? - Stack Overflow
swiftでシャッフル関数 - Qiita
拡張で実装。
stack overflowの実装をそのままだけど。
もとの配列はこわさずシャッフルしたものを返してくれます。
How do I shuffle an array in Swift? - Stack Overflow
swiftでシャッフル関数 - Qiita
拡張で実装。
stack overflowの実装をそのままだけど。
もとの配列はこわさずシャッフルしたものを返してくれます。
import Foundation
extension Array {
func shuffled() -> [T] {
var list = self
for i in 0..<(list.count - 1) {
let j = Int(arc4random_uniform(UInt32(list.count - i))) + i
swap(&list[i], &list[j])
}
return list
}
}
func rand(r:Int) -> Int {
return Int(arc4random_uniform(UInt32(r)));
}
for var i = 0 ; i < 100 ; i++ {
let a = rand(5)
print("\(a) ")
}
println("")
let arr1 = ["a","b", "c"]
var arr2 = arr1
arr2[1] = "d"
println("\(arr1)")
println("\(arr2)")
var arr3 = arr1.shuffled()
println("\(arr3)")
println("\(arr1)")
: