编程语言
首页 > 编程语言> > java – 生成大于或小于前一个随机数的随机数

java – 生成大于或小于前一个随机数的随机数

作者:互联网

我试图生成一个大于和小于前一个随机数的随机数,但无法弄清楚如何.

到目前为止我有这个:

number = (int)( max * Math.random() ) + min;
guess = (int)( max * Math.random() ) + min;
if (guess<number)
   {
      guess = (int)( max * Math.random() ) + min;
      System.out.println(guess);
    }
else if (guess>number)
 {
      guess = (int)( max * Math.random() ) + min;
     System.out.println(guess);
 }

更新:如何确保它不会生成已生成的随机数?计算机有10次尝试猜测生成的数字,但我想让它成为逻辑,因为它不会产生一个它已经知道是错误的.

解决方法:

如何订购随机数列表……

public static void method2() throws Exception {
    Random rng = new SecureRandom();
    Set<Integer> numbers = new HashSet<>();
    while (numbers.size() < 3) {
        // number only added if not already present in Set, set values are unique
        numbers.add(rng.nextInt(MAX));
    }
    List<Integer> numberList = new ArrayList<>(numbers);
    Collections.sort(numberList);
    // lower random at index 0, mid at index 1
    // you can guess where the other one is hiding 
    System.out.println(numberList);
}

我先把它们放在一套,以确保没有重复.当然,如果MAX的值为1,则可能需要一段时间.

这种方法的一个优点是数字应该很好地分布在0到MAX之间.如果直接使用范围,则必须处理上限和下限.

当然,只要最大值(明显)高于列表中的数字量(在这种情况下仅为3),这种方法也可以很容易地扩展到范围内工作.

标签:java,random,math,int,inequality
来源: https://codeday.me/bug/20190708/1403054.html