經歷了很長時間的文化課,發現語文老師在上課的時候開啟了一個很猥瑣的隨機抽取學號然後點名的垃圾軟體,這引發了我當時隨機化打天下的回憶,同時這個軟體似乎也是存在這一些問題,比如說連續好幾節課都會點到一個學號,所以今天因為是假期,所以我就來重新探索一下這個隨機數
首先回歸文化課的時候發現這個多媒體是 \(windows\) 廢話,然後我就非常的不習慣,但是之前還是學過一些 \(powershell\) 的,所以還是會玩一點的。
首先先測試一下 \(windows\) 自帶的垃圾 \(powershell\)
使用 Get-Random
函式發現這個只出現了兩個數。
似乎裡面的引數不是範圍而是一個集合。。。
所以。
但是其實我們發現這個隨機數真的很草,似乎不是那麼隨機,但是一般的 \(windows\) 的軟體直接呼叫的 \(system\) 的隨機數就是這個。。
所以語文老師的隨機抽取軟體垃圾得很
接下來是 c++
隨機數。
這個還是比較擅長的。
首先就是一個非常普通的 srand
函式,以當前的時間作為隨機數種子進入公式。
我們一共篩選 10000000
次 1~10
的值,觀察他的出現次數。
前面的 uid
表示數,後面的 times
就是出現的次數。
還是比較均勻的。
但是 srand
並不能滿足我,所以我選擇梅森旋轉法。
原理是生成偽隨機數,但是週期是 \(2^{19937}\)
其實表現都是相差不大,但是比 \(windows\) 自帶的強到沒影。。。
結論,語文老師的隨機數很垃圾