⑴ java如何產生1-8的整數隨機數
在java中,生成隨機數使用的是Random類。要生成在[min,max]之間的隨機整數,則可以如下:
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int max = 8;
int min = 1;
Random random = new Random();
int s = random.nextInt(max)%(max-min+1) + min;
System.out.println(s);
}
}
其中,random.nextInt(max)表示生成[0,max]之間的隨機數,然後對(max-min+1)取模。
⑵ 關於Java里產生1-6隨機數的方法
Math類的方法fandom隨機生成一個0.0到1.0(不含1.0)之間的double值 (int)(Math.random()*10)產生0到9內的整數再 %6 確實可以得專到 1~6的隨機數,但是屬 7 8 9 %6 一樣得到 1 2 3 ,是不是1 2 3 得到的幾率會大一些些呢?呵呵(int)(Math.random()*6)產生0到5內的整數,。。。你可以設計一個小程序來試驗,發現它的六個數出現的幾率是差不多的。
⑶ Java中怎樣產生隨機數和隨機字母
下邊是我原來回答過的隨機生成密碼的問題,里邊用到了隨機生成字母、數字和符號,主要是用ascii碼對應的關系 package demo;import java.util.Random;
import java.util.Scanner;public class Test_002
{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入密碼長度:");
int leng = sc.nextInt();
char [] pw = new char[leng];
Random rm = new Random();
for(int i = 0; i < leng; i++){
pw[i] = (char)(rm.nextInt(94)+33);
}
System.out.println(new String(pw));
}
} pw[i] = (char)(rm.nextInt(94)+33);這里的94是在ascii碼表中,我們常用的符號+數字+大小寫字母一共有94個(從33~126),rm.nextInt(94)可以隨機生成0~93之間的數,加33是因為我們需要的范圍是33~126,這樣我們就生成了22~126之間的隨機數,然後強轉成(char)就是我們要的符號、數字或者字母了
⑷ java如何產生1-8的整數隨機數
(int)(Math.random()*8)+1
或者
Random r =new Random(100);
System.out.println(r.nextInt(8)+1);
Java產生隨機數的兩種方式
1、通過Math.random()方法返回一個0到1之間的double值。
2、通過Random類來產生一個隨機數,這個是專業的Random工具類,功能強大。
Math.random()方法
Math.random()方法是 Java 的一個靜態方法,返回一個0到1之間,前閉後開區間的double值。
(int)(Math.random()*10) 返回0到9的隨機整數。
(int)(Math.random()*n) 返回0到n的隨機整數。
(int)(Math.random()*100)+1 返回1到100之間的隨機整數,前面返回0到99之間的隨機數,加1就成了1到100之間的隨機數。
Random類
Random 類是 Java 的 util 包中的一個類。
一、Random類使用說明
Random類使用的根本策略是分帶種子和不帶種子的Random的實例。
通俗說,兩者的區別是:帶種子的,每次運行生成的結果都是一樣的。
不帶種子的,每次運行生成的都是隨機的,沒有規律可言。
創建不帶種子的Random對象
Random random = new Random();
使用一個和當前系統時間對應的相對時間有關的數字作為種子數。
創建帶種子的Random對象有兩種方法:
1) Random random = new Random(10);
2) Random random = new Random();random.setSeed(10);
種子的作用是什麼?
種子就是產生隨機數的第一次使用值,機制是通過一個函數,將這個種子的值轉化為隨機數空間中的某一個點上,並且產生的隨機數均勻的散布在空間中。以後產生的隨機數都與前一個隨機數有關。
舉例:
Random r =new Random(100);
System.out.println(r.nextInt(20));
100是種子,r.nextInt(20)中的20是隨機數的上限,產生的隨機數為0-20的整數,不包括20,種子數只是隨機演算法的起源數字,和生成的隨機數字的區間沒有任何關系。
初始化時100並沒有起直接作用(注意:不是沒有起作用)。