要產生一個隨機數,方法有很多種,例如混沌和分形理論(原理比較複雜,但是公式卻異常簡單,將來有空的話我會介紹一下)……但是這些方法的缺點是計算難度大,需要花費的時間多.Rand_Number = (Rand_Seed * X + Y) mod Z
利用這條公式,我們就可以生成一個偽隨機數了。可是為什麼是“偽隨機數”呢?因為實際上要保證每次生成的隨機數都不同,那是不太可能的,我們唯一能做到的只能是儘量使每次生成的數字與前面的不同,並且儘量使生成的數字均勻分佈在指定的範圍內。
上面的這條公式就能滿足這兩點。至於為什麼……呵呵,我也不懂,因為它牽涉到十分複雜的數學求證過程,我們只需要知道如何應用就成了:
Rand_Seed 表示隨機數種子,注意這個“種子”必須每次都不同,X、Y必須至少有一個為素數。什麼叫素數?Hoho,讓我們來翻翻小學課本……素數就是除了 1 和它本身,不能被其他數整除的數字。在這裡我們可以簡單地給 X、Y 賦值 23 和 7 ,其實別的素數也行,我只是隨便取了這兩個數字。
最後,Z 也應該是一個素數,這樣才能保證產生的隨機數能得到上限的值。,
要產生一個隨機數,方法有很多種,例如混沌和分形理論(原理比較複雜,但是公式卻異常簡單,將來有空的話我會介紹一下)……但是這些方法的缺點是計算難度大,需要花費的時間多.Rand_Number = (Rand_Seed * X + Y) mod Z
利用這條公式,我們就可以生成一個偽隨機數了。可是為什麼是“偽隨機數”呢?因為實際上要保證每次生成的隨機數都不同,那是不太可能的,我們唯一能做到的只能是儘量使每次生成的數字與前面的不同,並且儘量使生成的數字均勻分佈在指定的範圍內。
上面的這條公式就能滿足這兩點。至於為什麼……呵呵,我也不懂,因為它牽涉到十分複雜的數學求證過程,我們只需要知道如何應用就成了:
Rand_Seed 表示隨機數種子,注意這個“種子”必須每次都不同,X、Y必須至少有一個為素數。什麼叫素數?Hoho,讓我們來翻翻小學課本……素數就是除了 1 和它本身,不能被其他數整除的數字。在這裡我們可以簡單地給 X、Y 賦值 23 和 7 ,其實別的素數也行,我只是隨便取了這兩個數字。
最後,Z 也應該是一個素數,這樣才能保證產生的隨機數能得到上限的值。,