1. 程式人生 > >JAVA學習筆記:隨機數(Math類和Random類生成的隨機數)

JAVA學習筆記:隨機數(Math類和Random類生成的隨機數)

Math類和Random類生成的隨機數

一、Math類的random()方法

Math類的random()方法可以生成大於等於0.0、小於1.0的double型隨機數。 Math.random()方法語句基礎上處理可獲得多種型別、或任意範圍的隨機數。 公式:
int num=(int)(Math.random()*n);			//返回大於等於0小於n之間的隨機數
int num0=m+(int)(Matn.randon()*n);		//返回大於等於m小於m+n(不包括m+n)之間的隨機數
例如:我們需要取2~22之間的偶數
public class MathRandomDemo{
public static int GetevenNum(double num1,double num2){
int s=(int)num1+(int)(Math.random()*(num2-num1));
if(s%2==0){
return s;
}
else
retuen s+!;
}
public static void main(String[] args){
System.out.println("任意一個"+num1+"~"+num2+"之間的偶數:"+GeteneNum(2,22));
}
}
還可以隨機生成字元 例如: 1.隨機生成a~z之間的字元 (char)('a'+Math.random()*('z'-'a'+1)); 2.隨機生成cha1~cha2的字元 (char)(cha1+Math.random()*(cha2-cha1+1));

二、Random類生成隨機數

除了Math類的Random()方法可以獲取隨機數之外,還可以Java.util.Random類,可以通過例項化一個Random物件建立一個隨機數生成器。 1.語法:
Random ran=new Random();
ran:Random類的例項物件 以這種形式例項化物件時,Java編譯器以系統當前時間作為隨機數生成器的種子,因為每時每刻的時間都不可能相同,所以產生的隨機數也不同。如果執行速度太快,也會產生兩次執行結果相同的隨機數。
2.可以在例項化Random類物件時,自定義隨機數生成器的種子。 語法:
Random ran=new Random(seedValue);
ran:Random類的例項物件 seedValue:隨機類生成器的種子。
Random類中還提供各種型別隨機數的方法:
nextInt():返回一個隨機整數(int)
nextInt(int n):返回大於等於0、小於n的隨機整數(int)
nextLong():返回一個隨機長整型值(long)
nextBoolean():返回一個隨機布林型值(boolean)
nextFloat():返回一個隨機浮點型值(float)
nextDouble():返回一個隨機雙精度型值(double)
nextGaussian():概率密度為高斯分佈的雙精度值(double)
例:
import java.util.Random;
public class Demo{
public static void main(String[] args){
Random ran=new Random();
System.out.println("產生一個隨機整數:"+ran.nextlnt());
}
}

相關推薦

JAVA學習筆記:隨機數(MathRandom生成隨機數)

Math類和Random類生成的隨機數 一、Math類的random()方法 Math類的random()方法可以生成大於等於0.0、小於1.0的double型隨機數。 Math.random()

java學習筆記】MyBatis中當實體中的屬性名表中的欄位名不一樣時的解決方法

在使用MyBatis開發DAO層時,當實體類中的屬性名和表中的欄位名不一樣時,查詢出來的值為null,此時有3種解決方法 解決方法1                在Mapper.xml對映檔案中,寫SQL語句時起別名 解決

C++ Primer 學習筆記_5_變量基本型(續2)

key 情況 boa 類和對象 類定義 優點 splay 查看 變量定義  變量和基本類型 七、枚舉 枚舉不但定義了整數常量集,並且還把它們聚集成組。 枚舉與簡單的const常量相比孰優孰劣, 通過以下一段代

Java學習筆記—多線程(原子java.util.concurrent.atomic包,轉載)

支持 位置 dset 賦值 嵌入 imp ans 匯編指令 sta 原子類 Java從JDK 1.5開始提供了java.util.concurrent.atomic包(以下簡稱Atomic包),這個包中 的原子操作類提供了一種用法簡單、性能高效、線程安全地更新一個變量的方

java學習筆記之String,StringBuilderStringBuffer

String,StringBuilder和StringBuffer String是char[]+操作,由複製建立新物件進行操作,也就是char[]是不可變的,物件內容永不變。 StringBuilder是char[]+對此char[]陣列的操作,處理當前陣列不用複製重新建立,即ch

Java 學習筆記 二維陣列物件陣列

定義二維陣列 int[][] a = new int[4][5]; 可以不指定列數 int[][] a = new int[4][]; 獲取行 int i = a.length(); 如果使用第一個例子,這裡就是返回4 獲取列 int i = a[0].length();使用第一個例子,這裡就是

java學習筆記(七)--(抽象與介面下)(介面的定義與使用)

介面的定義與使用 介面優先原則:在一個操作即可以使用抽象類又可以使用介面的時候,優先考慮使用介面。 介面的定義(JDK8以前):介面就是抽象方法與全域性常量的集合(純粹版的抽象類),interfance關鍵字定義介面 interface IMessage{

Java學習筆記之物件陣列內部類

1、物件陣列 物件陣列就是數組裡包含的是一組物件,在使用之前,我們必須要先開闢陣列空間,一開始數組裡的每一個物件都是null值,在使用的時候,每一個物件都必須例項化。 1.1 物件陣列的宣告 類 物件陣列名稱 [] = new 類 [陣列長度] class Person{

Java學習筆記之main方法程式碼塊

還記得我們寫的第一個Java程式,hello world嗎? public Class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } 這

Java學習筆記02--成員變數區域性變數、建構函式、構造程式碼塊、this關鍵字、static關鍵字、靜態函式

成員變數和區域性變數 自定義的位置區別: 成員變數是定義在方法之外,類之內的變數。 區域性變數是宣告在方法之內的變數。 作用上的區別: 成員變數的作用描述一類事物的屬性。 區域性變數的作用是提供一個變數給方法內部使用的。 生命週期的區別;

Java學習筆記04--final關鍵字;抽象;值交換;介面

===============java相關講解============= final關鍵字: final關鍵字的用法 final關鍵字修飾一個基本型別的變數時,該變數不能重新賦值,第一次的值為最終的。 fianl關鍵字修飾一個引用型別變數時

java學習筆記——spring之aop、切面中五種通知的使用、存在多個切面時切面通知的執行順序、註釋的方式定義切面與通知、xml配置的方式定義切面與通知

3、AOP AOP:(Aspect Oriented Programming)面向切面程式設計; OOP:(Object Oriented Programming )面向物件程式設計; 面向切面程式設計:基於OOP基礎之上新的程式設計思想; 指在程式執行期間,

Java學習筆記34:集合陣列區別

集合: 儲存任意物件,長度可變 陣列: 定義長度固定,無法自動增長 區別: 1.長度 2.陣列既可以儲存基本資料型別也可以儲存引用資料型別 集合只能儲存物件,即使儲存基本資料型別進入後也會封箱變成物件 集合 collection介面 LIst:有序(存取順序一致) 有索引,不可以

java學習筆記(12-繼承、抽象

1.繼承關鍵字extends java中繼承特點: 在Java中,類只支援單繼承,不允許多繼承,也就是說一個類只能有一個直接父類 多個類可以繼承一個父類 在Java中,多層繼承是可以的,即一個類的父類可以再去繼承另外的父類,例如C類繼承自B類,而B類又可以去繼承A類,這時,C類也可稱作A類的

Java學習筆記31(IO:Properties

文本 字符串 存在 設備 操作 筆記 開頭 read 無法 Properties類,表示一個持久的j集,可以存在流中,或者從流中加載   是Hashtable的子類 map集合的方法都能用   用途之一:在開發項目中,我們最後交給客戶的是一個編譯過的class文件,客戶

java隨機數 Math.random Random

java實現隨機數有兩種方式1)Math.random()和Random類方法,我簡單記錄一下,方便自己回顧,更希望幫助他人。 Math.random() 這個方法是Math類提供的方法,用來返回一個處於0-1之間的浮點數。 用處: 1.返回一個位於0--1隨機

Java學習筆記07--時間及日期相關 ;system;RunTime;MATH隨機數java多執行緒

===============java相關講解============= ∆ 時間及日期相關(Date Calendar SimpleDateFormat) 程式碼示例 public class Demo3 { public

Java學習筆記—抽象接口

compute nal java語言 通過 多個 靜態代碼塊 容易 如果 span 1.抽象類 在Java語言中使用abstrac關鍵字來定義抽象類和抽象方法,抽象方法沒有定義,方法名後面直接跟一個分號,而不是花括號。 public abstract class Empl

java學習筆記--ArrayListLinkedList的實現

java 集合 list 在集合Collection下的List中有兩個實現使用的很頻繁,一個是ArrayList,另一個是LinkedList,在學習中肯定都會有這樣的疑問:什麽時候適合使用ArrayList,什麽時候用LinkedList?這時,我們就需要了解ArrayList和Lin

Java學習筆記(二十一):型轉換instanceof關鍵字

方法 png true feed out 實例 strong 運算符 nbsp 基本數據類型轉換: 自動類型轉換:把大類型的數據賦值給大類型的變量(此時的大小指的是容量的範圍) 1 byte b = 12; //byte是一個字節 2 int i = b; //i