code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:Umrechnung zwischen Zahlensystemen -> test_roman.php
md5:b2d9d32fe31ec23aacfa31dbfb78da9e
sha1:99b22af5b56455fca6cc9c6b6f66e4c85603d090
Download-Link:Download
  1. <?php
  2. setlocale (LC_ALL, 'de_DE@UTF-8');
  3. ini_set('default_charset','utf-8');
  4.  
  5. require 'romanNumbers.php';
  6.  
  7. $rn = new romanNumbers;
  8.  
  9. #/* Typentest:
  10.  
  11. $zahlen=array(
  12.     1,
  13.     4,
  14.     6,
  15.     9,
  16.     10,
  17.     11,
  18.     14,
  19.     16,
  20.     20,
  21.     30,
  22.     40,
  23.     50,
  24.     90,
  25.     111,
  26.     140,
  27.     149,
  28.     1444,
  29.     1661,
  30.     14444,
  31.     16661,
  32.     144444,
  33.     166666
  34. );
  35.  
  36. foreach ( $zahlen  as $zahl ) {
  37.     $e = $rn -> getRoman  ( $zahl,true, true);           echo $e, "\t( $zahl , true, true  )\t(" . $rn -> getDec  ($e). ") \n";
  38.     $e = $rn -> getRoman  ( $zahl ,true, false);         echo $e, "\t( $zahl ,true, false  )\t(" . $rn -> getDec  ($e). ") \n";
  39.     $e = $rn -> getRoman  ( $zahl ,false, true);         echo $e, "\t( $zahl ,false, true  )\t(" . $rn -> getDec  ($e). ") \n";
  40.     $e = $rn -> getRoman  ( $zahl ,false, false);        echo $e, "\t( $zahl ,false, false )\t(" . $rn -> getDec  ($e). ") \n";
  41. }
  42.  
  43. $strings = array (
  44.     'I',
  45.     'IIII',
  46.     'IV',
  47.     'VIIII',
  48.     'IX',
  49.     'XI',
  50.     'XIIII',
  51.     'XIV',
  52.     'LXXXX',
  53.     'XC',
  54.     'MCCCCXXXXIIII',
  55.     'MCDXLIV',
  56.     '&#8584;&#8578;&#8578;&#8578;&#8578;MMMMCCCCXXXXIIII',
  57.     '&#8584;&#8578;&#8583;M&#8577;CDXLIV',
  58.     'ↈↂↂↂↂMMMMCCCCXXXXIIII',
  59.     'ↈↂↇMↁCDXLIV',
  60.     '(((I)))((I))((I))((I))((I))MMMMCCCCXXXXIIII'
  61. );
  62.  
  63. foreach ( $strings  as $string ) {
  64.     echo $rn -> getDec  ($string)               , "\t( $string )\n";
  65. }
  66.  
  67. #*/
  68.  
  69. /* Geschwindigkeit:
  70. ob_start();
  71. $startTime=microtime(1);
  72. for ( $i = 1; $i < 100001; $i++ ) {
  73.     $s = $rn -> getRoman( $i, false );
  74.     $l = $rn -> getRoman( $i, false );
  75.     $d = $rn -> getDec( $s );
  76.     if ($d != $i) {
  77.         echo "ERROR ( $i != $d\t$s\t$l )\n";
  78.     } else {
  79.         echo "FINE  ( $i != $d\t$s\t$l )\n";
  80.     }
  81. }
  82. echo "TIME: ", (microtime(1) - $startTime)/60*1000 , " Microsekunden pro Berechnung. \n";
  83. #*/