您现在的位置是:主页 > news > 专业制作网站工业制品流程/鞋子软文推广300字
专业制作网站工业制品流程/鞋子软文推广300字
admin2025/6/13 21:16:06【news】
简介专业制作网站工业制品流程,鞋子软文推广300字,做网站的公司还市场吗,vps搭建wordpress mu随机数生成的方法介绍 在日常编程中,我们可能会需要使用随机数进行一些功能的实现,下面我就介绍两个生成随机数的方法: Math.random()方法 java.,util.Random类 1. Math.random()方法:默认生成的随机数是大于等于0.0小于1的dou…
随机数生成的方法介绍
在日常编程中,我们可能会需要使用随机数进行一些功能的实现,下面我就介绍两个生成随机数的方法:
Math.random()方法
java.,util.Random类
1. Math.random()方法:默认生成的随机数是大于等于0.0小于1的double型数字,即0<=Math .random()<1.0。虽然0~1的范围很小,但是只要在Math.random()上稍作处理,就可以表示任意范围的随机数以及字符。
例如:
1) (int)(Math.random()*n):生成[0,n)之间的随机数
2) m+( int )(Math.random()n):生成[m,n)之间的随机数
3) (char)(char1+Math.random()(char2-char1+1)) :生成[char1,char2)之间的随机字符
使用示例如下:
public class Test {public static int RandomNum1(int num1,int num2) //任意int型{int s=(int)num1+(int)(Math.random()*(num2-num1));if(s%2==0)return s;elsereturn s+1;}public static double RandomNum2(double num1,double num2) //任意double型{return (double)(num1+(double) (Math.random()*(num2-num1)));}public static char RandomChar(char char1,char char2) //任意字符{return (char)(char1+Math.random()*(char2-char1+1));}public static void main(String[] args) {System.out.println("2~23之间任意一个int型偶数:"+RandomNum1(2,23));System.out.println("3~4之间任意一个double型随机数:"+RandomNum2(3,4));System.out.println("a~h之间任意一个字符:"+RandomChar('a','h'));}}
2. java.,util.Random类:除了上述生成随机数的方法,Java还提供了一个可以获取随机数的Random类。于是我们可以通过实例化一个对象,从而创建一个随机数生成器。
使用方法如下:
1)Random r=new random(); 创建一个Random对象
2)Random r= new Random(seeValue) ; r对象在实例化时设置随机数生成器的种子seeValue
使用示例如下:
还有更多random类提供的方法可供选择使用,有兴趣的可以自己尝试
public class Test {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.nextGaussian());System.out.println("随机产生一个浮点型的值:"+r.nextFloat());}
}
大数的操作
对于大数的操作,常会以字符串的形式传入,并使用以下两个类操作:
使用BigInteger操作大整数
使用BigDecimal指定小数的保留位数
1.BigInteger:如果在操作的时候一个整型数据已经超过了整数的最大类型长度long,则此数据就无法装入。所以此时要使用BigInteger类进行操作。
注意: BigInteger是在java.math包中
使用示例:
import java.math.BigInteger;public class Test {public static void main(String[] args) {BigInteger big1 = new BigInteger("123456789");BigInteger big2 = new BigInteger("987654321");System.out.println("加法操作:" + big2.add(big1)) ; // 加法操作System.out.println("减法操作:" + big2.subtract(big1)) ; // 减法操作System.out.println("乘法操作:" + big2.multiply(big1)) ; // 乘法操作System.out.println("除法操作:" + big2.divide(big1)) ; // 除法操作System.out.println("最大数:" + big2.max(big1)) ; // 求出最大数System.out.println("最小数:" + big2.min(big1)) ; // 求出最小数BigInteger result[] = big2.divideAndRemainder(big1) ; // 求出余数的除法操作System.out.println("商是:" + result[0] + ";余数是:" + result[1]) ;}
}
由上面的运算结果可以看出,BigInteger的divide()方法本身只是把最终的商保存下来了,但是如果两个数不能整除,余数就会被省略。我们期望余数也能展示出来,那么就要用divideAndRemainder()方法来获得结果和余数了。
2.BigDecimal:对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算结果,则必须使用BigDecimal类。可以使用此类进行精确的四舍五入,这一点在开发中经常使用。
注意: BigDecimal是在java.math包中
使用示例:
import java.math.BigDecimal;public class Test {public static void main(String[] args) {System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333),1)) ;System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333),3)) ;System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,3.333),4)) ;System.out.println("除法运算:" + MyMath.div(10.345,3.333,3)) ;
}
}
class MyMath{public static double add(double d1,double d2){ // 进行加法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.add(b2).doubleValue() ;}public static double sub(double d1,double d2){ // 进行减法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.subtract(b2).doubleValue() ;}public static double mul(double d1,double d2){ // 进行乘法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.multiply(b2).doubleValue() ;}public static double div(double d1,double d2,int len){ // 进行除法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ;}public static double round(double d,int len){ // 进行四舍五入BigDecimal b1 = new BigDecimal(d) ;BigDecimal b2 = new BigDecimal(1) ; // 技巧return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ;}
}
使用BigDecimal可以指定好四舍五入的精确位置,还是非常方便的。