我在使用隨機數生成器時遇到問題,或者無法完全理解概念。我想從0到x生成20個隨機數。使用隨機數生成器Java
Random ranNum= new Random();
int n = ranNum.nextInt(x) + 0;
這是我該怎麼辦呢?
我在使用隨機數生成器時遇到問題,或者無法完全理解概念。我想從0到x生成20個隨機數。使用隨機數生成器Java
Random ranNum= new Random();
int n = ranNum.nextInt(x) + 0;
這是我該怎麼辦呢?
下面創建值的ArrayList
0和x
之間,包容性,假設x
先前已被定義爲積極的int
。
ArrayList<Integer> randNums = new ArrayList<Integer>();
Random r = new Random();
for(int i = 0; i < 20; ++i) {
randNums.add(r.nextInt(x + 1));
}
然後,您可以通過ArrayList
迭代使用,但是你希望的值(印刷或後續計算)。
運行該代碼:
int x=100,n=0;
Random ranNum= new Random();
for(int i=0;i<20;i++)
{
n = ranNum.nextInt(x);
System.out.println(n);
}
X是隨機數的範圍內。這個計劃產生於100.If 0之間的隨機數,要指定一個最小值比你可以嘗試在循環中這一行:
n = ranNum.nextInt(x-min)+min;
我喜歡的Math.random(),則返回一個包含一個雙精度值正號,大於或等於0.0且小於1.0。
public int getNumber(int max) {
return (int) (Math.random() * max); //returns an int between 0 and max
}
public void main() {
for(int i = 0; i < 20; i++) {
System.out.println(getNumber(100));
}
}
打印20個0和100之間的數字約的Math.random()更多https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html
你的第一個陳述是錯誤的,就像你的'getNumber'方法中的註釋一樣。 'Math.random()'的上限不是0.9,乘以'max'並且轉換爲'int'永遠不會產生'max'。 – pjs
是的。如果您需要1-10之間的數字,則使用(Math.random()* 10)+ 1.如果您想要0-9之間的數字,請使用(Math.random()* 10),如果您想要0-10之間的數字,使用(Math.random()* 10 + 1)+ 1.其中10是最大值。這就是爲什麼我把它放在一個方法。不知道你想要什麼 –
使用'nextInt'會更好,這就是它的目的。注意*在你的答案*中,根據上限是包含性的還是排他性的,這些事情需要以不同的方式處理,這將使它成爲更好的答案。不要在諸如'Math.random()'「之類的錯誤語句中返回一個介於0.0和0.9之間的雙精度值」是最重要的。 – pjs
有了這個,你創建20張隨機數。我仍然不明白你是否想在你的隨機數字中有重複。那麼,試試這個:
static Random r = new Random();
private static final int number = 5;
public static void main(String[] args) {
for(int i =0; i<20;i++){
System.out.println(r.nextInt(number));
}
}
取決於你需要的數字。
要打印出來,你會:
Random randNum = new Random();
for(int x = 0; x < 20; x++){
System.out.println(randNum.nextInt(20));
}
放在ArrayList和打印出:
ArrayList<Integer> list = new ArrayList<Integer>();
Random randNum = new Random();
for(int x = 0; x < 20; x++){
list.add(randNum.nextInt(x)); //must set x to set maximum number it can be
}
for(int a : list)
System.out.println(a);
1)看起來像Java,是否正確?如果是這樣,請將其添加到您的代碼中。 2)你想要結果是包容還是排除'x'? 3)你認爲通過加零來完成什麼? 4)你有沒有試過你建議的?如果沒有,爲什麼不,如果是的話,那你不希望看到什麼? – pjs
對不起,上限是包含的 – cargoboom
我真的不知道爲什麼我加了零,我在我的程序中試了一下,我寫的真的沒有工作。 – cargoboom