Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   "Pezision" die zweite (https://www.delphipraxis.net/165009-pezision-die-zweite.html)

Amateurprofi 10. Dez 2011 02:35

"Pezision" die zweite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo boxer123.
Wenn ich deinen Beitrag richtig verstanden habe, dann möchtest du folgendes machen:
1) Ähnlich wie man die Quersumme einer Zahl bildet, willst du ein "Querprodukt" einer Zahl ermitteln, indem du alle Ziffern der Zahl multiplizierst.
2) Wenn das "Querprodukt" mehr als eine Ziffer enthält, willst du von diesem wieder das "Querprodukt" bilden, und du willst das solange machen, bis das Ergebnis nur noch eine Ziffer hat.
3) Die Anzahl der Iterationen, bis das "Querprodukt" nur noch eine Ziffer hat, zählst du.
4) Du willst eine Zahl finden, bei der 9 Iterationen erforderlich sind, um ein einziffriges "Querprodukt" zu erhalten.
Ein Beispiel:
Nehmen wir mal die Zahl 99988644 und los gehts
1: 9 * 9 * 9 * 8 * 8 * 6 * 4 * 4 = 4478976
2: 4 * 4 * 7 * 8 * 9 * 7 * 6 =338688
3: 3 * 3 * 8 * 6 * 8 * 8 = 27648
4: 2 * 7 * 6 * 4 * 8 = 2688
5: 2 * 6 * 8 * 8 = 768
6: 7 * 6 * 8 = 336
7: 3 *3 * 6 = 54
8: 5 * 4 =20
9: 2 * 0 = 0

Huch, das waren ja schon 9 Durchläufe. Was für ein Zufall.
Statt der 99988644 kannst du natürlich auch eine der anderen 7447 8-stelligen Zahlen aus anhängender Liste "HighCounts_9.txt" ausprobieren.
Auch bei insgesamt 282852 9-stelligen Zahlen wirst du fündig.
Übrigens, alle 8- und 9-stelligen Zahlen, die 9 Durchläufe brauchen haben beim ersten Durchlauf das "Querprodukt" 4478976
Im Anhang sind ist der Source-Code des Programms, mit dem ich das ermittelte.
Ist allerdings 'ne 64-Bit Version.

Medium 10. Dez 2011 03:03

AW: "Pezision" die zweite
 
Sach ma, ist das jetzt ne Satire, oder... also... uff... :shock:

Furtbichler 10. Dez 2011 04:59

AW: "Pezision" die zweite
 
Nein, er ist wohl ganz aufgeregt, weil er ein Programm geschrieben hat, das funktioniert,

Delphi-Laie 10. Dez 2011 05:52

AW: "Pezision" die zweite
 
Meine Vermutung in "Pezision" (die erste), daß für die Berechnung die integren Delphidatentypen nicht ausreichen, ziehe ich zurück. Ich las nicht aufmerksam genug, hatte die Quersumme vor Augen.

Amateurprofi 10. Dez 2011 11:51

AW: "Pezision" die zweite
 
Zitat:

Zitat von Medium (Beitrag 1140704)
Sach ma, ist das jetzt ne Satire, oder... also... uff... :shock:

Ja und nein!

himitsu 10. Dez 2011 12:04

AW: "Pezision" die zweite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Blos mal so, aus Interesse.

Ich hatte über irgendein Suchwort die Wikipediaseite gefunden ... finde sie nun aber nicht mehr.

Wie heißt das Ding hier also nochmal "richtig"?


Ich glaub dort stand, eine Liste aller bekanten Zahlen und daß noch keine Zahl mit mit (mindestens) 12 Iterationen gefunden wurde.

Hab jetzt mal schnell was zusammenklickt, daß den Integerbereich durchsucht.
Wollte nu gerne mal wissen, ob das Teil richtig rechnet.

Bummi 10. Dez 2011 12:07

AW: "Pezision" die zweite
 
http://de.wikipedia.org/wiki/Querprodukt

himitsu 10. Dez 2011 18:25

AW: "Pezision" die zweite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Delphi-Laie (Beitrag 1140707)
Meine Vermutung in "Pezision" (die erste), daß für die Berechnung die integren Delphidatentypen nicht ausreichen, ziehe ich zurück. Ich las nicht aufmerksam genug, hatte die Quersumme vor Augen.

Also mit der Quersumme hattest du vollkommen recht.
Praktisch ist nur, daß man die jeweils kleinsten Werde der Behaarlichkeiten der Quersummen quasi direkt ausrechnen kann.

Zitat:

jeweils kleinste Zahl für die Behaarlichkeiten der iterierten Quersumme

00:00:02:312 > Beharrlichkeitsliste 1 = 10 > 1
00:00:01:844 > Beharrlichkeitsliste 2 = 19 > 10 1
00:00:02:795 > Beharrlichkeitsliste 3 = 199 > 19 10 1
Taschenrechner > Beharrlichkeitsliste 4 = 19999999999999999999999 (1+9^22) > 199 19 10 1
geschätzt > Beharrlichkeitsliste 5 = 199... und 2222222222222222222222 weitere Neunen (1+9^2222222222222222222222) > 19999999999999999999999 199 19 10 1
2222222222222222222222

00:02:48:564 > Aktuell 999999999999999999 > 162 9
Im Anhang mein völlig unoptimierter Quellcode, welcher mit einem Int64 alle möglichen Zahlen von 1 bis 999999999999999999 prüft und jeweils die kleinsten Zahlen ausgibt.
Der Code läßt sich auch auf die Quersumme umstellen, aber weiter als bis 3 kommt er dort nicht.



Darf ich, der nichtmal Mathe studiert hat, nun eigentlich stolz sein, daß ich alle 11 "Pezision"-Dinger, im Bereich von 0 bis 999999999999999999, mit einem suboptimalem Pascalcode, in nichtmal 30 Sekunden via Bruteforce finde? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz