Swift Int.randomの分散具合

概要

1〜2000のランダム値の分散具合を調べる。

ソース

Playgroundで実行

import Foundation

for _ in 1...20 {
    var select = [Int](repeating:0, count:2000)
    for _ in 1...2000 {
        let selectNo = Int.random(in: 1...2000)
        select[selectNo - 1] = select[selectNo - 1] + 1
    }
    print("0 : \(select.filter({i in i == 0}).count) 2:\(select.filter({i in i == 2}).count) >=3:\(select.filter({i in i >= 3}).count)")
}

選択されないものが700くらい。
意外と分散されない

結果

0 : 734 2:376 >=3:152
0 : 733 2:365 >=3:158
0 : 764 2:397 >=3:162
0 : 766 2:379 >=3:172
0 : 735 2:374 >=3:156
0 : 729 2:360 >=3:163
0 : 743 2:389 >=3:159
0 : 728 2:335 >=3:176
0 : 752 2:384 >=3:165
0 : 740 2:374 >=3:163
0 : 727 2:358 >=3:163
0 : 747 2:381 >=3:164
0 : 750 2:363 >=3:164
0 : 758 2:363 >=3:174
0 : 722 2:374 >=3:152
0 : 743 2:356 >=3:166
0 : 739 2:346 >=3:168
0 : 721 2:357 >=3:162
0 : 749 2:354 >=3:171
0 : 743 2:390 >=3:159

Swift

Posted by shi-n