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


三--随机数:

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
任意大写字符 W
0到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


你可能感兴趣的:(S1:Java)