Römische Zahlen

Hallo Leute,

hat jemand von euch eine Idee wie man das machen könnte, ich habe jedenfalls keine mehr heute abend. Für Tippss wäre ich sehr dankbar.
Denn zu dem Algorithmus fällt mir absolut nichts ein.

Euer sehr müder
Hans-Dieter Lange

wo ist die Frage?
aber wenns nur um die darstellung von römischen Zahlen geht bietet sich an ol’s und li’s zu verwenden mit style=roman oder so ähnlich :stuck_out_tongue:

Hallo

Sorry habe vergessen vor Müdigkeit zu schreiben was ich eigentlich will. Eigentlich möchte ich ein Programm schreiben mit dem ich römische in arabische und umgekehrt umrechnen kann. Was den dazu notwendigen Algorithmus angeht habe ich aber absolut keine Ideen mehr.

Gruß euer

Hans-Dieter J. Lange

aber wenns nur um die darstellung von römischen Zahlen geht
bietet sich an ol’s und li’s zu verwenden mit style=roman oder
so ähnlich :stuck_out_tongue:

Hallo

Sorry habe vergessen vor Müdigkeit zu schreiben was ich
eigentlich will. Eigentlich möchte ich ein Programm schreiben
mit dem ich römische in arabische und umgekehrt umrechnen
kann. Was den dazu notwendigen Algorithmus angeht habe ich
aber absolut keine Ideen mehr.

Naja, so schwer ist das ja nun nicht:

<?php $data=Array('IV'=>4,'XL'=\>40,'CD'=\>400,'IX'=\>9,'XC'=\>90,'CM'=\>900,
 'I'=\>1,'V'=\>5,'X'=\>10,'L'=\>50,'C'=\>100,'D'=\>500,'M'=\>1000);

$rom='MCMLVIII'; 

// römisch -\> arabisch
$arab=0;
foreach($data as $key =\> $val) {
 $arab += substr\_count($rom, $key)\*$val;
 $rom = str\_replace($key,"",$rom);
 }
echo $arab;

// arabisch -\> römisch
$data1=$data;
arsort($data1); // umsortieren nach value
$rom='';
while($arab\>0) {
 foreach($data1 as $key =\> $val) {
 while($arab/$val\>=1) {
 $arab = $arab - $val;
 $rom = $rom . $key;
 }}}
echo $rom;
?\>

Alexander

Naja, so schwer ist das ja nun nicht:

> <?php :blush:data=Array('IV'=&gt;4,'XL'=&gt;40,'CD'=&gt;400,'IX'=&gt;9,'XC'=&gt;90,'CM'=&gt;900,<br>  
> 'I'=\>1,'V'=\>5,'X'=\>10,'L'=\>50,'C'=\>100,'D'=\>500,'M'=\>1000);  
>   
> $rom='MCMLVIII';  
>   
> // römisch -\> arabisch  
> $arab=0;  
> foreach($data as $key =\> $val) {  
> $arab += substr\_count($rom, $key)\*$val;  
> $rom = str\_replace($key,"",$rom);  
> }  
> echo $arab;

Hat nur den klitzekleinen Haken, dass kleinere römische Ziffern vor größeren abgezogen werden. MCM ist 1900 und nicht 2100…
Mit ner Google-Suche nach „roman numerals“ findet man haufenweise Tipps.
Hier der Hinweis auf ein Perl-Modul „Roman“, das das bequem macht: http://www.mathematik.uni-ulm.de/help/perl5/doc-5.00…

Hier der Hinweis auf ein Perl-Modul „Roman“, das das bequem
macht:
http://www.mathematik.uni-ulm.de/help/perl5/doc-5.00…

Ups, falsche Sprache. PHP gibt’s hier:
http://www.howtocreate.co.uk/php/roman.php

Danke

Hallo Leute,

Herzlichen Dank für die vielen Tipps, es hat mir alles sehr geholfen.