DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: Periodischer Dezimalbruch (Geschwindigkeit)

Rolf Mertig sagt:
> Diese Loesung ist zwar elegant, aber ungefaehr 7 mal langsamer als meine.

Geschwindigkeit ist oft sehr wichtig, aber in diesem Fall, wo es ja "nur"
darum geht, ein einzelnes Problem zu lösen, betrachte ich die Gesamtzeit,
also Denkzeit+Rechenzeit aus wichtiger, und da spielen die 2-3 Sekunden
Unterschied keine Rolle. Die Aussage "7 mal langsamer" ist bei
einem einzelnen nicht-parametrischen Problem auch etwas reißerisch,
denn bei nur einem Meßpunkt kann man genauso gut von "3 Sekunden
Unterschied" sprechen, was die Aussage doch etwas relativiert.

Die Lösungen, die ich bisher gesehen habe, zeigen m.E. folgendes:

1) In Mathematica kann man eine einfache "brute-force" Suche einfach
   mit ein paar Zeilen Code durchführen. Die Rechenzeit bewegt sich
   in der Größenordnung weniger Sekunden. In anderen Systemen wäre
   die Zeit für Kompilierung oder umständliche Formulierung plus die
   paar Hundertstelssekunden Rechenzeit insgesamt wohl größer.

2) Es stehen alle Hilfsmittel zur Verfügung, um mittels mehr mathematischem
   Wissen den Suchbereich drastisch einzuschränken, etwa Markus van Almsicks
   Methode, die zuläßigen Teilmengen (mit vier verschiedenen Ziffern)
   elegant zu erzeugen, oder Michael Trotts Idee, die möglichen Nenner
   (die eine Periodenlänge vier ergeben) aus nur Hundert Kandidaten schnell
   zu bestimmen.

Zur Lösung von Rolf Mertig ist auch noch folgendes zu sagen:

(*zur Erinnerung:
Do[If[(e 100 + v 10 + e) =!= 0 && (e != v != d !=i),
        r = RealDigits[N[(e 100 + v 10 + e)/(d 100 + 10 i + d)]];
        f = Take[First[r],8];
        If[(Take[f, 4] === Drop[f, 4]) && Length[Union[f]]===4 &&
        Length[Union[{e, v, d, i}, f]] === 8 ,
        Print[e,v,e, "/", d,i,d, " = 0,",Sequence@@f,"..."] ]
        ], {e, 0, 9},{v, 0, 9}, {d, e + 1, 9}, {i, 0, 9}
        ]//Timing
212/606 = 0,34983498...
242/303 = 0,79867986...
*)

Zur Bestimmung der periodischen Dezimalbrüche mit Periode 4 verwendet
diese Methode numerische Approximation (mit Maschinengenauigkeit).
Nun gibt es aber unter allen Brüchen der Form EVE/DID solche,
deren Perioden mehrere Hundert beträgt (das Maximum ist z. Bsp.
656/727 mit Periode 726 [es gibt noch 41 andere Fälle]).
Es könnte also durchaus vorkommen, daß die ersten vier Dezimalziffern
zufällig gleich den zweiten vier sind, ohne daß die Zahl deshalb
Periode vier hat. Alle anderen Methoden sind exakt, dafür vielleicht
etwas langsamer.

Roman Mäder



Verweise:
Re: Periodischer Dezimalbruch
Rolf Mertig, 11.12.1996

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44