Alogrythmus für ein Array < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:57 Mo 06.09.2004 | Autor: | stalinus |
Hallo. Ich habe beim JAVA-Programieren ein kleines Problem:
Aufgabenstellung:
1. Es soll ein Array von sechs Elementen mit Zufallszahlen initialisiert werden. Hierfür ist Math.random() zu verwenden.
2. Die Zufallszahlen sind zwischen 1 und 45
3. Keine Zufallszahl darf zweimal vorkommen // dies ist mein Hauptproblem. Soll man so etwas mit einer while-Schleife bewerkstelligen???
Danke Freunde.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:39 Mo 06.09.2004 | Autor: | Lizard |
Ich kann zwar kein Java, aber das Problem ist trotzdem relativ einfach zu lösen. Eine while-Schleife wäre durchaus denkbar, in Kombination mit einer Funktion, die dir für eine gegebene Zahl und ein Array sagt, ob diese Zahl im Array enthalten ist:
while (ist_enhalten(x, array))
{
x = new_random_number()
}
insert (array, x)
Frag mich nicht wegen der Syntax, aber die Idee sollte rüberkommen.
Alternativ kannst du dir überlegen, für jede der 46 Zahlen zu speichern, ob sie schon einmal vorgekommen ist... wäre zwar eine ziemliche Platzverschwendung, wenn du das mit einem bool Array machst, aber eine Hashtabelle wäre z.B. kein übler Kompromiss, und schneller wird es dadurch auch. Für 6 Zahlen lohnt sich das natürlich nicht, aber für beliebig große Zahlenmengen könnte man sich so eine Lösung vielleicht vorstellen.
Sähe dann so aus, daß du praktisch ankreuzt, ob eine Zahl schonmal da war, oder nicht: [ |X| | | | ] (2 ist bereits vorgekommen).
Hoffe, das hilft... und BTW, du suchst einen "Algorithmus" :)
|
|
|
|