Forum: Wissenschaft
Rätsel der Woche: Ochsen, Pferde und 1770 Taler
SPIEGEL ONLINE

Ein Mann möchte für 1770 Taler Tiere kaufen. Die Preise je Pferd und Ochse stehen fest und es soll kein Taler übrig bleiben. Ist das möglich?

Seite 1 von 7
frank_lomberg 10.03.2018, 20:37
1. Einfacher geht auch

Aufgrund der auf 1 endenden Preise für Ochse und Pferd muss die Gesamtzahl aller gekauften Tiere durch 10 teilbar sein. Dividiert man nun 1770 durch den Ochsenpreis und den Pferdepreis, erhält man eine obere und untere Grenze für die Gesamtzahl der gekauften Tiere, nämlich 84 und 57. Dazwischen gibt es nur 3 durch 10 teilbare Zahlen: 60, 70 und 80. Mit denen man dann 3 Gleichungssysteme aufstellen kann, z.B. 21x+31y=1770 und x+y=60. Diese sind trivial zu lösen und führen zu den bereits vorgestellten Lösungen.

Beitrag melden Antworten / Zitieren
DerDifferenzierteBlick 10.03.2018, 21:00
2. @frank_lomberg

Exakt so hab ich es auch gemacht..

Beitrag melden Antworten / Zitieren
rotella 10.03.2018, 21:07
3. Anderer Ansatz

Ansatz: Er kauft (10a+b) Pferde und (10c-b) Ochsen. +b und -b bedingen sich wegen der auf 1 endenden Preise und der durch 10 teilbaren Gesamtsumme:

31(10a+b) + 21(10c-b) = 1770 mit b = 0..9
31a + 21c = 177 -b = 168..177

a muss also zwischen 0 und max. 5 liegen, ich probiere alle sechs Varianten durch und sehe, dass es nur drei Lösungen geben kann:

a b c
5 1 1
3 0 4
0 9 8

Eingesetzt in die beiden Terme oben für die Anzahl der Tiere ergeben sich dann die Werte wie aus der Musterlösung.

Beitrag melden Antworten / Zitieren
ps71 10.03.2018, 21:13
4. Oder noch einfacher

Zitat von frank_lomberg
Aufgrund der auf 1 endenden Preise für Ochse und Pferd muss die Gesamtzahl aller gekauften Tiere durch 10 teilbar sein. Dividiert man nun 1770 durch den Ochsenpreis und den Pferdepreis, erhält man eine obere und untere Grenze für die Gesamtzahl der gekauften Tiere, nämlich 84 und 57. Dazwischen gibt es nur 3 durch 10 teilbare Zahlen: 60, 70 und 80. Mit denen man dann 3 Gleichungssysteme aufstellen kann, z.B. 21x+31y=1770 und x+y=60. Diese sind trivial zu lösen und führen zu den bereits vorgestellten Lösungen.
Es geht auch ganz ohne Gleichungen: Mit der Erkenntnis, dass die Gesamtzahl durch 10 teilbar sein muss, kann man auch wie folgt weiter überlegen: Es müssen mindestens 60 Tiere sein. 60 Pferde kosten 1860 Taler, also 90 zu viel. Jedes Pferd, das ich durch einen Ochsen ersetze, spart mir 10 Taler, also sind es 51 Pferde und 9 Ochsen. Die anderen Lösungen ergeben sich entsprechend aus 70 bzw. 80 Tieren.

Beitrag melden Antworten / Zitieren
IQ149 10.03.2018, 21:15
5. Nachtrag zu den Weinkisten (eine schöne Abrundung)

Kurz nachdem das zugehörige Forum geschlossen wurde, habe ich folgende Erkenntnis gewonnen.
Eine einfache und in dem 9x4-Schema leicht nachvollziehbare Strategie mit worst case 6 lautet:
A: Ziehe 3 Flaschen aus einer Kiste (Ergebnis: XYZ)
B: Ziehe 3 Flaschen aus der Kiste mit Deckel XYZ.
Bei jeder Kistenwahl in A ist nach den ersten beiden Flaschen eine Differenzierung möglich, die den best case 3
und viele case 4 und 5 Fälle ermöglicht, im case 3 muss allerdings die dritte Flasche unter einem anderen Deckel als in B gezogen werden.

Beitrag melden Antworten / Zitieren
IQ149 10.03.2018, 21:35
6. Besser geht's nicht (#1)

Ich finde diese Lösung einfacher und vor allem stringenter als das Original. Ein gelungener Einstiegsbeitrag für den Autor und dieses Rätselforum.

Beitrag melden Antworten / Zitieren
hellerim 10.03.2018, 22:33
7. Wer keine Lust zum Rechnen hat, der lässt rechnen:

Natürlich ist Eulers Lösung ein kleines Juwel; wenn Sie aber selbst nicht auf die Lösung kommen, lassen Sie das einfach Ihren Rechner machen. Dazu können sie den Browser benutzen und die Entwicklertools öffnen - bei Google Chrom funktioniert das z.B. mit Strg-Shift-I. Klicken Sie mit der Maus auf den Tab mit der Aufschrift "Console") und geben Sie dann folgendes ein:

for (let i = 1; i < 1770 / 31; ++i) {
if ((1770 - i * 31) % 21 === 0) console.log('x = ' + i + '; y = ' + (1770 - i * 31) / 21);
}

Die Idee geht so: Wenn x * 31 + y * 21 = 1770 sein sollen, muss x kleiner als 1770 / 31 sein, weil sonst schon die Anzahl der Pferde allein zu einem Wert führen würde, der die 1770 Taler überschreiten würde. Genauso muss x mindesten größer als 0 sein, weil 1770 nicht durch 21 teilbar ist, also nicht alles nur Ochsen sein können. Wir wollen nun mit "brute force" einfach alle ganzen Zahlen von 1 bis 1770 / 31 ausprobieren, und dazu eignet sich Ihr Rechner hervorragend. Wir schreiben eine Schleife (in JavaScript) mit einer Laufvariabeln i. Innerhalb der Schleife prüfen wir nach, ob Die Differenz von 1770 und i * 31 durch 21 teilbar ist, also bei Division durch 21 den Rest 0 ergibt. Diese Bedingung wird innerhalb der Klammer nach dem "if" angegeben - "%" ist der Modulo-Operator, der (in diesem Fall) den Rest bei Division durch 21 liefert. Wenn das zutrifft, dann ist unsere Gleichung x * 31 + y * 21 = 1770 erfüllt.Probieren Sie es einfach aus!
Vielleicht macht Ihnen ja Programmieren Spaß?

Beitrag melden Antworten / Zitieren
Dr. Hiob 10.03.2018, 23:38
8. deutliche einfacher ...

... als der Originallösungsweg.
Hab das schnell geexcelt (ich weiß, nicht elegant, brute force) und war in 2 Minuten fertig. Ich wollte damit abstecken, ob es überhaupt eine sinvolle Lösung gibt (ja).
Eine Frage bleibt mit allerdings: Warum nochmal genau muss die Gesamtanzahl der Tiere durch 10 teilbar sein?
Danke, KD

Beitrag melden Antworten / Zitieren
Dr. Hiob 10.03.2018, 23:40
9. deutlich einfacher ...

... als der Originallösungsweg.
Hab das schnell geexcelt (ich weiß, nicht elegant, brute force) und war in 2 Minuten fertig. Ich wollte damit abstecken, ob es überhaupt eine sinvolle Lösung gibt (ja).
Eine Frage bleibt mit allerdings: Warum nochmal genau muss die Gesamtanzahl der Tiere durch 10 teilbar sein?
Danke, KD

Beitrag melden Antworten / Zitieren
Seite 1 von 7