Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
ich habe mir ein array, dass 100 stellen hat, mit der random funktion zufällig belegen lassen. wie kann ich erreichen, dass jede zahl in dem gewählten bereich nur einmal vorkommt.
Naja, wenn es nur 100 Zahlen sind, dann leg ein zweites Array vom Typ boolean mit ebenfalls 100 Einträgen an und initalisier es mit false. Jedes mal, wenn du eine Zahl ziehst, schaust du einfach, ob der entsprechende Eintrag false ist, wenn ja, setz ihn auf true und übernehm die Zahl, falls er schon true ist, musst du nochmal ziehen.
Du kannst auch eine sortierte Folge von zufälligen Zahlen erstellen aus zufälligen Inkrementen >1. Danach würfelst du die Folge ein paar mal durch.
Mal im Pseudocode:
Code:
solange zähler < max. Anzahl
zahl = letzteZahl + random(50) + 1
letzteZahl = zahl
zahl in liste
++ zähler
folge durchwürfeln
Vorteil:
Lineare Laufzeit (andere Algorithmen hätten n² oder n log n)
Kein zusätzlicher Speicherbedarf
Nachteil:
Anzahl der benötigten "Durchwürfelungen" ist schwierig auszumachen.
Zahlenmenge ist nicht so "zufällig", als würde jede Zahl einzeln zufällig gewürfelt.
Du erstellst einfach ne menge in Java (Hashset) und füllst diese mit zufallszahlen bis diese die Grösse 100 hat. Der Vorteil hier ist, das jedes Element nur einmal vorkommt.
Dann gibt es die Funktion to Array, welches ein Array mit den Elementen der Menge liefert.