java.lang.Math.Random()與java.util.Random生成隨機(jī)數(shù)的區(qū)別
一個(gè)是方法一個(gè)是對(duì)象之類的廢話就不說了。關(guān)鍵在與兩個(gè)生成隨機(jī)數(shù)的不同特征。因?yàn)樵谧鰣D像特征提取,對(duì)整個(gè)像素空間的逐個(gè)提取、識(shí)別顯然不太聰明,于是乎想起概率論上的一堆東東。
取得一個(gè)可以反應(yīng)整個(gè)向量空間的隨機(jī)數(shù)集合,不失為明智的選擇。
《Think in Java》里面經(jīng)常用那個(gè)對(duì)象弄,自然我首先想到了這個(gè)。同學(xué)則喜歡Math.Random,他認(rèn)為生成的是一個(gè)在區(qū)間均勻分布的符合要求的隨機(jī)數(shù)。以前從來沒想過“隨機(jī)”這個(gè)問題,到底是一個(gè)任意的數(shù)(各個(gè)概率一樣,就像古典概型里面,硬幣的正反一樣),還是一個(gè)在空間有均勻分布特征的呢?
在網(wǎng)上搜羅了一大堆東西,發(fā)現(xiàn)說什么的都有,越來越迷糊。最后想起該看看權(quán)威的JDK API說明乎:
random(注:java.lang.Math)
public static double random()
返回帶正號(hào)的 double 值,該值大于等于 0.0 且小于 1.0。返回值是一個(gè)偽隨機(jī)選擇的數(shù),在該范圍內(nèi)(近似)均勻分布。
第一次調(diào)用該方法時(shí),它將創(chuàng)建一個(gè)新的偽隨機(jī)數(shù)生成器,與以下表達(dá)式完全相同

new java.util.Random
之后,新的偽隨機(jī)數(shù)生成器可用于此方法的所有調(diào)用,但不能用于其他地方。
此方法是完全同步的,可允許多個(gè)線程使用而不出現(xiàn)錯(cuò)誤。但是,如果許多線程需要以極高的速率生成偽隨機(jī)數(shù),那么這可能會(huì)減少每個(gè)線程對(duì)擁有自己偽隨機(jī)數(shù)生成器的爭(zhēng)用。


返回:
大于等于 0.0 且小于 1.0 的偽隨機(jī) double 值。
下面是java.util里面的
































看看下面的就更加顯而易見啦












于是我的結(jié)論如下:
1:java.lang.Math.Random()這個(gè)靜態(tài)方法得到的是一個(gè)空間中有均勻分布特征的隨機(jī)數(shù)。
2:java.util.Random,通過這個(gè)對(duì)象得到的則是“幾何分布”
3:我的圖像特征應(yīng)該選擇第一個(gè)方法比較適當(dāng)。
問題:我的似乎應(yīng)該說是一個(gè)抽樣問題更為恰當(dāng)。呼呼,先寫到這里
啦啦啦,請(qǐng)高人指教。
posted @ 2008-05-01 17:15 Jarod.cn.LuLuLife 閱讀(26713) | 評(píng)論 (3) | 編輯 收藏