Apr 26, 2007

java生成随机数

  开门见山,问题:生成(-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:

Unknown said...

我正在做用协同进化遗传算法优化神经网络权值的问题,由于神经网络的连接权值初始是随机产生的,所以你的函数帮了我大忙,借用了一下,太感谢你了。。。