... newer stories
IXC
wuerg, 29.06.2005 18:36
Die Zahl 89 ist als 100−10−1 nicht irgendeine. Sie steht im Zusammenhang mit den Fibonacci-Zahlen. Wer nach ihr googelt, wird aber eher auf IXC als unzulässig gebildete römische Zahl stoßen. Nicht breit erläutern will ich, wie man aus einer üblichen in arabischen Ziffern geschriebenen Zahl eine römische bildet, denn die Ziffern sind stur in Zeichenketten umsetzbar. In die andere Richtung ist es etwas undurchsichtiger, doch im Prinzip das gleiche, sofern die römische Zahl korrekt geschrieben ist.
Als ich las, daß unzulässig geschriebene römische Zahlen in Einzelfällen wie IC=99 und VC=95 zwar eine direkte Interpretation zulassen, dies aber schon bei IXC zu Doppeldeutigkeiten (91 oder 89) führe, regte sich in mir spontan Widerspruch, denn auf den ersten Blick würde ich den Wert einer Zeichenkette aus den Buchstaben MDCLXVI einfach rekursiv bilden: Einer römischen Zahlzeichenkette
z = s1 M s2 M s3 M ... sn M t
würde ich schlicht und ergreifend den Wert
IXC = − IX + C = − (−I+X) + C = − (−1+10) + 100 = 91
befriedigt nicht. Spontan würde doch jeder IXC=89 sagen. Außerdem gibt es für 91 keinen Abkürzungsbedarf, denn 91=XCI ist korrekt und auch nicht länger. Deshalb die nächste Idee, aufsteigende Ketten wie IXCD vollständig subtraktiv auszuwerten, also alles vor dem letzten Buchstaben von ihm abzuziehen. Damit das nicht in Rechnerei ausartet, verfahre ich wie folgt:
In aufsteigenden Ketten werden alle Zeichen bis auf das letzte zur Kennzeichnung der Subtraktion in Kleinbuchstaben gewandelt. Anschließend können große gegen kleine Buchstaben gekürzt werden. Die verbleibenden Großbuchstaben MDCLXVI werden zu einer Zahl addiert, ebenso die Kleinbuchstaben dclxvi (666!). Die Differenz ist das hoffentlich positive Ergebnis. Ein Beispiel:
Als ich las, daß unzulässig geschriebene römische Zahlen in Einzelfällen wie IC=99 und VC=95 zwar eine direkte Interpretation zulassen, dies aber schon bei IXC zu Doppeldeutigkeiten (91 oder 89) führe, regte sich in mir spontan Widerspruch, denn auf den ersten Blick würde ich den Wert einer Zeichenkette aus den Buchstaben MDCLXVI einfach rekursiv bilden: Einer römischen Zahlzeichenkette
z = s1 M s2 M s3 M ... sn M t
würde ich schlicht und ergreifend den Wert
w(z) = (1000−w(s1)) + (1000−w(s2)) + ... + (1000−w(sn) + w(t) = 1000·n − w(s1) − w(s2) − ... − w(sn) + w(t)zuordnen, wobei in den Zeichenketten s₁ bis sₙ und t kein M mehr vorkommt. Die Werte w(s₁) bis w(sₙ) und w(t) werden in analoger Weise auf die weiterer Zeichenketten zurückgeführt, die neben M auch kein D mehr enthalten. So fährt man fort, bis nur noch lauter I bleiben, denen man ihre Länge als Wert zuordnet. Ein Beispiel:
w(MILLILIDL) = 1000 + w(ILLILIDL) = 1000 + 500 − w(ILLILI) + w(L) = 1500 − (50·3−w(I)−w(I)+w(I)) + 50 = 1400 + 1 + 1 − 1 = 1401Abstrus und auch wenig erfolgreich, denn das nach dieser Methode übersetzte
IXC = − IX + C = − (−I+X) + C = − (−1+10) + 100 = 91
befriedigt nicht. Spontan würde doch jeder IXC=89 sagen. Außerdem gibt es für 91 keinen Abkürzungsbedarf, denn 91=XCI ist korrekt und auch nicht länger. Deshalb die nächste Idee, aufsteigende Ketten wie IXCD vollständig subtraktiv auszuwerten, also alles vor dem letzten Buchstaben von ihm abzuziehen. Damit das nicht in Rechnerei ausartet, verfahre ich wie folgt:
In aufsteigenden Ketten werden alle Zeichen bis auf das letzte zur Kennzeichnung der Subtraktion in Kleinbuchstaben gewandelt. Anschließend können große gegen kleine Buchstaben gekürzt werden. Die verbleibenden Großbuchstaben MDCLXVI werden zu einer Zahl addiert, ebenso die Kleinbuchstaben dclxvi (666!). Die Differenz ist das hoffentlich positive Ergebnis. Ein Beispiel:
MILLIXLIDLXMILLI = MiLLixLiDLxMiLLI = MMDLLLLLLIxxiiii = MMDLLLLLLxxiii = 2800−23 = 2777Das befriedigt für die Zahl IXC=ixC=Cxi=100−11=89, macht aber auch deutlich, daß es keinen Sinn hat, ein kleineres Zeichen sowohl links als auch rechts von einem größeren aufzuführen. So ist VIXI=ViXI=XVIi=XV=15 und (leider) nicht nach der rekursiven Auffassung VIXI=X−(VI)+I=5 und schon gar nicht VIXI=VXII=17.
... link (3 Kommentare) ... comment
... older stories