Microsoft Excel

Herbers Excel/VBA-Archiv

Wegen Wochenende... | Herbers Excel-Forum


Betrifft: Wegen Wochenende... von: alifa
Geschrieben am: 20.11.2009 07:53:24

Hallo,
trau ich mich mit diesem Problem. Es stammt aus einem alten Rätsel, könnte ein Klassiker sein. Ich selber habe es versucht, klappt leider nicht. Gesucht sind 5 natürliche zehnstellige verschiedene Zahlen, die jede Ziffer von 0 bis 9 genau einmal beinhalten. die Null darf nicht am Anfang stehen. Bedingungen:
a+c=2*(b+c+d+e) und d+e=(b+c+d)/2. Das kann man noch vereinfachen. Das sind genau die Daten aus dem Problem. Mein Makro hat in 4 Stunden keine Lösung gefunden, deswegen hatte ich abgebrochen. Vielleicht hat jemand Spaß daran!
Gruß, Erhard

  

Betrifft: AW: Wegen Wochenende... von: fcs
Geschrieben am: 20.11.2009 08:49:54

Hallo alifa,

ich würde an deiner Stelle mal versuchen, das Problem mit dem Solver in Excel zu lösen.

Sind zwar jede Menge Randbedingungen, aber eigenlich müsste Excel das noch gebacken krieben mit 10 stelligen Zahlen.

Ich propier es heute Abend jedenfalls auch noch mal.

Gruß
Franz


  

Betrifft: AW: Wegen Wochenende.Solver-Versuch von: fcs
Geschrieben am: 20.11.2009 17:58:34

Hallo alifa,

ich hab mal versucht, den Solver in Excel zu bemühen.

Gefundene Lösungen sind zum Teil abhängig von den Startwerten.
Aber spätestestens dann, wenn ich versuche das Kriterium "jede Ziffer von 0 bis 9 darf nur einmal in den Zahlen vorkommen" einzubeziehen erhalte ich keine Lösungen mehr.

Mit den Bedingungen:
a+c=2*(b+c+d+e) Formel (1)
d+e=(b+c+d)/2    Formel (2)
oder auch umgeformt
a = 3*b + 2*c +d bzw. 0 = a - (3*b + 2*c +d)  Formel (1a)
e = 0,5 * ( b+c-d) bzw. 0 = e - 0,5 * ( b+c-d)    Formel (2a)

a bis e = Element der natürlichen Zahlen (ganze Zahlen)
a bis e >= 1023456789
a bis e <= 9876543210
a<>b, b<>c, c<>d, d<>e
Hier ein paar Solverlösungen:
Name	Lösung 01	Lösung 02	Lösung 03	Lösung 04	Lösung 05
Var_A	9876543204	9876543209	9876543203	9876543197	9776689101
Var_B	1850294238	1850294239	1850294237	1850294236	1850294736
Var_C	1563714504	1563714505	1563714505	1563714503	1563784209
Var_D	1198231482	1198231482	1198231482	1198231483	1098236475
Var_E	1107888630	1107888631	1107888630	1107888628	1157921235

Aus den Bedingungen kann man schon mal Grenzen ableiten für die 1. Ziffer der Zahlen.
A>= 6...
B<= 2...
C<= 3...
D <=4...

und für E mit hoher wahrscheinlichkeit 1...

Die Werte für B, C und D könnte man jetzt in einer Permutation mit den Werten 0 bis 9 ohne Wiederholung in den obigen Grenzen varieren und die Werte für A und E mit den Formeln 1a und 2a berechnen und prüfen, ob die Bedingungen auch für diese beiden zahlen erfüllt werden auch erfüllt werden, wobei auch die Bedingung B+D>D immer erfüllt sein muss.

Aber ob das dann nach ein par Stunden rechenzeit zum Ziel führt?

Gruß
Franz


  

Betrifft: AW: Wegen Wochenende.Solver-Versuch von: alifa
Geschrieben am: 20.11.2009 21:53:32

Hallo Franz,
...(aus dem Salzkammergut ?) Danke für Deine Versuche. Ich weiß, es ist eine harte Nuss! Ich habe das Makro von Erich dahingehend geändert, dass alle 4 Zahlen verschieden sind. In 4 Stunden gab es ca 1500 Ergebnisse. Doch keines erfüllte die Kriterien für die 5. Zahl, e. Das d war zu groß. Die zusätzliche Bedingung: (b+c) größer als 3070370367 könnte Abhilfe bringen, und weniger Ergebnisse, leider mehr Zeit brauchen. Aus diesen 3 Ergebnissen wird dann e determiniert. e=(b+c-d)/2. Wahrscheinlich beginnt e mit 1...Am Wochenende bin ich nicht da, aber ab Montag will ich das versuchen. Wir wollen das Thema nur so lange es Spaß macht, verfolgen! Du hast mir auch bis jetzt schon einige Mal geholfen. Auch dafür herzlichen Dank!
Gruß, Erhard


  

Betrifft: AW: Wegen Wochenende... von: Björn B.
Geschrieben am: 20.11.2009 08:53:30

Hallo Erhard,

naja, wenn es ein Rätsel ist, dann sag uns doch mal das Rätsel.

Rätsel lassen sich mit Logik lösen, Deiner Aufgabe hier fehlt etwas der Hintergrund.
Es gibt allein schon 9 x 9! = 3.265.920 verschiedene Zahlen, die Deiner ersten Bedingung entsprechen.
5 davon sollen nun in die Formel(n) passen. Das wären dann (wenn ich davon ausgehe, dass eine Zahl nicht doppelt kommen darf)
3.265.920 x 3.265.919 x 3.265.918 x 3.265.917 x 3.265.916 = 3,72 * 10^32 Möglichkeiten.

Diese möchtest du nicht alle per VBA prüfen, oder ;-)
Da gibt es sicher einen anderen Lösungsansatz.

Gruß
Björn B.