好的,我还是Java的新手。我们已经获得了一个帮助来创建一个游戏,您必须猜测计算机生成的随机整数。问题是我们的讲师坚持要求我们使用:
double randNumber = Math.random();
然后将其转换为接受1 - 100(包括1和100)的随机整数。我有点不知所措。到目前为止我所拥有的是:
//Create random number 0 - 99
double randNumber = Math.random();
d = randNumber * 100;
//Type cast double to int
int randomInt = (int)d;
然而,随机双重的延迟问题的随机性是0是可能性而100不是。我想改变它,以便0不是可能的答案,100是。救命?
答案 0 :(得分:15)
你快到了。只需在结果中添加1:
int randomInt = (int)d + 1;
这会将您的范围“转移”到1 - 100
而不是0 - 99
。
答案 1 :(得分:15)
或
Random r = new Random();
int randomInt = r.nextInt(100) + 1;
答案 2 :(得分:0)
这是一个干净且有效的方法,通过范围检查!享受。
fontImage
//稍后请致电:
confirm
答案 3 :(得分:0)
我会写 整数= 1 +(整数)(Math.random()* 100);
答案 4 :(得分:0)
ThreadLocalRandom
类提供了int nextInt(int origin, int bound)
方法来获取范围内的随机整数:
// Returns a random int between 1 (inclusive) & 101 (exclusive)
int randomInt = ThreadLocalRandom.current().nextInt(1, 101)
ThreadLocalRandom
是用Java生成随机数的几种方法之一,包括较旧的Math.random()
方法和java.util.Random
类。 ThreadLocalRandom
的优点在于,它是专门为在单个线程中使用而设计的,从而避免了其他实现带来的额外线程同步成本。因此,通常在安全敏感的上下文之外使用它是最好的内置随机实现。
在适用的情况下,在并发程序中使用
ThreadLocalRandom
而不是共享的Random
对象通常会减少开销和争用。
答案 5 :(得分:-2)
double random = Math.random();
double x = random*100;
int y = (int)x + 1; //Add 1 to change the range to 1 - 100 instead of 0 - 99
System.out.println("Random Number :");
System.out.println(y);