java第九章(数字处理类)--随机数、大数字(加减乘除)、

来源:互联网 发布:sqlserver分页存储过程 编辑:程序博客网 时间:2024/05/18 22:42


三--随机数:

1.Math.random()方法:在Math类中存在一个random()方法,用于产生随机数字,这个方法默认生成大于等于0.0小雨1.0的double型随机数,即0<=Math .random()<1.0 ,  虽然Math.random()方法只可以产生0~1之间的double类型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法善生任意范围的随机数:

(1)(int)(Marh.random()*n) 返回大于等于0小于n之间的随机数

(2)m+( int )(Math.random()*n)   返回大于等于m小于m+n(不包括m+n)之间的随机数

package a;public class a {      public static int GetEvenNum(double num1,double num2)      {      int s=(int)num1+(int)(Math.random()*(num2-num1));      if(s%2==0)      {      return s;      }      else      return s+1;      }      public static void main(String[] args)      {      System.out.println("2~32之间任意一个偶数: "+GetEvenNum(2,32));      }}控制台输出结果:2~32之间任意一个偶数: 4

2.使用Math类的random()方法也可以随机生成字符,,可以使用如下代码,生成‘a’~‘z’之间的字符:

(char)('a'+Marh.random()*('z'-'a'+1));

(char)(char1+Math.random()*(char2-char1+1));

package a;public class a {      public static char fun(char char1,char char2)      {      return (char)(char1+Math.random()*(char2-char1+1));      }      public static void main(String [] args)      {      System.out.println("任意小写字符 "+fun('a','z'));      System.out.println("任意大写字符 "+fun('A','Z'));      System.out.println("0到9任意数字 "+fun('0','9'));      }}控制台输出结果:任意小写字符 x任意大写字符 W0到9任意数字 9

3.除了Math类中random()方法可以获取随机数之外,在java中还提供了一种可以获取随机数的方式,那就是java.,util.Random类。可以通过实例化一个Random对象创建一个随机数生成器:

(1)Random  r=new  random();    r是指Random对象

同时也可以在实例化Random类对象是,设置随机数生成器的种子:

(2)Random  r=  new  Random(seeValue)    r是指Random类对象,      seedValue:随机数生成器的种子

****在Random类中提供各种数据类型随机数的方法:

package a;import java.util.Random;  public class a {      public static void main(String[] args)      {      Random r=new Random();      System.out.println("随机产生一个整数: "+r.nextInt());      System.out.println("随机产生一个大于等于0小于10的整数: "+r.nextInt(10));      System.out.println("随机产生一个布尔型的值: "+r.nextBoolean());      System.out.println("随产生一个双精度的值; "+r.nextDouble());      System.out.println("随机产生一个浮点型的值: "+r.nextFloat());      System.out.println("随机产生一个概率密度为高斯分布的双精度值: "+r.nextGaussian());      }}控制台输出结果:随机产生一个整数: 1440689419随机产生一个大于等于0小于10的整数: 4随机产生一个布尔型的值: true随产生一个双精度的值; 0.561123901919533随机产生一个浮点型的值: 0.56350034随机产生一个概率密度为高斯分布的双精度值: 0.139858257986313

四:大数字:

package a;import java.math.BigInteger;  public class a {     public static void main(String [] args)     {    BigInteger bigInstance=new BigInteger("4");//实例化一个大数字    System.out.println("加法操作: "+bigInstance.add(new BigInteger("2")));    System.out.println("减法操作: "+bigInstance.subtract(new BigInteger("2")));    System.out.println("乘法操作: "+bigInstance.multiply(new BigInteger("2")));    System.out.println("除法操作: "+bigInstance.divide(new BigInteger("2")));    System.out.println("求余操作: "+bigInstance.divideAndRemainder(new BigInteger("3"))[1]);    System.out.println("取商操作: "+bigInstance.divideAndRemainder(new BigInteger("3"))[0]);    System.out.println("做2次方操作: "+bigInstance.pow(2));    System.out.println("取相反操作: "+bigInstance.negate());     }}控制台输出结果:加法操作: 6减法操作: 2乘法操作: 8除法操作: 2求余操作: 1取商操作: 1做2次方操作: 16取相反操作: -4

package a;import java.math.BigDecimal;  public class a {    static final int location=10;  public static BigDecimal add(double value1,double value2){  BigDecimal b1=new BigDecimal(Double.toString(value1));  BigDecimal b2=new BigDecimal(Double.toString(value2));  return b1.add(b2);  }  public static BigDecimal sub(double value1,double value2){  BigDecimal b1=new BigDecimal(Double.toString(value1));  BigDecimal b2=new BigDecimal(Double.toString(value2));  return b1.subtract(b2);  }  public static BigDecimal mul(double value1,double value2){  BigDecimal b1=new BigDecimal(Double.toString(value1));  BigDecimal b2=new BigDecimal(Double.toString(value2));  return b1.multiply(b2);  }  public static BigDecimal div(double value1,double value2){  return div(value1,value2,location);  }  public static BigDecimal div(double value1,double value2,int b){  if(b<0){  System.out.println("b值必须大于等于0");  }  BigDecimal b1=new BigDecimal(Double.toString(value1));  BigDecimal b2=new BigDecimal(Double.toString(value2));  return b1.divide(b2,b,BigDecimal.ROUND_HALF_UP);  }  public static void main(String[] args) {  a b=new a();//注意这里的a是类名  System.out.println("两个数字相加结果:"+b.add(-7.5, 8.9));  System.out.println("两个数字相减结果:"+b.sub(-7.5, 8.9));  System.out.println("两个数字相乘结果:"+b.mul(-7.5, 8.9));  System.out.println("两个数字相除结果,结果小数后保留10位:"+b.div(10, 2));  System.out.println("两个数字相除,结果保留小数后5位:"+b.div(-7.5, 8.9,5));  }}控制台输出结果:两个数字相加结果:1.4两个数字相减结果:-16.4两个数字相乘结果:-66.75两个数字相除结果,结果小数后保留10位:5.0000000000两个数字相除,结果保留小数后5位:-0.84270


原创粉丝点击