dezimal in binär umwandeln < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:30 Fr 14.04.2006 | Autor: | Bastiane |
Hallo!
Bin wieder am Korrigieren und habe zu der Aufgabe:
Geben Sie einen Algorithmus an, der zu einer gegebenen Zahl [mm] n\in\IN [/mm] die Binärzahldarstellung von n berechnet. D. h. gesucht ist ein Tupel [mm] [/mm] von Zahlen [mm] b_0,...,b_{r-1},b_r\in\{0,1\} [/mm] mit [mm] \summe_{j=0}^rb_j*2^j=n, [/mm] wobei entweder r=0 und n=0 oder [mm] b_r=1. [/mm]
folgende Lösung bekommen:
[Dateianhang nicht öffentlich]
Den Anfang kann ich ja noch nachvollziehen, aber in der Mitte bin ich nicht so ganz sicher, ob das wohl so richtig ist.
Eine ähnliche Lösung, die meiner Meinung nach richtig ist, ist folgende:
r:=0
if n>0 then
while [mm] $2^r\le [/mm] n$ do
r:=r+1
od
r:=r-1
[mm] b_r:=1
[/mm]
[mm] n:=n-2^r
[/mm]
r:=r-1
while n>0 do
while [mm] 2^r>n [/mm] do
[mm] b_r:=0
[/mm]
r:=r-1
od
[mm] b_r:=1
[/mm]
[mm] n:=n-2^r
[/mm]
r:=r-1
od
else
[mm] b_r:=0
[/mm]
fi
Mir ist schon klar, dass das beides viel zu umständlich ist, und eine viel einfachere und schönere Lösung habe ich auch. Mir geht es nur darum, ob ich bei diesen beiden Lösungen hier volle Punktzahl geben kann, bzw. wenn nicht, was ich dann als Kommentar daran schreibe, warum es falsch ist.
Wäre schön, wenn jemand Lust hätte, sich das mal kurz anzugucken.
Viele Grüße
Bastiane
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
Hi Bastiane,
intuitiv ist der Algorithmus richtig - einmal kurz nachprogrammieren hat dies dann auch bestätigt.
Einziges Manko: für n=0 liefert er trotzdem 1. Also vielleicht nicht ganz die volle Punktzahl
Viele Grüße,
Michael
|
|
|
|