官术网_书友最值得收藏!

2.3.2 取隨機數

取整只能對已有數字取整,概率統計卻時常要求生成隨機數,Math庫雖然提供了制造隨機數的random方法,但是該方法僅僅生成小于1的隨機小數(包括0和正小數),并不能直接生成隨機整數。

若想生成隨機整數,則需引入專門的隨機數工具Random,該工具實例化后可調用nextInt方法生成int類型的隨機整數,調用nextLong方法生成long類型的隨機長整數,調用nextFloat方法生成float類型的隨機浮點小數,調用nextDouble方法生成double類型的隨機雙精度小數。特別注意,nextInt與nextLong方法得到的隨機整數可能是負數,而nextFloat與nextDouble方法只會返回正的小數,不會返回負的小數。

因為int類型可表達的數值范圍是-2147483648~2147483647,然而很多時候并不需要這么大的隨機數,往往只需要比較小的隨機數(如小于100的隨機整數),所以此時調用nextInt方法要填寫數值的上限,比如式子“new Random().nextInt(100)”表示生成100以內的隨機整數(0≤隨機整數<100)。

下面是獲取各種隨機數的代碼例子(完整代碼見本章源碼的src\com\arithmetic\math\Rand.java):

double decimal=Math.random();  //生成小于1的隨機小數(包括0和正小數)
System.out.println("decimal=" + decimal);
int integer=new Random().nextInt();  //生成隨機整數(包括負數)
System.out.println("integer=" + integer);
long long_integer=new Random().nextLong();  //生成隨機長整數(包括負數)
System.out.println("long_integer=" + long_integer);
float float_decimal=new Random().nextFloat();  //生成隨機的浮點小數(不包括負數)
System.out.println("float_decimal=" + float_decimal);
double double_decimal=new Random().nextDouble();  //生成隨機的雙精度小數(不包括負數)
System.out.println("double_decimal=" + double_decimal);
int hundred=new Random().nextInt(100);  //生成100以內的隨機整數(0≤隨機整數<100)
System.out.println("hundred=" + hundred);
主站蜘蛛池模板: 株洲市| 平罗县| 长沙县| 榆社县| 横山县| 宜春市| 新建县| 洞头县| 贵定县| 漾濞| 邢台市| 德令哈市| 昌吉市| 大渡口区| 扶风县| 阳高县| 周口市| 乌拉特后旗| 承德县| 林周县| 郎溪县| 高要市| 登封市| 和平县| 宝应县| 丰都县| 文成县| 邵阳县| 江津市| 桂东县| 琼海市| 文山县| 乌兰察布市| 丽水市| 平乡县| 万荣县| 玛纳斯县| 韩城市| 当雄县| 苍梧县| 道真|