Subtraktionsalgorithmus (B=10) < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 09:52 Di 27.05.2008 | Autor: | fkerber |
Aufgabe | Es soll eine allgemeingültige Formel gefunden werden, mit der ich zwei Dezimalzahlen (a >=b vorausgesetzt) voneinander abziehen kann. Dies soll nach Vorbild der Schulmethode erfolgen. |
Hi!
Kurz zum Vergleich wie wir den entsprechenden Additionsalgorithmus umgesetzt haben.
[mm]
[mm] c_n [/mm] ist dabei der Carry an der n-ten Stelle. Die Notation mit dem [n-1:0] ist als Ziffernschreibweise gedacht. s soll also die Summe sein (n-stellig), a und b jeweils n-stellig...
[mm] s_n [/mm] bekomme ich, indem ich einfach [mm] s_n [/mm] = [mm] c_n [/mm] (also den letztes carry hole).
Ich hoffe, es ist soweit klar geworden, wenn nicht bitte nachfragen...
Dieser Algorithmus funktioniert unabhängig von der gewählten Basis und lässt sich prima per vollständige Induktion beweisen.
Das selbe soll nun für die Subtraktion gefunden werden. Also eine Formel, die ich per vollst. Induktion beweisen kann und die a-b rechnet und zwar so, dass ich eben s(n-stellig) und evtl. den carry an stelle n bekomme....
Ich hoffe, ihr wisst was ich meine.
Jeglicher Versuch Formeln aufzustellen (z.B. <c_(i+1) [mm] s_i> [/mm] = [mm] [/mm] - [mm] [/mm] + [mm] [/mm] +9 (wobei [mm] c_0 [/mm] = 1) funktionieren zwar scheinbar praktisch (zumindest wenn man an der n+1. Stelle trickst, aber lassen sich ums Ver****** nicht beweisen...)
Ich hoffe, ihr könnt helfen.
LG, Frederic
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:25 Fr 27.06.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|