Java中Math类常用函数总结

avatar 2017年4月17日20:12:53 2 144 views

Java中比较常用的几个数学公式的总结:

  1. //取整,返回小于目标函数的最大整数,如下将会返回-2  
  2. Math.floor(-1.8);
  3. //取整,返回发育目标数的最小整数  
  4. Math.ceil()
  5. //四舍五入取整  
  6. Math.round()
  7. //计算平方根  
  8. Math.sqrt()
  9. //计算立方根  
  10. Math.cbrt()
  11. //返回欧拉数e的n次幂  
  12. Math.exp(3);
  13. //计算乘方,下面是计算3的2次方  
  14. Math.pow(3,2);
  15. //计算自然对数  
  16. Math.log();
  17. //计算绝对值  
  18. Math.abs();
  19. //计算最大值  
  20. Math.max(2.3,4.5);
  21. //计算最小值  
  22. Math.min(,);
  23. //返回一个伪随机数,该数大于等于0.0并且小于1.0  
  24. Math.random

Random类专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子(以当前时间作为种子),另一个构造器需要程序员显示的传入一个long型整数的种子。

Random比Math的random()方法提供了更多的方式来生成各种伪随机数。

e.g

  1. import java.util.Arrays;
  2. import java.util.Random;
  3. public class RandomTest {
  4.     /** 
  5.      * @param args 
  6.      */
  7.     public static void main(String[] args) {
  8.         // TODO Auto-generated method stub  
  9.         Random rand = new Random();
  10.         System.out.println("随机布尔数" + rand.nextBoolean());
  11.         byte[] buffer = new byte[16];
  12.         rand.nextBytes(buffer);
  13.         //生产一个含有16个数组元素的随机数数组  
  14.         System.out.println(Arrays.toString(buffer));
  15.         System.out.println("rand.nextDouble()" + rand.nextDouble());
  16.         System.out.println("Float浮点数" + rand.nextFloat());
  17.         System.out.println("rand.nextGaussian" + rand.nextGaussian());
  18.         System.out.println("" + rand.nextInt());
  19.         //生产一个0~32之间的随机整数  
  20.         System.out.println("rand.nextInt(32)" + rand.nextInt(32));
  21.         System.out.println("rand.nextLong" + rand.nextLong());
  22.     }
  23. }

为了避免两个Random对象产生相同的数字序列,通常推荐使用当前时间作为Random对象的种子,代码如下:

Random  rand = new Random(System.currentTimeMillis());

在java7中引入了ThreadLocalRandom

在多线程的情况下使用ThreadLocalRandom的方式与使用Random基本类似,如下程序·片段示范了ThreadLocalRandom的用法:

首先使用current()产生随机序列之后使用nextCXxx()来产生想要的伪随机序列:

  1. ThreadLocalRandom trand= ThreadLocalRandom.current();
  2. int val = rand.nextInt(4,64);

产生4~64之间的伪随机数

 

本文地址:http://liuyanzhao.com/3150.html

转载请注明

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • avatar 夏日博客 1

      感觉挺复杂的说。

      • avatar 战略 3

        总结得非常不错