P9: Primzahlen und andere ungenaue Informationen

Benutzeravatar
Wang Tang
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 5. Dez 2006 17:57

P9: Primzahlen und andere ungenaue Informationen

Beitrag von Wang Tang »

Code: Alles auswählen

Your Hashtable has not the given initial size! Given initial size is already a prime number! Your HashtableSize is 2
Seh ich das richtig, dass der 2 nicht als Primzahl ansieht, @Veranstalter?

Code: Alles auswählen

Your hashtable accepts an initial tablesize lower than 1. This is forbidden, please throw an IllegalArgumentException.
Davon steht auch nichts in der Aufgabenstellung, solange die nächste Primzahl (in dem Fall 2) genommen wird, ist laut Spezifikation... nichts gesagt.

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Es sieht eher so aus, als würde er 1 als Primzahl ansehen?! Das wäre aber ein pöser Fehler auf Testerseite.

Benutzeravatar
Wang Tang
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 5. Dez 2006 17:57

Beitrag von Wang Tang »

Stimmt HolgerF, so hat die Fehlermeldung mehr Sinn. Wär aber wie du schon bemerkt hast auch falsch.

Benutzeravatar
R|ng0
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 24. Dez 2006 19:17

Re: P9: Primzahlen und andere ungenaue Informationen

Beitrag von R|ng0 »

Wang Tang hat geschrieben:

Code: Alles auswählen

Your Hashtable has not the given initial size! Given initial size is already a prime number! Your HashtableSize is 2
Seh ich das richtig, dass der 2 nicht als Primzahl ansieht, @Veranstalter?
Dieser Fehler kann auch an dir liegen.
Bsp:
initialSize = 11; // 11 ist Primzahl
//--> fehler in deiner Funktion --->
tabelSize = 2;

System.out.println("Your Hashtable has not the given initial size! Given initial size is already a prime number! Your HashtableSize is" + tableSize);

Das ergibt dann diese Fehlermeldung ohne, dass es gedacht hat, dass 2 keine ist!?

Wang Tang hat geschrieben:

Code: Alles auswählen

Your hashtable accepts an initial tablesize lower than 1. This is forbidden, please throw an IllegalArgumentException.
Davon steht auch nichts in der Aufgabenstellung, solange die nächste Primzahl (in dem Fall 2) genommen wird, ist laut Spezifikation... nichts gesagt.
Das hatte ich einen Tutor gefragt, der mich direkt zu C. Wach verwiesen hat, da er nicht weiß, was das Testsystem testet.



Aber die ganze Sache würde mich auch mal interessieren, da die Aufgabenstellung wirklich nicht so besonders klar definiert ist im Bezug auf die Definitionsbereiche.

Hyst
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 5. Mai 2007 22:20

Beitrag von Hyst »

naja der test heisst:
testInitializing01
gehe also stark davon aus, dass 01 als PRIMZAHL angesehen wird

(mal wieder) schlecht...

genauso wie: "key must be positive"
anscheinend wird die 0 als positiv gezählt.

Benutzeravatar
mcreichelt
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 2. Mai 2007 19:23
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von mcreichelt »

Hiho,
Hyst hat geschrieben:naja der test heisst:
testInitializing01
gehe also stark davon aus, dass 01 als PRIMZAHL angesehen wird
allerdings - die 2 wird bei mir gleichfalls als Fehler erkannt. Wohl ein kleiner (aber blöder) Fehler im Testatsystem.
Hyst hat geschrieben:genauso wie: "key must be positive"
anscheinend wird die 0 als positiv gezählt.
Naja - 0 ist nicht-negativ, also ist sie positiv. Oder? ;-)


Grüße
Marc
Den Benutzern anderer Betriebssysteme wie Linux oder OS/2 unterstellen
wir die nötigen Grundkenntnisse [...]
-- "T-DSL Montage- und Betriebsanleitung", Kapitel 6

Benutzeravatar
Wang Tang
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 5. Dez 2006 17:57

Beitrag von Wang Tang »

@Ringo:
Dieser Fehler kann auch an dir liegen.
Bsp:
initialSize = 11; // 11 ist Primzahl
//--> fehler in deiner Funktion --->
tabelSize = 2;
Hab ich eigentlich gut geprüft, dürfte nicht daran liegen.

edit:
@Marc:
0 ist 0. Nicht positiv und nicht negativ. Dadrauf muss ich jetzt aber mal bestehen ;)

Hyst
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 5. Mai 2007 22:20

Beitrag von Hyst »

0 ist weder positiv noch negativ

oder so:
nicht negativ != positiv

Benutzeravatar
Martin K
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 110
Registriert: 13. Okt 2006 17:56

Beitrag von Martin K »

Also ich muss mich jetzt doch mal ganz heftig und unfreundlich bei den Veranstaltern beschweren, zumindest bei denen, die für dieses Praktikum verantwortlich sind:
Wir sollen plötzlich Sachen machen, von denen kein Wörtchen in der Aufgabenstellung steht:
Testcase: testConstructor took 0,009 sec
FAILED
Your hashtable accepts an extensionFactor lower then 2. This is forbidden, please throw an IllegalArgumentException.
Sollen wir jetzt unser Praktikum nach felgeschlagenen Tests implementieren anstatt nach der Aufgabenstellung, nur weil die da ungenau ist?

Ein extensionFactor z.B. von 1 macht übrigens durchaus Sinn, wenn man beispielsweise die nächste HÖHERE Primzahl beim Vergrößern der HashTable sucht.
So habe ich es zumindest aus der Aufgabenstellung herausgelesen, aber auch das war sehr ungenau formuliert.
Aber darüber gibts hier glaub ich auch schon ne Diskussion...

//Edit:
Rechtschreibfehler korrigiert
Gäbe es die letzte Minute nicht,
so würde niemals etwas fertig.

- Mark Twain

Benutzeravatar
mnoll
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 17. Jul 2006 23:03

Beitrag von mnoll »

Als Analogie... "Raten nach Testaten" :D. Bei mir schlägt der Test jedenfals auch fehl. Davon mal abgesehen ist für die Initialisierung nirgendwo die Rede, dass keine negativen Zahlen erlaubt wären. Schließlich suchen wir ja egal welche Übergabe die nächste Primzahl, und das geht bei allen negativen Zahlen genauso gut wie bei positiven.

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Wo wir übrigens grad beim Meckern über das Praktikum sind: Warum wurde eigentlich jetzt, beim letzten Praktikum, plötzlich die bestehende Praxis geändert und IllegalArgumentException bei Übergabe von null gefordert?

Hyst
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 5. Mai 2007 22:20

Beitrag von Hyst »

weil: inkonsistent

Benutzeravatar
mnoll
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 17. Jul 2006 23:03

Beitrag von mnoll »

Naja da es eine Übergabe an eine Funktion ist, macht eine IllegalArgumentException schon mehr Sinn als eine NullPointerException. Da würde ich dem Praktikumsersteller Recht geben.

X-Out
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 14. Mai 2007 19:06

Beitrag von X-Out »

na ja findet ihr nicht auch, dass selbst die aufgaben in nem ganz andren stil formuliert wurden? ich vermute, dass diesmal jemand anderes für die aufgabenstellung verantwortlich ist.

aber andre frage, zur kollisionsfunktion:
kann es sein, dass sie nich viel sinn macht? sie liefert doch nur werte über key/primzahl, d.h. wenn ich im extremfall mit key/primzahl das letzte element in der liste bzw array erreiche, dass aber schon belegt ist -> er wird nie einen freien platz finden!?!?

solln wir dann praktisch von vorn losgehen oder hab ich da was falsch verstanden?

btw, hab den fehler mit der 2 natürlich auch...

-- zur kollisionsunktion - hab natürlich einen fehler bei der klammerung gemacht :( --
Zuletzt geändert von X-Out am 5. Jul 2007 21:14, insgesamt 1-mal geändert.

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Naja da es eine Übergabe an eine Funktion ist, macht eine IllegalArgumentException schon mehr Sinn als eine NullPointerException. Da würde ich dem Praktikumsersteller Recht geben.
Darüber kann man streiten. Ich finde eine NullPointerException klarer, weil sie unmittelbar darauf hinweist, was man gerade verbockt hat. IllegalArgument ist für mich eigentlich eher ein tatsächliches Argument, das benötigten Kriterien nicht entspricht (ich sehe in diesem Sinne die Eingabe von null eher als Nicht-Eingabe eines Arguments). In jedem Fall wäre die NullPointerException wieder implizit geworfen worden, was imho eleganter ist. Darüber hinaus war es bestehende Spruchpraxis, die so auf der allgemeinen Hinweisseite stand und steht. Es ist einfach unnötige, das im letzten Praktikum noch über den Haufen zu werfen.

(Aber ok, das mag Klugscheißerei sein, nicht so wichtig.)

Antworten

Zurück zu „Archiv“