Salve a tutti..
esiste una funzione random che crea numeri random compresi tra 1 e n tutti diversi tra loro??
Es.:
n = 4 ---> 3214
n = 6 ---> 534612
Grazir mille
Salve a tutti..
esiste una funzione random che crea numeri random compresi tra 1 e n tutti diversi tra loro??
Es.:
n = 4 ---> 3214
n = 6 ---> 534612
Grazir mille
Oppa
Math.random() crea numeri casuali tra 0 e 1
ma i duplicati li devi controllare tu
ok..volevo appunto spere se non c'era qualche istruizione che ritornava giā un numero come quello che serve a me!
Grazie
Oppa
Ho pensato ad una cosa del genere ma mi ripete anche i numeri..
Qualcuno sa indicarmi l'errore?? grazie mille!codice:String Num = ""; String Num2 = ""; for (int j = 0; j < NColonne; j++) { int kk = 0; while (kk != NColonne) { int rand = (int) (Math.random()*NColonne)+1; for (int a = 0; a < NColonne; a++) { Num = numero[a].getText(); Num2 = Integer.toString (rand); if (!(Num.equals(Num2))) { kk++; } else if (Num.equals(Num2)) { kk--; } } } System.out.println(Num2); }
Oppa
Non c'č nessun errore. Essendo "casuali" i numeri si possono anche ripetere... specie se l'intervallo č molto piccolo.
Spetta a te controllare che non ci siano doppioni e il codice che hai scritto non mi sembra garantire questa cosa.
Ciao.
"Perchč spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Infatti..il codice non da errori ma non garantisce l'univocitā dei numeri casuali..il problema č questo: cosa devo cambiare, aggiungere, togliere, ecc nel codice per fare il controllo!!
Grazie
Oppa
metti i numeri generati in un Vector e dopo la generazione controlla che non esista giā
tipo
Vector<Integer> numbers = new Vector<Integer>();
int rand = ...
while (numbers.contains(rand)) {
rand = ...
}
numbers.addElement(rand);
Appunto io faccio cosė! solo il controllo non č correttocodice:String Num = ""; String Num2 = ""; for (int j = 0; j < NColonne; j++) { int kk = 0; while (kk != NColonne) { int rand = (int) (Math.random()*NColonne)+1; for (int a = 0; a < NColonne; a++) { Num = numero[a].getText(); Num2 = Integer.toString (rand); if (!(Num.equals(Num2))) { kk++; } else if (Num.equals(Num2)) { kk--; } } numero[j].setText (Integer.ToString(Num2)); System.out.println(Num2); } }
Oppa
:master:
fai con il vector e vedrai che funziona
Mi crea un solo numero random!!! uffa!!!codice:Vector<Integer> numbers = new Vector<Integer>(); for (int j = 0; j < NColonne; j++) { int rand = (int) Math.random()*(NColonne)+1; while (numbers.contains(rand)) { rand = (int) Math.random()*(NColonne)+1; } System.out.println(rand); }
Grazie per l'aiuto!!!!
Oppa