10.4

zufallszahl

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

10.4
Hi,
kann mir jemand einen Tipp geben, wie ich die Wahrscheinlichkeiten für die höchste Ebene implementiere.
Ich verstehe nicht ganz, wieso die Methode nextboolean() verwendet werden soll; wäre nicht nextInt(int) sinnvoller?


return rand.nextInt(MAX_LEVELS); ergibt eine Gleichverteilung der Zufallszahlen (=levels). Das ist aber nicht gefordert.


In der Java API Random (Java Platform SE 7 ) steht:

Mit anderen Worten: nextBoolean() gibt true oder auch false mit gleicher Wahrscheinlichkeit zurück. Wie hoch ist dann als die Wahrscheinlichkeit, dass man ein true bekommt wenn man einmal nextBoolean() aufruft? Bzw. wie hoch ist die Wahrscheinlichkeit, dass man zwei oder auch drei trues hintereinander bei zweimaligen/dreimaligen aufrufen von nextBoolean() bekommt ?


Aber so ganz zufällig kann das nicht sein, denn es hängt ja von rand ab mit einem Wert von 4711?


In realen Rechnern gibt es natürlich “echten” keinen Zufall.
Der sogenannte Seed, der im Konstruktor übergeben wird, macht die Ausgaben vorhersagbar.
In dieser Aufgabe ist er bewusst fix gewählt, damit eure Ergebnisse vorhersagbar bleiben und wir das vernünftig testen können.
Normalerweise würde man natürlich was unkonstantes wählen, z.B. die Systemzeit zur Laufzeit.


Danke für die Antwort.

Irgendwie habe ich dennoch die Aufgabe noch nicht ganz so verstanden oder ich denke mir das zumindestens.

Die Listen die in der main erstellt werden, werden ja in add gefüllt. Dafür generiere ich ja per Zufall das “Level” auf welchem das item abgegeben wird. Wenn ich nun head.next[5] aufrufe das Beispielsweise das fünfte Level oder bin ich auf dem holzweg?


head.next[5]

ist das Nachfolgeelement des head auf Level 5, ja.


Wenn man clear anwendet, sollte dann size() null oder 0 zurückgeben?


size() kann nicht null zurueckgeben, weil null kein Integer ist, das sollte nach ca. 2 Monaten AuD eigentlich bekannt sein…


und dir sollte klar sein, dass Integer != int ist. Integer-Objekte können sehr wohl die null-Referenz haben;)

1 Like

Okay, ich gebe zu, in diesem Fall war die Formulierung vielleicht etwas unguenstig, aber was ich mit „Integer“ eigentlich meinte, war die Bezeichnung einer „ganzen Zahl“, nicht den Java-Datentyp… :wink:


Schön, dass man nicht der Einzige ist der sich mal selbst vergisst.


Darf man eine globale private Variable size einführen, um sich das Leben bei der Methode size() einfacher zu machen?


Eine Frage zu Rückgabe von addAll:

Soll addAll true zurückgebene wenn alle Items aus dem c eingefügt wurden?
Wenn ein item bereits enthalten ist in der Tabelle und man es nochmal einfügt, dann wird ja false zurückgegeben d.h. addAll soll dann auch false werden?

Viele Grüße

Smithers


Es steht ja in der Beschreibung im Java API, dass

true if this set changed as a result of the call.

Also würde ich sagen, dass du true zurückgeben solltest, sobald du auch nur ein Element einfügen konntest, weil es noch nicht vorhanden war.
Denn dann hat sich ja deine Menge geändert.


danke!

jetzt bleibt nur noch die Frage wie ich die länge von c bestimme :smiley:


Wofür brauchst du die?


Bitte den Skeleton dringend noch einmal anschauen.

Und hört bitte bitte mit der verdammten Globalisierung auf. :wink:
A.

Add-Methode
Hi,
kann jemand, der die Aufgabe schon richtig hat, vllt die Ausgabe der FastSortedList posten?
Ich habe bis jetzt das Folgende:

08 29361 → 22221
07 22221 → 13240
06 5086
05 21482 → 739 → 21157 → 25977
04 8360 → 1575 → 9438 → 12702 → 13197 → 16453
03 1575 → 13095 → 18747 → 20046 → 28919 → 29935 → 1128
02 24994 → 11179 → 27881 → 6502 → 152 → 4728 → 28479 → 29631
01 19467 → 24406 → 19185 → 10831 → 29349 → 6344 → 2765 → 10295 → 29354 → 308 → 2438 → 29793 → 29828
00 8422 → 20303 → 3004 → 5227 → 28068 → 2954 → 29430 → 435 → 2851 → 361 → 29636 → 128 → 262 → 78

An was kann das liegen, das die Reihenfolge noch nicht stimmt?
Es wäre super, wenn mit jemand da helfen könnte :slight_smile: