1. 程式人生 > 實用技巧 >02 隨機器Random產生指定範圍裡面隨機數

02 隨機器Random產生指定範圍裡面隨機數

1.前提

1.1 隨機器的使用方法(以獲取[0,3)範圍內的整數為例)

    第一步:  Random random=new Random();
    第二步:  int age=random.nextInt(3);//測試結果表明可以輸出0,1,2這三個數
    總結規律如下:
       若random.nextInt(n)----->可以取到從0開始到n-1這n個數

1.2隨機器產生的隨機數一定是數字

2.隨機器產生指定範圍[n,m]內的隨機數

2.1分析

 隨機器取不到n本身這個數的,如何取到呢?
   解決方法: 取n+1個數,n+1雖取不到但n這個數可以取到
 隨機器的範圍是預設從o開始的,如何從不為0的數開始呢?
   在數學中,[0,20)變成[10,30)這個區間採用的方法如下:
   把[0,20)這個區間的所有數都加10--------> [0+10,20+10)
   所以我們也只需要把[0,m+1)這個區間加上左端點的值就行
   [0+n,m+1+n)------->[n,m+n+1)-------->函式外面加上n的意思
   而[n,m]的範圍中的數的個數為m-n+1,所以求[n,m]區間裡的隨機數,括號裡應該填m-n+1

2.2解決方法為: random.nextInt(m-n+1)+n

  個人理解,括號裡填要產生隨機數的個數,如果要產生的隨機數的區間的左端點值為n
           那麼可以加上在括號後面加上n(注意:n是帶著它的符號走的,無論是正負,都是加上n這個符號的數)

3.常識補充

  在java生產環境中,函式的區間大多都是左開右關(即左端點取得到,右端點取不到)--->[初始值,