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之間的偶數
還可以隨機生成字元 例如: 1.隨機生成a~z之間的字元 (char)('a'+Math.random()*('z'-'a'+1)); 2.隨機生成cha1~cha2的字元 (char)(cha1+Math.random()*(cha2-cha1+1));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)); } }
二、Random類生成隨機數
除了Math類的Random()方法可以獲取隨機數之外,還可以Java.util.Random類,可以通過例項化一個Random物件建立一個隨機數生成器。 1.語法:Random ran=new Random();
ran:Random類的例項物件
以這種形式例項化物件時,Java編譯器以系統當前時間作為隨機數生成器的種子,因為每時每刻的時間都不可能相同,所以產生的隨機數也不同。如果執行速度太快,也會產生兩次執行結果相同的隨機數。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學習筆記:隨機數(Math類和Random類生成的隨機數)
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,StringBuilder和StringBuffer
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學習筆記--類ArrayList和LinkedList的實現
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