开门见山,问题:生成(-10,10)之间的保留小数点后两位数的随机数。
解决方法:1.java中随机数生成函数Random r=new Random(); r.nextFloat();//生成(0,1)之间的浮点型随机数。将上述随机数乘以10,得到生成(0,10)之间的随机数。
2.生成一个Boolean型的随机数用于控制数的正负:r.nextBoolean();
3.保留小数位数两位的方法:Math.floor(n*100+0.5)/100;得到的数为double型。
代码如下:
import java.util.*;
public class CreateRandom {
public float numRandom(){
float num;
Random r=new Random();
float value = (float) (Math.floor(r.nextFloat()*1000+0.5)/100);
Boolean b = r.nextBoolean();
if(b){
num = value;
}
else{
num=0-value;
}
return num;
}
public static void main(String[] args) {
CreateRandom cr = new CreateRandom();
float num = cr.numRandom();
System.out.print(num);
}
}
1 comment:
我正在做用协同进化遗传算法优化神经网络权值的问题,由于神经网络的连接权值初始是随机产生的,所以你的函数帮了我大忙,借用了一下,太感谢你了。。。
Post a Comment