![]() |
Re: 4 Variablen sollen = 1302 sein.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich glaube nicht, dass sich Dein Programm "aufhängt" - der Auslastungsanzeige nach arbeitet es, die Frage ist nur, wie lange ?? ...hab nach 2 Minuten abgebrochen |
Re: 4 Variablen sollen = 1302 sein.
Warum generierst du nicht einfach drei Zufallszahlen und nimmst für die vierte die Differenz zu deinem Zielwert?
|
Re: 4 Variablen sollen = 1302 sein.
Ähem! 2^128 Schleifendurchläufe, wie ich bereits bemerkt habe. Selbst auf einem absolut utopischen Superrechner dauert das 1348785383850751774 Jahre. ;)
EDIT: Die ganze Aufgabenstellung ist absolut unsinnig. Es ist möglich, in konstanter Zeit ein solches Tupel zu finden und es ist absolut unmöglich, alle zu finden, weil es unendlich viele gibt. |
Re: 4 Variablen sollen = 1302 sein.
Ist doch völlig trivial, wenn keine Bedingungen gestellt werden (und sollten von den Schleifen auch gefunden werden). Lösunge von w * x - y + z = 1302 dutch hinsehen:
w x y z 0 x 0 1302 0 x 1 1303 .... w 0 0 1302 w 0 1 1303 1 1302 y -y und so weiter und sofort. Gammatester |
Re: 4 Variablen sollen = 1302 sein.
Zitat:
Sobald die 4503599627370496 Durchläufe fertig sind... Denn High(9) ist 127, denn das ist innerhalb des Datentyps Byte, High(9999) ist 32767, denn das ist im Datentyp Word. 32768 * 32768 * 32768 * 128 = 4503599627370496 Bei schätzungsweise einer halben Milliarde Durchläufe pro Sekunde mit einem modernen PC würde das etwa 4 Tage dauern... Ohne Low und High mit i := 1 to 9999 usw. würde es immer noch 5 Stunden oder so dauern. |
Re: 4 Variablen sollen = 1302 sein.
Also mal zur kurzen Darstellung (was auch schon meine Vorredner erkannt haben) hast du ein 3fach unbestimmtes Gleichungssystem. Dies bedeutet für mich eigentlich nur eins, dass du unendlich viele Lösungen (allein im Bereich der Ganzen- oder Integerzahlen) hast. Nimmst du ein Reales Zahlensystem sollte sich der Raum an möglichen Lösungen um die Potenz Unendlich erweitern.
Dein Vorteil, soweit du die Suche der Möglichen Kombination nicht durch weitere Verknüpfungen einschränkst(z.B. x = 2w, ...), ist die limitierte Verarbeitung deines Rechners mit Zahlen. Also ergibt sich eine berechenbare Anzahl (auch wenn diese ziemlich groß) an Lösungen, was allerdings, wie ich jaenicke entnehme eine "kurze" Weile dauern sollte. Fazit für dich sollte sein, dass du dir über die Randbedingungen (Mathematische Räume in denen sich deine Zahlen bewegen sollen, Abhängigkeiten einzelner Variablen von anderen und so weiter)klarer wirst. Allerdings ist auch hier etwas Vorsicht zu bewahren, schnell rutscht man mal in den Bereich der komplexen Zahlen und erweitert damit die Anzahl an Lösungen warscheinlich um eine Dimension unendlicher Lösungen. Ps.: ich weiß mathematisch gesehen sind hier leichte Ungenauigkeiten enthalten, was allerdings aufgrund der Verständlichkeit für Laien zu verschmerzen sein sollte. Möchte das hier nicht in eine theoretisch mathematische Diskusion ausarten lassen, in der über Theorien wie "Ist Unendlich hoch irgendwas nicht immer noch Unendlich" oder oder oder. Ich denke der Punkt, die Aufgabenstellung vieleicht nochmal zu überdenken ist damit verständlich rüber gekommen. BAMatze |
Re: 4 Variablen sollen = 1302 sein.
Ich hab da auch ne Lösung :stupid:
Delphi-Quellcode:
Und das sogar in konstanter Zeit (= O(1) ) wenn nicht gar schneller ;)
function Get_w(): Integer;
begin Result := 20; end; function Get_x(): Integer; begin Result := 70; end; function Get_y(): Integer; begin Result := 100; end; function Get_z(): Integer; begin Result := 2; end; // Aufruf: procedure evaluate; begin Result := Get_w * Get_x - Get_y + Get_z; // ergibt 1302 end; |
Re: 4 Variablen sollen = 1302 sein.
Ich kenne ne Möglichkeit, die schneller als deine wäre ;)
(deine beinhaltete zu viele Jumps & Push/Pops) :P MfG |
Re: 4 Variablen sollen = 1302 sein.
Zitat:
Deshalb ist eben wirklich die Frage was das ganze für einen Sinn hat. :stupid: |
Re: 4 Variablen sollen = 1302 sein.
Das finde ich wirklich 'ne gute Idee, ich werde das jetzt mal ausprobieren.
Vielen Dank für die reichlichen Antworten und Ideen zum Thema. Euer Dave |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz