Java生成随机数

来源:互联网 发布:苏州迈科网络 编辑:程序博客网 时间:2024/06/05 15:37

原文地址

欢迎阅读

生成[min,max]之间的随机正整数

代码片:

int max = 1;int min = 2;Random random = new Random();//随机max 取余数(max - min + 1)  + minint r = (random.nextInt(max) % (max - min + 1) + min);                

生成[min,max]之间的随机整数

代码片:

int max = 1;int min = 2;Random random = new Random();//随机max 取余数(max - min + 1)  + minint r = (random.nextInt(max) % (max - min + 1) + min);//随机一个数如果大于0.5则为正整数r = r * (Math.random() > 0.5 ? 1 : -1);                

生成[min,max]之间的随机整数(负数-整数)

完整代码:

public static void main(String[] args) {    for (int i = 0; i < 20; i++) {        System.out.println(randomSpan(-3, 10));    }}public static int randomSpan(int a, int b) {        if(a == b){            return a;        }        if (a < 0 && b < 0){            return fun1(a, b, true);        }else if (a < 0 ) {            return fun2(b, a);        }else if (b < 0) {            return fun2(a, b);        }else {           return fun1(a, b, false);        }}public static int fun1(int a, int b, boolean f){    Random random = new Random();    int max = Math.max(Math.abs(a), Math.abs(b));    int min = Math.min(Math.abs(a), Math.abs(b));    int r = (random.nextInt(max) % (max - min + 1) + min);    if (f){        r = r * -1;    }    return r;}public static int fun2(int a, int b){    Random random = new Random();    return Math.random() > 0.5 ? random.nextInt(Math.abs(a)) : random.nextInt(Math.abs(b)) * -1;}                

运行效果:

-20848-2-188642-1150-2-145                

使用例子:

randomSpan(2, 10);randomSpan(20, 10);randomSpan(2, -10);randomSpan(-2, 10);                

生成[min,max]之间的浮点数

代码片:

public static double nextDouble(final double a, final double b){    double min = a < b ? a : b ;    double max = a < b ? b : a ;    if (min == max) {        return min;    }    return min + ((max - min) * new Random().nextDouble());}


原创粉丝点击