Problem1: fewestSatCoverage()

Benutzeravatar
Gnomix
Computerversteher
Computerversteher
Beiträge: 306
Registriert: 31. Okt 2005 08:44

Problem1: fewestSatCoverage()

Beitrag von Gnomix »

Ich habe ein Problem mit fewestSatCoverage().
Bei mir laufen die Tests testTwoHandover, testThreeHandover und testRandom in einen Fehler.
Bei allen habe ich immer einen Satelliten zu viel.

Ich gehe rekursiv alle Möglichen Satellitenkonstellationen durch und merke mir immer die kleinste gültige Belegung.
Wobei ich immer nur so weit gehe, wie ich einen gültige Belegung habe.
Ob eine Belegung gültig ist, ermittle ich über die Funktion intervalCovered.

Hat jemand auch dieses Problem ?
Oder einen Tip, was ich machen könnte ?

fetzer
Kernelcompilierer
Kernelcompilierer
Beiträge: 522
Registriert: 1. Okt 2008 17:18

Re: Problem1: fewestSatCoverage()

Beitrag von fetzer »

Vergleichst du denn auch die Anzahl der Satelliten korrekt, d.h. >=3 statt >3?

Benutzeravatar
leviathan
Computerversteher
Computerversteher
Beiträge: 307
Registriert: 30. Jul 2008 14:26
Wohnort: Darmstadt
Kontaktdaten:

Re: Problem1: fewestSatCoverage()

Beitrag von leviathan »

Ich hatte ein ähnliches Problem. Lag daran, dass ich nicht beachtet habe, dass Java beim Zuweisen einen Pointer erstellt, anstatt eine Kopie des Obejkts zu machen; somit war bei mir die Variable mit der kürzesten Lösung fest mit einer anderen verlinkt und es kam durch die Rekursion immer die ursprüngliche Menge an Satelliten raus, anstatt der korrekt gefundenen verkürzten. Das Arbeiten mit " = new HashSet<String>(daten);" hat es dann gelöst.
Ein Programmierer hat immer eine Lösung. Die passt nur nicht immer zum Problem.

Hiwi für Weiterentwicklung des Lernportals (Moodle).

Benutzeravatar
Ibliss
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 209
Registriert: 11. Apr 2008 04:08
Wohnort: Darmstadt

Re: Problem1: fewestSatCoverage()

Beitrag von Ibliss »

Dürfte man in der Klasse Surveilance noch ein Feld schreiben, oder eine neue Methode einführen zur speicherung der Zwischenlösungen o. Ä.?
"Honesty is the first chapter in the book of wisdom.
Alien vs Predator 2 is the movie version of that book."

philippD.
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 1. Okt 2008 12:50

Re: Problem1: fewestSatCoverage()

Beitrag von philippD. »

Da bleibt mir wohl nix anderes übrig als erstmal n dickes danke an Leviathan zu schicken ^^

VMann
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 16. Apr 2009 11:51

Re: Problem1: fewestSatCoverage()

Beitrag von VMann »

Ibliss hat geschrieben:Dürfte man in der Klasse Surveilance noch ein Feld schreiben, oder eine neue Methode einführen zur speicherung der Zwischenlösungen o. Ä.?
soweit ich das sehen kann, kannst du mit der Klasse Surveilance machen was du willst, solange sie die Tests erfüllt.

aber deine Zwischenlösung muss ja nicht "global" gespeichert werden, falls du das meinst, sie wird ja nur in fewestSatCoverage() benötigt, danach hat sie keine Aufgabe mehr.

Generell dürfte das Schreiben von Hilfsmethoden, die du in deinen vorgegebenen Methoden aufrufst,eigentlich immer erlaubt und oft sinnvoll sein.
(Ich habe bei der Methode keine gemacht und es funktioniert trotzdem)
Computer tun nicht das, was du von ihnen willst, sie tun das, was du ihnen sagst.

Benutzeravatar
Ibliss
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 209
Registriert: 11. Apr 2008 04:08
Wohnort: Darmstadt

Re: Problem1: fewestSatCoverage()

Beitrag von Ibliss »

Ich habe erstens versucht das ganze klassisch durch Rekursion zu lösen. Es klappte nicht, mir gingen die Daten verloren. Als ich endlich 3-4 Stunden daran verbracht habe meine Daten vor dem Ambiss namens Rekursiver Aufruf zu retten und trotzdem scheiterte, vielleich war ich zu müde, versuchte ich den Ganzen Kram in einem Feld zu speichern. Es kam aber dazu dass ich nicht wusste wie ich mein Feld vor jedem Test ausleeren kann, ohne die Testklasse zu ändern. Dann machte ich das mit einer Hilfsprozedur, Rekursiver Aufruf mit einem Akummulator. War in 10 Minuten fertig. FewestSatellitesTest läuft in 0,312 Sekunden. Ich würde gerne meine Lösung mit euren Austauschen, nur um zu sehen wie sie das ohne Hilfmethoden gelöst haben. Ah ja, mir hat auch 2-3 mal beim ersten Ansatz fail-fast Iterator auf die Finger gehauen.
"Honesty is the first chapter in the book of wisdom.
Alien vs Predator 2 is the movie version of that book."

fetzer
Kernelcompilierer
Kernelcompilierer
Beiträge: 522
Registriert: 1. Okt 2008 17:18

Re: Problem1: fewestSatCoverage()

Beitrag von fetzer »

Wartet doch noch bis Montag mit dem Austauschen, dann kann es auch keine Probleme geben.

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Problem1: fewestSatCoverage()

Beitrag von mister_tt »

fetzer hat geschrieben:Vergleichst du denn auch die Anzahl der Satelliten korrekt, d.h. >=3 statt >3?
Vielen vielen Dank für den Hinweis!!! Jetzt muss ich nur noch den *** testRandom hinbekommen ;D

Antworten

Zurück zu „Archiv“