溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中怎么獲取整數(shù)某個范圍內(nèi)的數(shù)字

發(fā)布時間:2021-12-30 15:01:11 來源:億速云 閱讀:184 作者:iii 欄目:云計算

這篇文章主要介紹“java中怎么獲取整數(shù)某個范圍內(nèi)的數(shù)字”,在日常操作中,相信很多人在java中怎么獲取整數(shù)某個范圍內(nèi)的數(shù)字問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java中怎么獲取整數(shù)某個范圍內(nèi)的數(shù)字”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

隨機數(shù)的作用

隨機數(shù)在我們?nèi)粘J且粋€非常常用的東西,無論數(shù)據(jù)加密還是搖骰子,目的都是要結果不可確定,無論什么結果都存在一定的概率。但是在我們的計算機中隨機數(shù)到底是怎么產(chǎn)生的?

 真假隨機數(shù)產(chǎn)生原理

大部分程序和編程語言確實產(chǎn)生的隨機數(shù)都是偽隨機數(shù),比如像C語言,常常采用線性同余或者通過一個種子產(chǎn)生的偽隨機數(shù)字,都是存在一定的規(guī)律可循。像我們常用的高級編程語言java也是類似。例如java中獲取整數(shù)某個范圍內(nèi)的數(shù)字源碼:

final int internalNextInt(int origin, int bound) {
    if (origin < bound) {
        int n = bound - origin;
        if (n > 0) {
            return nextInt(n) + origin;
        }
        else {  // range not representable as int
            int r;
            do {
                r = nextInt();
            } while (r < origin || r >= bound);
            return r;
        }
    }
    else {
        return nextInt();
    }
}

這也就證明了如果知道了這些種子,或者根據(jù)已經(jīng)產(chǎn)生的隨機數(shù)字,就能夠預測下一個可能產(chǎn)生的數(shù)字。

說到這里,我們反過來想一想,真正的隨機數(shù)真的不存在嗎?像銀行就經(jīng)常提示大家密碼不要用自己的生日,身份證號中某幾位數(shù)字或者自己的手機號,因為這樣隨時可能存在被破解的可能,我們要盡量使用一些隨機數(shù)字,比如說某個路口,在第一分鐘走了幾個人作為你密碼的第一位,然后依次排列,這個數(shù)字就是隨機的。同樣我們的計算機如果單純依賴于程序,可能就不存在真正的隨機數(shù),如果把計算機軟件和外部硬件結合起來。比如說收集CPU每天轉速以及溫度,甚至某個人敲打鍵盤的頻率,磁盤寫入速度,等等信號。這樣也就產(chǎn)生了“純粹“的隨機數(shù)。
unix操作系統(tǒng)也就存在一個熵池,通過熵池來收集一些隨機值,這樣也就產(chǎn)生了真正意義上的隨機數(shù)字。

到此,關于“java中怎么獲取整數(shù)某個范圍內(nèi)的數(shù)字”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI