Autor Beitrag
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Sa 02.04.16 12:18 
Auslöser dieses Programm zu entwickeln ist ein Rätsel von Sam Loyd.
"Die Schlacht von Hastings".
Alle Geschichtsstudenten wissen um die Umstände der Schlacht am 14.10.1066.
Die fragliche Stelle, auf die Professor Henry Dudeney verweist, lautet:
"Harolds Mannen waren in Reih und Glied aufmarschiert und bildeten 13 Quadrate,
jedes mit der gleichen Anzahl Männer, und wehe dem verwegenen Normannen,
der gewagt hätte, ihre Befestigungen zu betreten, denn schon ein einziger
Stoß eines angelsächsischen Kriegsbeil würde genügen, seine Lanze zu brechen
und seinen Panzer zu durchbohren."
Zeitgenössische Experten stimmen darin überein, daß die Angelsachsen tatsächlich
in dieser unbeweglichen Formation gekämpft haben.
In Carmen de Bello Hastingensi, einem Gedicht, das von Guy, dem Bischof von Amiens,
stammen soll, ist davon die Rede, daß die Angelsachsen wie eine Mauer so fest standen.
Und Henry of Huntingdon spricht vom Viereck wie für eine Burg und für die Normannen undurchdringbar.
Wenn Harolds Streitkräfte in 13 Quadrate geteilt würden, die einschließlich ihm selbst ein einziges großes
Quadrat bilden, wieviel Männer müssen es dann gewesen sein?
Diese Aufgabe borgte sich Loyd von Henry Dudeney, dem britischen Rätselexperten, aus und veränderte
sie erheblich, einmal um sie leichter zu machen, und zum anderen, um ihre historische Glaubwürdigkeit
zu stützen. Dudeneys Version, die in seinen Amusements in Mathematics zu finden ist, hat 61 Quadrate
mit Männern anstelle von 13.
Das allgemeine Problem von der sich die Aufgabe ableitet, wurde als erstes von Fermat vorgestellt,
obwohl das Ganze als Pellsche Gleichung bekannt wurde.
Screen
Der Wert für D kann maximal 9 Stellen betragen. Eine Lösung wird angezeigt bzw. eine Überlaufmeldung.
Unterstützung bei der Kettenbruchberechnung erhielt ich von user profile iconMathematiker.
Viel Spaß beim Testen.
Gruß Fiete
heute ist Welt-Autismus-Tag!
Edit 1: Der Wert für D kann jetzt 9-stellig sein, es ist eine neue Langzahlversion implementiert.
Ich habe von Extended jetzt auf Int64 umgestellt. Der Algorithmus wurde verbessert, jetzt wird nur noch
überprüft ob Index gerade oder ungerade ist.
Es gibt immer eine Lösung. Für D=410286423278424 habe ich "out of Memory" - Meldung erhalten, Delphi 6.
Die Kettenbruchperiode ist größer 70.000.000, mit einem 64-Bit Delphi gibt es wohl eine Lösung.
Einloggen, um Attachments anzusehen!
_________________
Fietes Gesetz: use your brain (THINK)


Zuletzt bearbeitet von Fiete am Sa 09.04.16 16:30, insgesamt 2-mal bearbeitet

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Sa 02.04.16 12:41 
Hallo,
Danke für das Programm. Zum Problem:

"Haralds Mannen standen tapfer zusammen und bildeten 61 Quadrate mit gleich vielen Recken in jedem Quadrat. Als Harald sich in die Schlacht warf, bildeten die Sachsen mit ihm zusammen ein einziges, mächtiges Quadrat."
Gesucht ist nun die minimal mögliche Anzahl der Krieger.

Lösung
Wir bezeichen die Kantenlänge der kleinen Quadrate mit y und die vom großen Quadrat mit x, d.h.
61 y² + 1 = x²
Es handelt es sich um eine Diophantische Gleichung 2.Ordnung, konkret um die Pellsche Gleichung
x² - d y² = 1 mit d = 61
Deren kleinste natürliche Lösung ist y = 226153980, x = 1766319049.
Mit Harald zusammen wäre also etwa 3,11 Trillionen Sachsen dabei gewesen. Und da sollen wir zänkischen Sachsen verloren haben? Niemals! :lol:

So, die Lösung ist weiß auf grau in winziger Schrift. Um den Spaß nicht zu verderben. :wink:

Beste Grüße
Mathematiker

Nachtrag: In der Abbildung ist ja die Lösung zu sehen. :cry:

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Sa 02.04.16 20:14 
Hallo,
ich habe noch einen Nachtrag.
Ein paar Erklärungen gibt es nun unter mathematikalpha.de/pellsche-gleichung

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie, Fiete
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 03.04.16 09:31 
Hallo,
ich finde das Thema sehr spannend. Daher habe ich auch eine "eigene" Lösung, wobei das nicht wirklich stimmt, da die wesentliche Unit UBigIntsV2 von Gary Darby ist.

Das angehängte Programm berechnet für alle D bis 6938778 den Kettenbruch Wurzel(D) und die kleinste Lösung der entsprechenden Pellschen Gleichung.
Für D = 6938779 hat der Kettenbruch eine Periode von 7616, d.h. mehr als die im Moment vorgesehenen 7500 Glieder. Natürlich kann jeder die Grenze so weit erweitern, wie es die Geschwindigkeit seines Rechners hergibt. Bei mir dauert es dann einfach zu lange.

Die mir im Moment bekannte Zahl D mit der längsten Periode von 62610 Gliedern ist 394935451. :wink: Die kleinste Lösung der Pellschen Gleichung ist dann entsprechend groß. :lol:

Beste Grüße
Mathematiker

P.S.: Nebenbei quäle ich meinen Rechner seit vielen Stunden mit der Suche nach weiteren Maxima.
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Fiete
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: Mo 04.04.16 09:43 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:

Die mir im Moment bekannte Zahl D mit der längsten Periode von 62610 Gliedern ist 394935451. :wink: Die kleinste Lösung der Pellschen Gleichung ist dann entsprechend groß. :lol:

Beste Grüße
Mathematiker

P.S.: Nebenbei quäle ich meinen Rechner seit vielen Stunden mit der Suche nach weiteren Maxima.

Hier könntest Du vielleicht mal suchen: de.wikipedia.org/wik...oblem_des_Archimedes

Ich sehe zwar keine direkten Zusammenhang zwischen Lösungsgröße und Kettenbruchlänge, aber die Lösungen für Dein D=394935451 haben bei mir dezimale Längen von ca. 32120, während die Lösungen für die aus dem Archimedes-Problem resultierende Pell-Gleichung d.h. D = 4*609*7766*4657^2 = 410286423278424 mit MP_Arith Längen von ca. 103270 haben.

Da ich keine Kettenbrüche berechnen, kann es allerdings sein, daß wg. X^2 - 4729494(2*4657*Y)^2 = 1 die Periodenlänge kleiner ist.

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 04.04.16 09:58 
Hallo Gammatester,
user profile iconGammatester hat folgendes geschrieben Zum zitierten Posting springen:
Hier könntest Du vielleicht mal suchen: de.wikipedia.org/wik...oblem_des_Archimedes

Selbstverständlich. Ich habe mich nicht ganz korrekt ausgedrückt.
Ich suche nach der kontinuierlich wachsenden Folge neuer Maxima bei der Periodenlänge der Kettenbrüche.

user profile iconGammatester hat folgendes geschrieben Zum zitierten Posting springen:
Ich sehe zwar keine direkten Zusammenhang zwischen Lösungsgröße und Kettenbruchlänge, ...

Die Folgerung längerer Kettenbruch --> größere Lösungen der Pellschen Geichung gilt natürlich nicht. Auf Grund der Konstruktion der Lösung aus dem Kettenbruch gibt es aber eine Tendenz, dass auch die Lösungen größer werden, wenn die Periodenlänge steigt. Auch hier habe ich mich nicht korrekt ausgedrückt.
Mein kleines Programm erlaubt; auf Grund des Weges über den Kettenbruch; im Moment keine Lösung für D = 394935451. Dass es mittels MP_Arith lösbar ist, war zu erwarten.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Sa 09.04.16 16:33 
Moin,
eine neue Version liegt vor.
Die Werte für D können jetzt 9-stellig sein, Berechnung optimiert und es gibt immer eine Lösung.
Frohes Testen.
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)

Für diesen Beitrag haben gedankt: Mathematiker
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Mi 13.04.16 14:23 
Moin,
da das Programm für D=410286423278424 mittels Kettenbruch keine Lösung ermitteln kann,
habe ich das Rinderproblem separat programmiert mit D=4729494.
Anschließend lasse ich Iterationen Xi und Yi berechnen bis Yi mod 9314=0 ist.
Hier das Ergebnis:
Screen
103270 Ziffern hat das Endergebnis bei 2328 Iterationen.
Gruß Fiete
Einloggen, um Attachments anzusehen!
_________________
Fietes Gesetz: use your brain (THINK)

Für diesen Beitrag haben gedankt: Mathematiker
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Fr 15.04.16 09:27 
Hallo,

wie lange rechnet das Programm. Unter Linux/wine wollte es nach 15 min noch nichts anzeigen...

Gruß Horst
Fiete Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 601
Erhaltene Danke: 339

W7
Delphi 6 pro
BeitragVerfasst: Fr 15.04.16 16:18 
Moin Horst,
das Programm rechnet bei mir ca. 86 Sek.
Mein System: W7 i7-4771 CPU@3.50GHz
Vielleicht liegst an der Ausgabe ins Memo?
Gruß Fiete

_________________
Fietes Gesetz: use your brain (THINK)


Zuletzt bearbeitet von Fiete am So 17.04.16 12:19, insgesamt 1-mal bearbeitet
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.04.16 17:29 
- Nachträglich durch die Entwickler-Ecke gelöscht -