Die Ferien sind vorbei und ich habe riesige Probleme mit einer einfachen BlueJ aufgabe

K

Karl96

Gast
Hey ihr,
bei uns in Rheinland-Pfalz sind heute die Ferien vorbei und unser Lehrer hat uns eine einfache Aufgabe gegeben, die jedoch keiner von meinen Mitschülern lösen kann und der Lehrer kann echt gar nix erklären, könnt ihr mir helfen? Ihr seid meine Rettung!

Liebe Grüße, Karl

Aufgabe 1: Optimierungsaufgabe (Schleifen, mittelschwer) [1]

Auf einer Wiese hütet Ziegenpeter seine Tiere – Ziegen, Schafe, Gänse und Hühner. Heidi, die gerade vorbeikommt fragt den Peter nach der Anzahl seiner Tiere. Dieser antwortet listig:

"Ich hüte doppelt so viele Gänse wie Hühner, aber dreimal so viele Schafe wie Ziegen. Insgesamt haben meine Tiere 360 Beine."

Leider hatte Peter nicht bedacht, dass sein Rätsel mehr als eine Lösung zulässt. Schreibe ein Programm, das alle gültigen Tierkombinationen ausgibt, die das Rätsel zulässt.

(Zur Kontrolle: Eine der Lösungen ist 56 Gänse, 36 Schafe, 28 Hühner und 12 Ziegen. )
 

eldrior

Aktives Mitglied
Naja, du kannst das ja einfach durchprobieren. Erst setzt du alle Tiere auf 0. Dann erhöhst du die Ziegen so lange, bis die Anzahl der Beine >= 360 sind. Wenn = 360, dann überprüfen, ob andere Bedingungen passen, wenn ja, konstellation speichern, sonst Ziegen = 0 und Hühner +1. So dann hocharbeiten bis du 180 Gänse hast.
 

njans

Top Contributor
Naja du hast hier zwei Stellschrauben: Hühner und Ziegen. Du kannst einfach eine Schleife bauen.
Dabei beachtest du dann, dass:
- Wenn Hühner und Gänse z.B. 24 Beine haben, dann muss der Rest an Ziegen und Schafe gehen.
-- Du darfst weder zu viel noch zu wenig Beine haben. Sonst ist die Kombination ungültig.


Ich habe das eben mal gelöst und du wurst folgendes brauchen:
1 Schleife, diese geht bei mir von 0 bis 60. 60 steht hier für die maximale Anzahl an Hühnern. Bedenke, es gibt für jedes Hunh zusätzlich 2 Gänse, also 3 Zweibeiner. Bei den Vierbeinern kommen diese immer im 4rer-Pack. Wenn du also 60 Hühner hast, dann hast du noch 120 Gänse und die Tiere haben insgesamt 360 Beine.


Sobald du angibst, wie viele Zweibeiner du hast, weißt du immer, wie viele Beine noch zur verfügung stehen. Diese Zahl MUSS glaat durch 16 ((3 Schafe + 1 Ziegen) * 4 Beine) teilbar sein (modulo Operation). Wenn dies nicht der Fall ist, dann kann diese Verteilung nicht funktionieren. Ansonsten hast du hier eine valide Kombination und musst diese nur noch ausgeben.

 
Zuletzt bearbeitet:

Tom299

Bekanntes Mitglied
Man kann bei 1 anfangen, weil es minimum 1 Tier gibt, sonst gäbe es keine 2x und 3x.
Zählt man die Ziegen hoch (äußere Schleife), hat man immer 16 Beine oder ein ein vielfaches davon (1 Ziege + 3 Schafe = 16 Beine). Es gibt aber auch minimum 6 Beine von Gans und Huhn. Also zählt man die Ziegen bis (360-6)/16 = 22,125 ~ 23.
Die Hühner in der inneren Schleife zählt man auch ab 1. Es gibt minimum 16 Beine von Schaf und Ziege, daher zählt man hier von (360-16)/6 = 57,3 ~ 58.

Die innere Schleife solange addieren, bis man 360 Beine hat und dann checken, ob 3:1 und 2:1 erfüllt ist. Wenn ja, ist dies ein Treffer, ansonsten break aus der inneren und weiter mit der äußeren schleife usw.
 

eldrior

Aktives Mitglied
Optimieren kann man viel, du kannst dir auch ne Formel aufstellen und die lösen, das wäre noch schneller, aber hier gehts doch erstmal darum überhaupt eine Lösung zu haben und diese bestenfalls sogar zu verstehen.
 

Neue Themen


Oben