
Bug in NextPrimeNumber in Übung11
- HerrDerFlammen
- Mausschubser
- Beiträge: 79
- Registriert: 16. Okt 2006 17:30
- Wohnort: Dreieich
- Kontaktdaten:
Bug in NextPrimeNumber in Übung11
Dem erstellenden Autor ist wohl leider ein kleiner Fehler passiert. Für Eingaben <3 gibt diese Methode als nächste Primzahl 2 zurück, was bekanntlicherweise Unsinn ist 

Das Lehren soll so sein, dass das Dargebotene als wertvolles Geschenk und nicht als saure Pflicht empfunden wird.
(Albert Einstein)
(Albert Einstein)
Naja, es ist zugegeben ein bisschen missverständlich. Aber ich geh da immer von der mathematischen Sichtweise aus, und da würde im anderen Fall explizit stehen "die nächste Primzahl, die größer als s ist".
Zweiter Hinweis: Man braucht das im Praktikum 9, und da explizit in der Funktion, dass die Primzahl gleich s sein kann.
Zweiter Hinweis: Man braucht das im Praktikum 9, und da explizit in der Funktion, dass die Primzahl gleich s sein kann.
- HerrDerFlammen
- Mausschubser
- Beiträge: 79
- Registriert: 16. Okt 2006 17:30
- Wohnort: Dreieich
- Kontaktdaten:
Würde ich so nicht sagen. Besipielsweise istHolgerF hat geschrieben: Zweiter Hinweis: Man braucht das im Praktikum 9, und da explizit in der Funktion, dass die Primzahl gleich s sein kann.
deine Tabellengroesse zu beginn 2 und dein extensionfaktor zu beginn 1.
Du fügst das erste element ein und es ändert sich nix. Du fügst nun das zweite ein und musst deine tabelle vergrößern. Also aktuelle Größe mal extensionfaktor ist wieder 2. Jetzt berechnest du die nächste Primzahl, und wenn du die Schranke s mit reinnimmst kommt dann also für 2 wieder 2 raus, bedeutet die Tabelle vergrößert sich garnicht. Ist doch nicht besonders gut oder?
Ab einer unteren Schranke heißt für mich jedenfalls, dass die Schranke nicht dazu gehört.
Das Lehren soll so sein, dass das Dargebotene als wertvolles Geschenk und nicht als saure Pflicht empfunden wird.
(Albert Einstein)
(Albert Einstein)
-
- Computerversteher
- Beiträge: 370
- Registriert: 15. Okt 2006 18:28
- Wohnort: Wiesbaden
- Kontaktdaten:
- HerrDerFlammen
- Mausschubser
- Beiträge: 79
- Registriert: 16. Okt 2006 17:30
- Wohnort: Dreieich
- Kontaktdaten:
Ich finds sehr interessant, auf was für nem vulgärniveau die diskussion angekommen ist.
Ob ein extensionFactor von 1 nun sinnig oder nicht ist, er ist jedenfalls laut aufgabenstellung nicht verboten.
Kleiner Auszug:
* If your hashtable has to grow, multiply the size of your hashtable
* with extensionFactor. Then use the next prime greater than that product.
Das klappt doch wie schon gesagt auch mit einem extensionFactor von 1.
Vielleicht sollte sich mal jemand offizielles dazu äußern, bevor es jetzt gleich Beschimpfungen regnet.
Ob ein extensionFactor von 1 nun sinnig oder nicht ist, er ist jedenfalls laut aufgabenstellung nicht verboten.
Kleiner Auszug:
* If your hashtable has to grow, multiply the size of your hashtable
* with extensionFactor. Then use the next prime greater than that product.
Das klappt doch wie schon gesagt auch mit einem extensionFactor von 1.
Vielleicht sollte sich mal jemand offizielles dazu äußern, bevor es jetzt gleich Beschimpfungen regnet.
Das Lehren soll so sein, dass das Dargebotene als wertvolles Geschenk und nicht als saure Pflicht empfunden wird.
(Albert Einstein)
(Albert Einstein)
Dann gib doch, wie gesagt, einfach das Produkt + 1 an deine Suchfunktion (Produkte selbst sind ja ohnehin nie prim, es sei denn halt, der eine Multiplikand ist 1).
Bei der Initialgröße sollst du z. B. hingegen wieder von der Initialgröße selbst ausgehen, eine Initialgröße von 2 ist ausdrücklich zulässig.
Du kannst also natürlich auch gerne eine Funktion schreiben, die die nächste GRÖSSERE Primzahl sucht. Dann musst du halt initial-1 übergeben, läuft aufs selbe hinaus. Fürs Praktikum ist das einerlei.
Bei der Initialgröße sollst du z. B. hingegen wieder von der Initialgröße selbst ausgehen, eine Initialgröße von 2 ist ausdrücklich zulässig.
Du kannst also natürlich auch gerne eine Funktion schreiben, die die nächste GRÖSSERE Primzahl sucht. Dann musst du halt initial-1 übergeben, läuft aufs selbe hinaus. Fürs Praktikum ist das einerlei.
seh ich ähnlich...
tja solche missverständnisse treten eben auf wenn (mal wieder) die aufgabenstellung schlecht formuliert wurde.
ich hab es auch so interpretiert, dass extentionfaktor <= 1 keinen sinn macht... in der aufgabenstellung steht:
(kann es sein, dass herr wach keine lust mehr hat irgendwelche fragen zu praktika oder übungen zu beantworten???... hab irgendwie lange nichts mehr von ihm gelesen)
tja solche missverständnisse treten eben auf wenn (mal wieder) die aufgabenstellung schlecht formuliert wurde.
ich hab es auch so interpretiert, dass extentionfaktor <= 1 keinen sinn macht... in der aufgabenstellung steht:
mir sagt das, dass mein faktor > 1 sein muss, da sonst meine berechnung zur nächsten unteren schranke wieder eine primzahl liefert. und das wäre ja dann ein erlaubter wert. Außerdem soll sich die Hashtabelle um einen faktor VERGRÖßERN.. das tut sie mit 1 nicht...., soll sich Ihre Hashtabelle um einen (im Konstruktor) gegebenen Faktor X dynamisch vergößern. Da nur Primzahlenzahlen als Tabellengröße erlaubt sind, mussen Sie
die nächst höhere Primzahl finden.
(kann es sein, dass herr wach keine lust mehr hat irgendwelche fragen zu praktika oder übungen zu beantworten???... hab irgendwie lange nichts mehr von ihm gelesen)
Hyst hat geschrieben:seh ich ähnlich...
tja solche missverständnisse treten eben auf wenn (mal wieder) die aufgabenstellung schlecht formuliert wurde.
Eingabe 7, Extensionfaktor 1 -> nächst höhere Primzahl = 11Aufgabenstellung hat geschrieben: Da nur Primzahlen als Tabellengröße erlaubt sind, müssen Sie die nächst höhere Primzahl finden
wobei man schon diskutieren kann ob 1 dazu gehöhrt oder nicht, aber zumindestens dass mit der nächsten Primzahl sollte klar sein, dass wenn man eine Primzahl als Eingabe hat, nicht die gleiche Primzahl zurückgegeben wird sonder halt die nächst größere
Sollte es anders sein, dann müsst ich noch nen Patch in mein Prak einspielen ;>
Edit:
Habe grad im Quellcode Kommentar gesehen: "* If initialSize is not prime, use the next prime greater than initialSize to
* initialize your hash table." was wiederrum heißen würde nicht nach der nächsten zu suchen. Ich würde sagen
(aufgabenstellung.pdf).compareTo(aufgabenstellungQuellcode)!=0 ^^
Zuletzt geändert von qveXx am 5. Jul 2007 17:29, insgesamt 1-mal geändert.
-
- Computerversteher
- Beiträge: 370
- Registriert: 15. Okt 2006 18:28
- Wohnort: Wiesbaden
- Kontaktdaten: