1和1之间的随机数

yruzcnhs  于 2021-09-13  发布在  Java
关注(0)|答案(3)|浏览(535)

这就是我要做的。我想生成介于-1和1之间的随机数,然后将生成的数字添加到特定的数字中。我想继续这个过程,直到总值达到另一个特定值。

int distance = 5;
int min = -1;
int max = 1;
int randomValue;

   while(distance <= 10){
       randomValue = (int)(Math.random()*(max-min+1)+min);
       distance = randomValue + distance;
       Log.d("Output", "value is"+distance);
   }

这将返回最多11个值。如何解决此问题

yebdmbv4

yebdmbv41#

你的情况应该是:

while(distance != 10) {
    // ...
}

根据您目前的状况,即使在 distance 已经十点了。

bnl4lu3b

bnl4lu3b2#

你可以试试这个,

public int getRandomNumberUsingInts(int min, int max) {
    Random random = new Random();
    return random.ints(min, max)
      .findFirst()
      .getAsInt();
}

如果将max 2和min-1放在一起,随机生成的数字将有3种可能,它们是:-1、0、1

rkkpypqq

rkkpypqq3#

你可以用 ThreadLocalRandom.current().nextInt(-1,2); 满足您的要求。这将生成介于-1和+1之间的随机数。因此循环读取为,

while(distance <= 10){
       randomValue = ThreadLocalRandom.current().nextInt(min,max+1);
       distance = randomValue + distance;
       Log.d("Output", "value is"+distance);
   }

唯一需要注意的是,您需要将max增加1,因为上限是独占的。

相关问题