1. 程式人生 > >JAVA中利用Math.random生成隨機數

JAVA中利用Math.random生成隨機數

吹水環節:剛升大二 剛學習JAVA 此前學過C的基礎 據說寫部落格能幫自己複習 還能發現很多有相同經歷的人 完 我實在編不下去了 開始吧 之前沒寫過部落格 也不知道程式碼片怎麼用 我就先隨便寫了 如果有什麼不對的地方 你他媽來打我啊 哈哈哈 開玩笑的 有錯誤就麻煩大家指正指正

1.利用Math.random()方法隨機生成一個數
程式碼1:

public class TestRandom
{
    public static void main(String[] args)
    {
        for(int i=0;i<10
;i++) { System.out.println(Math.random()); //呼叫Math.random()方法並將結果打印出來 } } }

執行結果1:
E:\my install\Java\blog>javac TestRandom.java

E:\my install\Java\blog>java TestRandom
0.5485366682366308
0.7904994005768577
0.4970279945435516
0.9144940367397362
0.4147505198413496
0.9006801179679089
0.7179267829109559
0.6356377713437282
0.8714924212354369
0.7853288012971491

由執行結果可以知道Math.random()方法是隨機生成一個0~1之間的隨機double型別的數

2.那麼如何隨機生成0~10之間的整數呢 顯然直接呼叫該方法生成的是double型的0~1之間的數 那麼我們只要將生成的數乘10,然後轉化為int型別就行了

程式碼2:

public class TestRandom
{
    public static void main(String[] args)
    {
        for(int i=0;i<10;i++)
        {
            //System.out.println((int)Math.random()*10);    注意  這樣結果一直是0 這是因為Math.random()生成的數在0-1之間  而0-1之間的double數轉化為為int都為0
System.out.println((int)(Math.random()*10)); //所以應該將生成的隨機數乘10 再轉化為int型別的數 } } }

執行結果2:
E:\my install\Java\blog>javac *.java

E:\my install\Java\blog>java TestRandom
9
7
8
1
1
1
4
1
9
0

3.那麼問題又來了 如何隨機生成12~18之間的隨機整數呢 0~1將原下限0加上12就成了新下限 而1要如何變成18呢 因為加的是12 設隨機生成的0~1之間的數位ran 則要求生成的隨機數為 ran*6+12

程式碼3:

public class TestRandom
{
    public static void main(String[] args)
    {
        for(int i=0;i<10;i++)
        {
            System.out.println((int)(Math.random()*6+12));  //設隨機生成的0~1之間的數位ran   則要求生成的隨機數為 ran*6+12   
        }   
    }   
}

執行結果3:
E:\my install\Java\blog>javac *.java

E:\my install\Java\blog>java TestRandom
16
13
17
16
16
13
12
14
15
14

4.那麼新的問題又來了 如何生成指定的區間裡的整數呢?其實,依照上面的例子把數值換成變數就行了。

程式碼4:

public class TestRandom
{
    public static void main(String[] args)
    {
        int s;
        for(int i=0;i<10;i++)
        {
            s = randomRange(33,99);//隨機生成33~99之間的整數
            System.out.println(s);     
        }   
    }   

    //獲取兩個數之間的隨機數
    public static int randomRange(int start , int end)
    {
        return((int)(Math.random()*(end - start)+start));
    }
}

執行結果4:
E:\my install\Java\blog>javac *.java

E:\my install\Java\blog>java TestRandom
78
44
64
98
82
72
60
50
69
44

PS:賣女孩的小女孩發來賀電。。。