![](/img/trans.png)
[英]Generating random numbers in a range (0-4) with the constraint that each number can only be generated a certain amount of times?
[英]Populate an array with random numbers in the range of 0-4 with an increment of 0.5
因此,我已經初始化了一個大小為10的數組,並嘗試使用for循環以0.5的增量在0.5-4范圍內填充隨機數。 這是我最初的嘗試:
double increment = 0.5;
double[] numbers = new double[10];
Random nextVal = new Random();
double value = 0;
for (int i = 0;i < numbers.length;i++){
value = 0.5 + nextVal.nextInt(5);
while (value == 4.5){
value = value - increment;
}
numbers[i] = value;
}
但是,這只會將范圍內的隨機整數值加0.5,而不是增加0.5。
也許因為int
和double
變量的不同,for循環不是正確的方法...不確定。 任何提示或幫助將是巨大的! 謝謝
根據您的評論:
double[] numbers = new double[10];
Random random = new Random();
for (int i = 0; i < 10; i++) {
numbers[i] = 0.5 + (random.nextInt(8)) * 0.5;
System.out.println(numbers[i]);
}
random.nextInt(8)
從[0, 8)
random.nextInt(8)
選擇一個整數[0, 8)
然后將其乘以0.5
...這就是從[0, 4)
獲得數字的方式。 稍后您添加0.5
,這將為您提供[0.5, 4.5)
一個數字。 您可以重復10
次以填充數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.