Programmier - Genies gesucht !!!

  • Hi Profi Programmierer !

    Ich selber programmiere erst seit drei Monaten und bin daher sehr oft auf die Hilfe anderer angewiesen. Nun ich habe ein Problem in JAVA (EPROG 3. Runde - Bsp. leicht). Ich habe alles fertigprogrammiert und meine Software läuft, aber er wirft um 0,002 ein falsches Ergebnis raus. Ich war im Informatiklabor, und habe die Tutoren gefragt, was der Grund für diese Ungenauigkeit sein könnte. Sie konnten mir nicht weiterhelfen, nach einer mehr als 3stündigen Suche !!! Also jetzt seits IHR gefragt ....

    Das Problem ist, dass mein Programm bei den Eingabedateien -1 1 0 1 nicht 0,681 sondern 0.683 rauswirft !!! Woran könnte dies liegen ??? Bitte hilfts mir !!! Hier sind echte Profis gefragt - wie ihr !!!

    BSP nR.: 3008 - Normalverteilung

    vielen vielen Dank schon im voraus ...

    mfg

    Schorsch

    PS.: Ich hänge die Datei Normal.java nun an und hoffe, dass ihr euch melden werdets !

    shitholing.com :)

  • Sind die ueblichen Verdaechtigen:

    * Fehler beim Implementieren vom Algorithmus (wobei das eher nicht so aussieht - der Fehler ist zu geringfuegig) und

    * Rundungsfehler bei float-Sachen

    ausgeschlossen? Hast du dir zeigen lassen, wie der EPROG-Beispieloutput erstellt wurde? Hast du schon andere Loesungen gefunden, die aehnlich falsche/richtige Ausgabe liefern?

    Hail Eris! All hail Discordia!

  • Hm, also das mit dem
    printFixed( ((( b - a ) / n ) * summe )* vorIntegral);
    is mir nicht klar. Aber das geht ja den Mathematischen Teil an. Is das auch korrekt? Weiters solltest du bei getT statt
    return untereGrenze + ( ( (obereGrenze - untereGrenze) / n) * k);
    return untereGrenze + ( ( (obereGrenze - untereGrenze) / n) * (float)k);
    und warum nimmst du bei "berechnen" für zwischen nciht auch einen float?

    sorry, hab mir ansonsten nicht genau den Algor. angesehn.
    mfg Zentor

  • ich denke die types sind in ordnung, bis auf die übliche
    float/double-ungenauigkeit, aber die ist sicher in der
    version mit der die i/o paare erstellt wurden auch nicht
    berücksichtigt worden. das mathe-zeug mag ich ma jetzt
    nicht überlegen, ich vermute dort liegt der hund begraben.

    mfg
    art

    "A nation that limits freedom in the name of security will have neither."
    - Thomas Jefferson, The United States of America's 3rd President

  • Hhmmmm .... !

    Habe euere Vorschläge mir angschaut, und habe sie ausprobiert leider ohne Erfolg. Der Wert ändert sich leider nicht, dieser bleibt 0.683 !

    bezüglich Output dateien ... habe ich nicht zeigen lassen ! Es kann (nehme ich an) sein, dass die Fehler gemacht haben und dass mein Wert eigentlich stimmt :)

    andere Lösungen (falsche oder richtige) habe ich leider noch nicht gefunden - habe aber nur auf der sourceforge seite geschaut ! wo könnte ich sonst noch suchen ?

    der mathematische Teil sollte laut Tutoren stimmen !!!

    shitholing.com :)

  • Zitat

    Original geschrieben von MaxAuthority
    hab mir den code nicht angeschaut, hoffe also nix falsches zu sagen, aber probier einmal double statt float.

    nah, das kanns ned sein... aber was es wirklich is weiß ich auch ned... :-/

    "A nation that limits freedom in the name of security will have neither."
    - Thomas Jefferson, The United States of America's 3rd President

  • So das Problem ist gelöst ...

    ... es hat sich herausgestellt, dass die Spezifikation falsch war !
    ... mein Programm ist richtig ! :)

    also vielen Dank für eure Antworte !

    mfg

    Schorsch

    PS.: es lebe Elvis :)

    shitholing.com :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!