java获取⼤于0的随机数_java–⽣成⼤于或⼩于前⼀个随机数
的随机数
我试图⽣成⼀个⼤于和⼩于前⼀个随机数的随机数,但⽆法弄清楚如何.
到⽬前为⽌我有这个:
number = (int)( max * Math.random() ) + min;
guess = (int)( max * Math.random() ) + min;
if (guess
{
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 {
java生成随机数的方法Random rng = new SecureRandom();
Set numbers = new HashSet<>();
while (numbers.size() < 3) {
// number only added if not already present in Set, set values are unique
numbers.Int(MAX));
}
List 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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论