我想知道如何在兩個給定值之間生成一個隨機數。Java在兩個給定值之間生成隨機數
我能夠產生具有以下的隨機數:
Random r = new Random();
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
a[i][j] = r.nextInt();
}
}
但是,我怎麼能生成0和100(含)之間的隨機數?
謝謝大家。
我想知道如何在兩個給定值之間生成一個隨機數。Java在兩個給定值之間生成隨機數
我能夠產生具有以下的隨機數:
Random r = new Random();
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
a[i][j] = r.nextInt();
}
}
但是,我怎麼能生成0和100(含)之間的隨機數?
謝謝大家。
您可以使用例如r.nextInt(101)
對於一個更通用的 「在數量上二者之間」 使用:
Random r = new Random();
int Low = 10;
int High = 100;
int Result = r.nextInt(High-Low) + Low;
這給你一個隨機數在10(含)和100(獨家)
呃......
int Random = (int)(Math.random()*100);
如果你需要生成一個以上的值,那麼就使用 for循環爲
for (int i = 1; i <= 10 ; i++)
{
int Random = (int)(Math.random()*100);
System.out.println(Random);
}
如果你想指定一個更像樣的範圍,比如從10到100(都是ar在範圍E)
這樣的代碼將是:
int Random =10 + (int)(Math.random()*(91));
/* int Random = (min.value) + (int)(Math.random()* (Max - Min + 1));
*Where min is the smallest value You want to be the smallest number possible to
generate and Max is the biggest possible number to generate*/
Java沒有兩個值之間的隨機數發生器在同樣的方式,Python做。它實際上只需要一個值來生成隨機數。那麼你需要做的是給生成的數字添加一個一定的數字,這將導致數字在一個範圍內。例如:
package RandGen;
import java.util.Random;
public class RandGen {
public static Random numGen =new Random();
public static int RandNum(){
int rand = Math.abs((100)+numGen.nextInt(100));
return rand;
}
public static void main(String[]Args){
System.out.println(RandNum());
}
}
這個程序的功能完全位於6號線(帶有開始「INT蘭特......」請注意,Math.abs()只是將數轉換爲絕對值。 ,並且它被聲明爲一個int,這並不重要,第一個(100)是我加入隨機數字的數字,這意味着新的輸出數字將是隨機數字+100。numGen.nextInt()是隨機數本身的值,因爲我把(100)放在它的圓括號裏,它是1到100之間的任何數字。所以當我加上100時,它就成爲101和200之間的數字。你實際上並不生成數字介於100和200之間,則您將添加到1和100之間的數字。
也可以嘗試以下:
public class RandomInt {
public static void main(String[] args) {
int n1 = Integer.parseInt(args[0]);
int n2 = Integer.parseInt(args[1]);
double Random;
if (n1 != n2)
{
if (n1 > n2)
{
Random = n2 + (Math.random() * (n1 - n2));
System.out.println("Your random number is: " + Random);
}
else
{
Random = n1 + (Math.random() * (n2 - n1));
System.out.println("Your random number is: " +Random);
}
} else {
System.out.println("Please provide valid Range " +n1+ " " +n2+ " are equal numbers.");
}
}
}
假設上層是上限和更低的下限,那麼你可以做一個隨機數R,這兩個界限之間有:
int r = (int) (Math.random() * (upper - lower)) + lower;
這是排除在上面 – Rizon 2016-11-15 21:52:42
int r =(Math.random()*(upper-lower))+ lower;它將包容性較低。這可能會有所幫助。 – 2016-11-22 18:59:06
這樣,
Random random = new Random();
int randomNumber = random.nextInt(upperBound - lowerBound) + lowerBound;
謝謝你 - 我已經試過了,但它似乎並沒有工作。我使用從0到100(含)的隨機數來填充多維數組;當嘗試它時,它會以極大和極小的數字填充數組。例如,-3.76556749E8 3.0207573E8 2.033182079E9 -6.86227134E8。 – MusTheDataGuy 2011-03-11 10:19:11
顯示其餘的代碼。什麼是'了'。 – Erik 2011-03-11 10:20:39
謝謝,我已經設法讓這個工作現在。非常感謝! – MusTheDataGuy 2011-03-11 10:21:27