1和1之间的随机数

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

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

  1. int distance = 5;
  2. int min = -1;
  3. int max = 1;
  4. int randomValue;
  5. while(distance <= 10){
  6. randomValue = (int)(Math.random()*(max-min+1)+min);
  7. distance = randomValue + distance;
  8. Log.d("Output", "value is"+distance);
  9. }

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

yebdmbv4

yebdmbv41#

你的情况应该是:

  1. while(distance != 10) {
  2. // ...
  3. }

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

bnl4lu3b

bnl4lu3b2#

你可以试试这个,

  1. public int getRandomNumberUsingInts(int min, int max) {
  2. Random random = new Random();
  3. return random.ints(min, max)
  4. .findFirst()
  5. .getAsInt();
  6. }

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

rkkpypqq

rkkpypqq3#

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

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

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

相关问题