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

