基于Java中Math類的常用函數(shù)總結(jié)
Java中比較常用的幾個(gè)數(shù)學(xué)公式的總結(jié):
//取整,返回小于目標(biāo)函數(shù)的最大整數(shù),如下將會(huì)返回-2 Math.floor(-1.8); //取整,返回發(fā)育目標(biāo)數(shù)的最小整數(shù) Math.ceil() //四舍五入取整 Math.round() //計(jì)算平方根 Math.sqrt() //計(jì)算立方根 Math.cbrt() //返回歐拉數(shù)e的n次冪 Math.exp(3); //計(jì)算乘方,下面是計(jì)算3的2次方 Math.pow(3,2); //計(jì)算自然對(duì)數(shù) Math.log(); //計(jì)算絕對(duì)值 Math.abs(); //計(jì)算最大值 Math.max(2.3,4.5); //計(jì)算最小值 Math.min(,); //返回一個(gè)偽隨機(jī)數(shù),該數(shù)大于等于0.0并且小于1.0 Math.random
Random類專門用于生成一個(gè)偽隨機(jī)數(shù),它有兩個(gè)構(gòu)造器:一個(gè)構(gòu)造器使用默認(rèn)的種子(以當(dāng)前時(shí)間作為種子),另一個(gè)構(gòu)造器需要程序員顯示的傳入一個(gè)long型整數(shù)的種子。
Random比Math的random()方法提供了更多的方式來生成各種偽隨機(jī)數(shù)。
e.g
import java.util.Arrays;
import java.util.Random;
public class RandomTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
System.out.println("隨機(jī)布爾數(shù)" + rand.nextBoolean());
byte[] buffer = new byte[16];
rand.nextBytes(buffer);
//生產(chǎn)一個(gè)含有16個(gè)數(shù)組元素的隨機(jī)數(shù)數(shù)組
System.out.println(Arrays.toString(buffer));
System.out.println("rand.nextDouble()" + rand.nextDouble());
System.out.println("Float浮點(diǎn)數(shù)" + rand.nextFloat());
System.out.println("rand.nextGaussian" + rand.nextGaussian());
System.out.println("" + rand.nextInt());
//生產(chǎn)一個(gè)0~32之間的隨機(jī)整數(shù)
System.out.println("rand.nextInt(32)" + rand.nextInt(32));
System.out.println("rand.nextLong" + rand.nextLong());
}
}
為了避免兩個(gè)Random對(duì)象產(chǎn)生相同的數(shù)字序列,通常推薦使用當(dāng)前時(shí)間作為Random對(duì)象的種子,代碼如下:
Random rand = new Random(System.currentTimeMillis());
在java7中引入了ThreadLocalRandom
在多線程的情況下使用ThreadLocalRandom的方式與使用Random基本類似,如下程序·片段示范了ThreadLocalRandom的用法:
首先使用current()產(chǎn)生隨機(jī)序列之后使用nextCXxx()來產(chǎn)生想要的偽隨機(jī)序列:
ThreadLocalRandom trand= ThreadLocalRandom.current(); int val = rand.nextInt(4,64);
產(chǎn)生4~64之間的偽隨機(jī)數(shù)
以上就是小編為大家?guī)淼幕贘ava中Math類的常用函數(shù)總結(jié)的全部內(nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~
相關(guān)文章
Java實(shí)現(xiàn)快速排序和堆排序的示例代碼
這篇文章主要為大家詳細(xì)介紹了快速排序和堆排序的多種語言的實(shí)現(xiàn)(JavaScript、Python、Go語言、Java、C++),感興趣的小伙伴可以了解一下2022-12-12
feign調(diào)用返回object類型轉(zhuǎn)換方式
這篇文章主要介紹了feign調(diào)用返回object類型轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringBoot線程池ThreadPoolTaskExecutor異步處理百萬級(jí)數(shù)據(jù)
本文主要介紹了SpringBoot線程池ThreadPoolTaskExecutor異步處理百萬級(jí)數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
java數(shù)據(jù)庫開發(fā)之JDBC的完整封裝兼容多種數(shù)據(jù)庫
這篇文章主要介紹了java數(shù)據(jù)庫開發(fā)之JDBC的完整封裝兼容多種數(shù)據(jù)庫,需要的朋友可以參考下2020-02-02
Hibernate初體驗(yàn)及簡單錯(cuò)誤排除代碼詳解
這篇文章主要介紹了Hibernate初體驗(yàn)及簡單錯(cuò)誤排除代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
MybatisPlus?LambdaQueryWrapper使用int默認(rèn)值的坑及解決
這篇文章主要介紹了MybatisPlus?LambdaQueryWrapper使用int默認(rèn)值的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01

