AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Hilfe beim Programmieren von einer Gleichung
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe beim Programmieren von einer Gleichung

Ein Thema von eisbar · begonnen am 28. Nov 2005 · letzter Beitrag vom 30. Nov 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Hilfe beim Programmieren von einer Gleichung

  Alt 30. Nov 2005, 16:42
Zitat von eisbar:
Hey danke für deine Hilfe das ist eine super Idee dies so zu schreiben.
Naja, es funktioniert immerhin. Allerdings ist es eben der Brute-Force-Ansatz, bei dem alle Möglichkeiten in einem gewissen Bereich getestet werden, und damit wird das Programm wohl auch lange brauchen. Außerdem wolltest du doch alle ganzzahligen Möglichkeiten ermitteln, und der Code liefert dir nur die Möglichkeiten, wo die Zahlen a,b,c,d im Bereich von 1 bis 100 liegen.
Allerdings ist die Menge der natürlichen Zahlen nicht beschränkt, sodass man in endlicher Zeit nicht alle Möglichkeiten testen kann. Selbst wenn man "nur" alle mit einem vorzeichenlosen 32-Bit-Integer darstellbaren Zahlen überprüft, würden die Indizes der For-Schleifen von 1 bis 2^32-1 (ca. 4 Milliarden) laufen. Bei vier verschachtelten Schleifen macht das immerhin 2^32*2^32*2^32*2^32=2^128 Durchläufe (also rund 3,4*10^38 Durchläufe). Selbst wenn dein PC pro Sekunde eine Milliarde Schleifendurchläfe schaffen würde (was bei dem heutigen Stand der Technik noch etwas unwahrscheinlich ist), würde das Programm ca. 10^22 Jahre laufen, um alle diese Möglichkeiten zu testen. Und das nur für ein einziges n. Für jeden weiteren Exponenten beginnt die Sache von vorn.
Aber sicherlich kommt schon vor dem Ende des Programms ein Bereichsüberlauf, weil die Summe aus den vier Integern schon vorher den maximal darstellbaren Wert überschreitet.

Was ich damit sagen will, ist folgendes: der Code mag zwar gut funktionieren, solange man nur in einen kleinen Abschnitt der natürlichen Zahlen nach Lösungen sucht und der Exponent n nicht zu groß ist. Wenn man aber "alle" Lösungen, d.h. in dem Fall alle mit dem 32-Bit-Integer-Zahlenformat darstellbaren Lösungen, sucht muss man sich etwas besseres einfallen lassen.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: Hilfe beim Programmieren von einer Gleichung

  Alt 30. Nov 2005, 17:20
Zitat von eisbar:
... für a^n+b^n+c^n=d^n ein Programm zu schreiben welches für ein n Alle ganzzahligen möglichkeiten ausgibt bzw die Lösung für die 5. Variable ausgibt, wenn man 4 Variable hat.
Als erstes muss man die Formel umschreiben:
a^n+b^n+c^n-d^n = 0
Dann benötigt man nur noch ein Programm zur Nullstellensuche.
Ein einfaches Verfahren ist z.B. Regula Falsi oder das Newton-Verfahren.
Da man mit diesen Verfahren evtl. nicht alle Nullstellen findet, sollte man sich obige Funktion einfach als Funktionsgraph zeichnen lassen.
Das menschliche Auge sieht die Nullstellen sehr leicht und kann helfen Startwerte für die Nullstellensuche zu finden.
ganzzahligen möglichkeiten: gefundene Nullstellen runden und prüfweise in die orginal Formel einsetzen.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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