AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

4 Variablen sollen = 1302 sein.

Ein Thema von Dave_lernt_Delphi · begonnen am 26. Apr 2009 · letzter Beitrag vom 1. Mai 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#11

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 21:57
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
Miniaturansicht angehängter Grafiken
auslastung_181.jpg  
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 22:14
Warum generierst du nicht einfach drei Zufallszahlen und nimmst für die vierte die Differenz zu deinem Zielwert?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 22:16
Ä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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#14

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 22:25
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 22:35
Zitat von gammatester:
und sollten von den Schleifen auch gefunden werden
Werden sie ja auch...
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 23:03
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#17

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 23:04
Ich hab da auch ne Lösung
Delphi-Quellcode:
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;
Und das sogar in konstanter Zeit (= O(1) ) wenn nicht gar schneller
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#18

Re: 4 Variablen sollen = 1302 sein.

  Alt 29. Apr 2009, 23:05
Ich kenne ne Möglichkeit, die schneller als deine wäre
(deine beinhaltete zu viele Jumps & Push/Pops)

MfG
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: 4 Variablen sollen = 1302 sein.

  Alt 30. Apr 2009, 01:22
Zitat von BAMatze:
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.
Naja, um genau zu sein geht jede Zahl für drei der Variablen, wenn man die vierte daraus berechnet.

Deshalb ist eben wirklich die Frage was das ganze für einen Sinn hat.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Dave_lernt_Delphi

Registriert seit: 19. Mär 2009
29 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: 4 Variablen sollen = 1302 sein.

  Alt 1. Mai 2009, 09:03
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
Ich hoffe, dass ihr mir helfen könnt.
Viele Grüße aus dem Kreis Hildesheim
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:01 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