<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java.lang.Math.Random()與java.util.Random生成隨機數(shù)的區(qū)別

    一個是方法一個是對象之類的廢話就不說了。關(guān)鍵在與兩個生成隨機數(shù)的不同特征。
    因為在做圖像特征提取,對整個像素空間的逐個提取、識別顯然不太聰明,于是乎想起概率論上的一堆東東。
    取得一個可以反應(yīng)整個向量空間的隨機數(shù)集合,不失為明智的選擇。

    《Think in Java》里面經(jīng)常用那個對象弄,自然我首先想到了這個。同學(xué)則喜歡Math.Random,他認為生成的是一個在區(qū)間均勻分布的符合要求的隨機數(shù)。以前從來沒想過“隨機”這個問題,到底是一個任意的數(shù)(各個概率一樣,就像古典概型里面,硬幣的正反一樣),還是一個在空間有均勻分布特征的呢?

    在網(wǎng)上搜羅了一大堆東西,發(fā)現(xiàn)說什么的都有,越來越迷糊。最后想起該看看權(quán)威的JDK API說明乎:

    random(注:java.lang.Math)
    public static double random()
    返回帶正號的 
    double 值,該值大于等于 0.0 且小于 1.0。返回值是一個偽隨機選擇的數(shù),在該范圍內(nèi)(近似)均勻分布。 
    第一次調(diào)用該方法時,它將創(chuàng)建一個新的偽隨機數(shù)生成器,與以下表達式完全相同 

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


    返回: 
    大于等于 
    0.0 且小于 1.0 的偽隨機 double 值。 

    下面是java.util里面的

    java.util 
    類 Random
    java.lang.Object
      java.util.Random
    所有已實現(xiàn)的接口: 
    Serializable 
    直接已知子類: 
    SecureRandom 

    --------------------------------------------------------------------------------

    public class Randomextends Objectimplements Serializable此類的實例用于生成偽隨機數(shù)流。此類使用 48 位的種子,使用線性同余公式 (linear congruential form) 對其進行了修改(請參閱 Donald Knuth 的The Art of Computer Programming, Volume 3,第 3.2.1 節(jié))。 

    如果用相同的種子創(chuàng)建兩個 Random 實例,則對每個實例進行相同的方法調(diào)用序列,它們將生成并返回相同的數(shù)字序列。為了保證此屬性的實現(xiàn),為類 Random 指定了特定的算法。為了 Java 代碼的完全可移植性,Java 實現(xiàn)必須讓類 Random 使用此處所示的所有算法。但是允許 Random 類的子類使用其他算法,只要其符合所有方法的常規(guī)協(xié)定即可。 

    Random 類實現(xiàn)的算法使用一個 
    protected 實用工具方法,每次調(diào)用它最多可提供 32 個偽隨機生成的位。 

    很多應(yīng)用程序會發(fā)現(xiàn) Math.random() 方法更易于使用。 


    看看下面的就更加顯而易見啦
    next
    protected int next(int bits)生成下一個偽隨機數(shù)。當(dāng)被所有其他方法使用時,子類應(yīng)該重寫此方法。 
    next 的常規(guī)協(xié)定是,返回一個 
    int 值,如果參數(shù) bits 位處于 1 和 32(包括)之間,那么返回值的多數(shù)低位都將(大致)是單獨選擇的位值,每個位值是 0 或 1 的機會(大致)相等。通過將種子自動更新為 

    (seed 
    * 0x5DEECE66DL + 0xBL& ((1L << 48- 1)并返回 
    (
    int)(seed >>> (48 - bits)),Random 類可實現(xiàn) next 方法。這是一個線性同余偽隨機數(shù)生成器,由 D. H. Lehmer 定義,Donald E. Knuth 在 The Art of Computer Programming, Volume 3: Seminumerical Algorithms 的第 3.2.1 節(jié)中進行了描述。 

    參數(shù):
    bits 
    - 隨機位。 
    返回:
    隨機數(shù)生成器序列的下一個偽隨機值。

    于是我的結(jié)論如下:
    1:java.lang.Math.Random()這個靜態(tài)方法得到的是一個空間中有均勻分布特征的隨機數(shù)。
    2:java.util.Random,通過這個對象得到的則是“幾何分布”
    3:我的圖像特征應(yīng)該選擇第一個方法比較適當(dāng)。

    問題:我的似乎應(yīng)該說是一個抽樣問題更為恰當(dāng)。呼呼,先寫到這里


    啦啦啦,請高人指教。

    posted on 2008-05-01 17:15 Jarod.cn.LuLuLife 閱讀(26711) 評論(3)  編輯  收藏

    評論

    # re: java.lang.Math.Random()與java.util.Random生成隨機數(shù)的區(qū)別[未登錄] 2008-05-30 23:37 ZZ

    請問你能不能用C編寫一個生成正態(tài)分布隨機數(shù)的程序,而且是用中心極限定理和Box-Muller變換兩種方法產(chǎn)生的???
      回復(fù)  更多評論   

    # re: java.lang.Math.Random()與java.util.Random生成隨機數(shù)的區(qū)別 2008-05-31 01:07 Jarod.cn.LuLuLife


    1 : double _sta( double mu, double sigma) // 利用中心極限定理生成
    2 {
    3 int i;
    4 double r,sum = 0.0 ;
    5
    6 if (sigma <= 0.0 ) { printf( " Sigma<=0.0 in _sta! " ); exit( 1 ); }
    7 for (i = 1 ;i <= 12 ;i ++ )
    8 sum = sum + _random();
    9 r = (sum - 6.00 ) * sigma + mu;
    10
    11 return r;
    12
    13 }

    (網(wǎng)上很多吧,自己驗證哈,我也是搜來的。)  回復(fù)  更多評論   

    # re: java.lang.Math.Random()與java.util.Random生成隨機數(shù)的區(qū)別 2009-03-25 15:38 P.W

    贊一下鉆研的精神~  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    公告

    我的知識Blog!

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章檔案

    Image

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日本一线产区和二线| 91视频免费观看| 国产精品hd免费观看| 亚欧色视频在线观看免费| 日本中文一区二区三区亚洲| 亚洲精品天堂无码中文字幕| 麻豆精品成人免费国产片| 在线观看亚洲精品国产| 美女巨胸喷奶水视频www免费| 亚洲精品无码专区在线在线播放| 亚洲午夜成人精品无码色欲| 午夜精品射精入后重之免费观看| 久久精品国产亚洲AV网站| 99精品一区二区免费视频| 亚洲国产精品人久久电影| 三级毛片在线免费观看| 亚洲AV无码专区国产乱码电影 | 亚洲高清中文字幕综合网| 美女视频黄.免费网址 | 暖暖在线日本免费中文| 老司机免费午夜精品视频| 美腿丝袜亚洲综合| 国产成人亚洲精品播放器下载 | 国产成人精品123区免费视频| 亚洲网址在线观看| 最新欧洲大片免费在线| 91久久亚洲国产成人精品性色 | 你懂得的在线观看免费视频| 久久久综合亚洲色一区二区三区| 91黑丝国产线观看免费| 亚洲AV电影天堂男人的天堂| 亚洲伊人久久大香线蕉综合图片| 羞羞视频在线观看免费| 曰皮全部过程视频免费国产30分钟 | 亚洲午夜国产精品无码老牛影视| 亚洲免费在线视频| 亚洲av无码av在线播放| 亚洲Av无码专区国产乱码DVD| 搡女人免费视频大全| 亚洲国产美女在线观看| 国产精品99久久免费|