Letzte Ziffer ungleich 0 von 1.000.000 Fakultät

Neue Frage »

strike300 Auf diesen Beitrag antworten »
Letzte Ziffer ungleich 0 von 1.000.000 Fakultät
Meine Frage:
Hallo zusammen,
wir haben als Weihnachtsbastelaufgabe von unserem Lineare-Algebra-Prof. die Aufgabe bekommen, die letzte Ziffer von 1.000.000!, die keine Null ist anzugeben, d. h. die erste Ziffer ungleich Null von rechts gesehen (im Weiteren einfach letzte Ziffer genannt).

Meine Ideen:
Für die letzte Ziffer eines Produkts zählen nur die letzten Ziffern der Faktoren. Für 1.000.000! sind also nur die Faktoren 1,2,3,4,5,6,7,8,9,0 relevant. 0, 1, sowie 2*5 ändern nichts an der letzten Ziffer.
3*4*6*7*8*9 = 8 (mod 10), also hat 10! als letzte Ziffer die 8. Es folgt: letzte Ziffer von 20! ist 8*8 = 4 (mod 10), letzte Ziffer von 30! ist 4*8 = 2 (mod 10), letzte Ziffer von 40! ist 2*8 = 6 (mod 10). Die letzte Ziffer von 50! ist wieder 6*8 = 8 (mod 10).
Die letzte Ziffer wiederholt sich quasi "alle 40!". Da 40 | 1.000.000, sollte die letzte Ziffer von 1.000.000! also eine 6 sein, genau wie bei 40!.
Unter http://sourceforge.net/projects/bigal/files/BigAl%20results/factorial/factorial_1000000.txt/download kann man sich den genauen Wert von 1000000! als .txt runterladen und die letzte Ziffer ist eine 4.

Wo liegt mein Denkfehler?

Vielen Dank für Eure Hilfe!

Grüße
Sven
wisili Auf diesen Beitrag antworten »
RE: Letzte Ziffer ungleich 0 von 1.000.000 Fakultät
Es geht leider nicht so einfach.
30! hat eine 8 vor den Nullen, nicht wie behauptet eine 2.
grafzahlonline Auf diesen Beitrag antworten »

Ist es erlaubt ein kleines Computerprogramm zur Lösung zu schreiben?
René Gruber Auf diesen Beitrag antworten »

@strike300

Deine Idee bricht in der dritten Dekade 21..30 in sich zusammen, wie wisili ja schon angemerkt hat, aber warum:

Grund ist, dass du angenommen hast, dass die mittlere, auf 5 endende Zahl immer nur genau eine zusätzliche Endnull erzeugt. Das ist bei nicht der Fall, dieser Faktor erzeugt sogar zwei zuätzliche Endnullen. Desweiteren hast du die letzte, durch 10 teilbare Zahl in dieser Dekade auch falsch verarbeitet: Faktor 10 erzeugt bei Multiplikation einen anderen Effekt auf die letzte Nicht-Null-Ziffer als Faktor 20 oder 30. Bei Faktor 50 u.ä. kommt dann sogar der Effekt der 25 von oben zum Tragen usw.

Nein, so einfach ist es wirklich nicht.

---------------------------------------------------

Ein Computer-Programm zur Berechnung der letzten Nicht-Null von ist allerdings relativ einfach zu bewerkstelligen (der Prof ist vielleicht nicht ganz auf der Höhe in Bezug auf die derzeitigen Rechenmöglichkeiten, sonst hätte er die Aufgabe mit statt nur gestellt und somt deine Lösung via http://sourceforge.net/projects/bigal/fi...00.txt/download bis auf weiteres wirksam unterbunden Big Laugh ):

In diesem gruppiert man Faktoren des Produkts vorab so zusammen, dass die Produkte der Gruppenelemente den oben beschriebenen Effekt nicht zeigen, d.h. dass in ihner Primfaktorzerlegung der Exponent der 2 immer mindestens so groß ist wie der Exponent der 5 - oder kurz gesagt: Dass die letzte Nicht-Null-Ziffer dieses Teilprodukts keine 5 ist. (*)

Da man auf diese Weise nicht sukzessiv vorgeht, benötigt man zum Merken der Faktoren, die man bereits verarbeitet hat, noch ein boolesches Feld der Länge . Was das Bewerkstelligen der obigen Gruppierung betrifft, da knöpft man sich am besten zuerst alle durch 5 teilbaren Faktoren des Produkts vor und ergänzt sie durch noch verfügbare gerade Zahlen, bis man Effekt (*) erreicht. Die letzte Nicht-Null-Ziffer des Gruppenprodukts geht dann sukzessive in die Rechnung ein.

EDIT: Ich korrigiere mich: Bei geschickter Organisation der Berechnung benötigt man nicht mal das genannte boolesche Feld. Augenzwinkern

---------------------------------------------------

Das wäre die Brachialvariante, eine elegante Berechnung ohne Computerunterstützung würde natürlich mehr hermachen. Die müsste natürlich Effekte wie oben berücksichtigen, also dass etwa beim Übergang von zu auf einen Schlag 8 zusätzliche Endnullen hinzukommen, dass man also zur Bestimmung der letzten Nicht-Null von sogar die letzten 9 Nicht-Nullen von kennen muss...
strike300 Auf diesen Beitrag antworten »

Hallo zusammen,
das ging ja schnell :-). Ja, jetzt wo man es hört, war es tatsächlich ziemlich dämlich, was ich da gemacht hatte.

Ein Computerprogramm ist keine Lösung. Die Ziffer allein ohne Begründung wäre auch keine Lösung, da man ja schon mit 25 % Wahrscheinlichkeit richtig raten kann.

Ich habe mal alle 5en und 2en aus 1.000.000 rausgezogen:



Und genau beim Rest liegt das Problem. So richtig weiß ich nämlich nicht was da alles übrigbleibt (Vielfache von Primzahlen usw.). Ich nehme mal an, dass das per Hand der falsche Weg ist und es noch einen schönen Trick gibt.

Mit dem Computer könnte man auch einfach so wie oben mit 2 und 5 alle Primfaktoren bis 1.000.000 durchzählen und dann immer (mod 10) multiplizieren. Aber es muss doch auch per Hand gehen.

Vielleicht könnte man nur so viele 2en nehmen wie man für die 5en braucht, dann hätte man nicht so viele Faktoren verändert.

Ich bin völlig ideenlos gerade.

Vielleicht hätte jemand noch einen Schubs in die richtige Richtung?

Danke schonmal bis hierher
Grüße
Sven
René Gruber Auf diesen Beitrag antworten »

Ok, hier dann mal eine Anregung (oder vielleicht schon mehr als das) zur theoretischen Variante:

Sei die letzte Nicht-Null-Ziffer der positiven ganzen Zahl . Klar ist dann sofern .

Betrachten wir nun mal für beliebiges :

.

Nun ist (nachrechnen!)


,

also insgesamt , was zur Folge hat. Daraus folgt dann die simple Rekursion

.

Mit ein paar Zusatzüberlegungen kann man dann rekursiv alles sehr schnell herunterbrechen.
 
 
strike300 Auf diesen Beitrag antworten »

Hallo nochmal,
Danke für den ausführlichen Lösungsweg. Den habe ich soweit verstanden und habe es auch noch durchgerechnet:























Soweit so gut. Da stellt sich für mich nur noch eine Frage: Wie kommt man auf so einen Lösungsansatz? Probiert man einfach mit 5 und 2 ein wenig rum und stellt dann fest, dass günstigerweise ?
Oder gibt es einen zwingenden Grund, warum man auf so etwas kommen muss?

Viele Grüße
Sven
René Gruber Auf diesen Beitrag antworten »

Zitat:
Original von strike300
Wie kommt man auf so einen Lösungsansatz?

Erfahrung erwirbt man mit der Zeit und kann sie nicht mal schnell in 5 Minuten vermitteln. Augenzwinkern

Bisschen probieren hilft auch: Das Ausrechnen von , , ... hilft schon mal, auf so eine Vermutung zu kommen, die sich dann ziemlich einfach nachweisen lässt. Probieren ist zwar keine Beweismethode, aber zur Ideenfindung offenbar viel zu unterschätzt.

Übrigens, in dem Zusammenhang: Da weitergehend sogar und mithin gilt, kann man mit der obigen Methode sogar relativ einfach die zwei letzten Ziffern vor den Endnullen der Fakultäten über die Rekursion



berechnen, in deinem Fall dann .
strike300 Auf diesen Beitrag antworten »

Dann hoffe ich mal, dass ich die Erfahrung auch noch sammeln kann, aber ich schätze als Informatiker im 1. Semester habe ich da noch viel Spielraum Augenzwinkern

Vielen Dank nochmal und vielleicht bis bald.

Viele Grüße
Sven
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »