2_3.1 亂數產生器

2011年8月26日 星期五

| | |

2-3 其它輸入
        在前面兩節中,我們先後討論了在程式中直接輸入變數的內容,以及透過鍵盤,讓使用者可以輸入變數的內容。除了這兩種方式外,java語言本身還提供其它的輸入方式,後續將探討亂數產生器和日期時間。

2_3.1 亂數產生器
        我們試著撰寫可以產生介於0-9的整數數值,再將該數值以幸運數字的方式呈現。

Chap2_3_1.java
// 利用亂數產生器產生並顯示0 ~ 9的幸運數字
import java.util.Random;
class Chap2_3_1 {
public static void main(String[] args) {
    Random rand = new Random();
    int luckyNo = rand.nextInt(10);              // 產生0~9的亂數
    System.out.println("今日的幸運數字為 " + luckyNo + "。");
}
}

執行結果
今日的幸運數字為 6。

程式說明:
1. 如同之前的從鍵盤讀入範例一般,要使用亂數產生器來產生亂數,必須有一定的程序步驟。    如圖2-13所示
import java.util.Random; ------------------  ① 置於類別宣告之前。                                 

class Chap2_3_1 {
public static void main(String[] args) {
    Random rand = new Random(); ---- ②置於main方法的開頭,必須在步驟                                                                            3之前。
    
      int luckyNo = rand.nextInt(10);-------③ 接收亂數產生器所產生的整數。
  }
}

圖2-13
2. 因為程式利用rand.nextInt(10);,所以會得到介於0-9之間的整數。這就像是去廟裡求籤,在    籤桶裡有10支籤,會抽中哪一支完全由天註定。

練習題 2-7
       由亂數產生器產生三個數值x, y,z。
         x為正的個位數(1~9)。
         y為負的個位數(-1~-9)。
         z為正的二位數(10~99)。
 

練習題 2-8
      由鍵盤輸入一個整數,然後由亂數產生器產生一個正負5的倍數。
參考結果
請輸入整數 :7
正負五的倍數產生中。
新整數是7的4倍,為28。


練習題 2-9
   利用亂數產生器產生二個0~100的整數,在畫面上顯示該二數的相反數,以及差值。
參考結果
x的值為 40
y的值為 13
x的負值為 -40
y的負值為 -13
二數相差 27


練習題 2-10        
       由亂數產生器產生三個數值x, y,z(請參考下面的補充)。
         x為正的實數(0.0 ~1.0)。
         y為正的實數(0.0 ~ 10)。
         z為實數(-1.0 ~ 1.0)。

[補充] 下表列出亂數產生器的一些方法。

表2-4 亂數產生器的方法
Method(方法)Data-Type(資料型態)產生的數值範圍
nextInt()int-2147483648 ~ +2147483647
nextInt(n)int0~(n-1)
nextLong()long-9223372036854775808 ~ +9223372036854775807
nextDoouble()double0.0 ~ 1.0

nextFloat()float0.0 ~ 1.0
nextBoolean()booleantrue 或 false

               
練習題 2-11
       由亂數產生一個實數(double)的半徑,利用final的實數(PI=3.14),計算出此圓的面積。
參考結果
半徑0.48418067421193156的圓面積為0.7361131053802068。

0 意見:

張貼留言