Praktikum 2 - Wurzelberechnung von Ganzzahlen

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

Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von mister_tt »

Moin,

Versuche gerade, hinter den BinarySearch-Algo zu kommen. Dafür gucke ich mir den zunächst mal auf Ganzzahlen an. Habe das Ding jetzt erstmal in Java implementiert... Dabei fällt mir auf, dass der Algo nur funktioniert, wenn man beim Vergleich <= und nicht < benutzt (wenn man entscheidet, ob bi gleich 0 oder gleich 1 sein muss)...
Wenn ich da '<' benutze, bekomme ich sqrt(9) = 2 raus und sqrt(16) = 3 raus usw... Und das ist ja mal offensichtlich falsch... Wenn ich keine Quadratzahlen eingebe, kommen identische Ergebnisse raus (egal ob ich < oder <= benutze)...

Für Hilfe wäre ich dankbar.
Grüße,
Simon

swezorke
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 10. Mai 2009 19:28

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von swezorke »

Du kannst dir das folgendermaßen vorstellen:

Dein bi ist so ein Wert auf den du was aufaddierst und schaust, ob das bi^2 immer noch in dein x "reinpasst".
Das tut es genau dann, wenn bi^2 <= x.
Wenn du jetzt bsp. x=4 hast, dann prüfst du ja mal, ob bi = 2^2 "hineinpasst". Mit einem < würdest du feststellen, dass nicht und letztlich als Ergebnis 1 herausbekommen.
Tatsächlich könntest du, wenn du feststellst, dass bi^2 = x, die gesamte Schleife abbrechen, weil du ja bereits das Ergebnis (bi) gefunden hast.

Hoffe das bringt dich einigermaßen weiter.

Gruß Stephan

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

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von mister_tt »

Ich glaube ich verstehe, worauf du hinaus willst... Wenn ich das mit einem < implementiere, muss ich halt innerhalb der if-Abfrage nochmal auf Gleichheit prüfen und ggf. schon das Ergebnis zurückgeben... Die Reihenfolge ist da natürlich wurscht, wobei das mit dem return effizienter wäre...

Nichtsdestotrotz ist dann m.E. die Erklärung in der Aufgabenstellung falsch. Denn da wird ein '<' benutzt, ohne dass die Rede von einer Prüfung auf Gleichheit ist und das funktioniert m.E. nicht.

Viele Grüße und Danke,
Simon

Benutzeravatar
hm
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 26. Okt 2004 23:51
Wohnort: DA

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von hm »

Ein Vergleich mit \(\le\) loest doch die Probleme. Meinem Verstaendnis nach handelt es sich um einen Typo - oder hat jemand ein Gegenbeispiel bzw. ich was falsch verstanden?
Quis custodiet ipsos custodes?
(Decimus Iunius Iuvenalis, Satirae VI)

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

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von mister_tt »

Ja das habe ich ja geschrieben - mit <= funzt es...

Ein Typo... ??? ... :?:

Benutzeravatar
hm
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 26. Okt 2004 23:51
Wohnort: DA

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von hm »

Rechtschreibfehler...
Quis custodiet ipsos custodes?
(Decimus Iunius Iuvenalis, Satirae VI)

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

Re: Praktikum 2 - Wurzelberechnung von Ganzzahlen

Beitrag von mister_tt »

:idea: achso ^^

Antworten

Zurück zu „Archiv“