Java véletlen? (többi lent)
A tömbös megoldás igazából elég elegáns és ami azt illeti gyors is. Egyetlen baj van vele, pont az, amivel te is szembesültél; hogy csak akkor működik ha belátható mennyiségű és számot tárolsz benne. A 4 számjegyes problémával egy kombinatorikai robbanás jön be, amit már elég körülményes kiküszöbölni.
A megoldás.
1. Generálj egy számot
2. Generálj egy számot, addig amíg az nem egyenlő az előzővel.
3. Generálj egy számot, addig amíg az nem egyenlő az előző kettővel.
4. Generálj egy számot, addig amíg az nem egyenlő az előző hárommal.
ezt egy for ciklussal meg is lehet oldani...
import java.util.ArrayList;
import java.util.Random;
public class kodgen {
ArrayList<String> list;
public kodgen(){
list=new ArrayList<String>();
for(int a=1;a<10;++a)
for(int b=1;b<10;++b)
for(int c=1;c<10;++c)
for(int d=1;d<10;++d){
if(a!=b && a!=c && a!=d && b!=c && b!=d && c!=d){
list.add(String.valueOf(a)+String.valueOf(b)+String.valueOf(c)+String.valueOf(d));
}
}
}
public String getRand(){
return list.get(new Random().nextInt(list.size()));
}
public static void main(String[] args){
kodgen r=new kodgen();
System.out.println(r.getRand());
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!