---
# System prepended metadata

title: 【亂數產生】
tags: [Java]

---

###### tags: `Java`
# 【亂數產生】
java.lang 套件中的 Math 類別，
定義了一個靜態方法 random()，
這個方法可以產生亂數，其型態為 double ，
它介於 0~1 之間，但是不等於 1 。

![](https://i.imgur.com/xJhStHj.png)


---


## 求 0~9 之間的亂數
```
int r = (int)(Math.random()*10);
```
亂數本身的最小值是0 ，最大值是0.99999999，永遠不會到1，
要產生0~9之間的亂數需將產生亂數值乘以10，
變成最小值是0，最大值則是9，不會得到10。

---
## 求 1~10 之間的亂數
```
int r = (int)(Math.random()*10)+1;
```
亂數產生後再乘以10，則最小值是0，最大值則是 9，
加上1就可以變成 1~10間的亂數。

---
## 求 20~40 之間的亂數

```
random = (int)(Math.random()*(MAX-MIN+1)) + min;
int r  = (int)(Math.random()*(40-20+1))+20;
```