Erste Schritte Berechnung Ratten vermehrung

jaykop

Mitglied
Hallo,

ich habe hier zwar zu der gegebenen Aufgabe eine Musterlösung jedoch wollte ich dies so ändern wie ich es von der Aufgabe Wort wörtlich verstanden habe. In de Musterlösung wurde mit nur einer schleife ausgekommen wobei geschickt das Problem gelöst wurde damit die Baby Ratten nach zwei Monaten auch zu den geschlechtsreifen gehören. Jedoch verstehe ich die Lösung nicht und es irritiert mich ein wenig. Deshalb wollte ich bei der Lösung einen anderen weg bei der einschlagen.

Aufgabenstellung war:
Ein Rattenpärchen kann jeden Monat ca. 12 kleine Ratten werfen, die nach ca. zwei Monaten selbst geschlechtsreif sind. Unter der Annahme, dass genau gleich viele männliche wie weibliche Ratten in einem Wurf sind und Ratten niemals sterben: wieviele Ratten existieren mit obigen Annahmen nach n Monaten, wenn ein Wurf genau 12 kleine Ratten hat und die Geschlechteraufteilung gleichmäßig ist?



Funktionierende Lösung:
Java:
        int paare = 1;        // Anzahl der Paare, die Nachwuchs bekommen koennen
        int kinder = 0;       // Anzahl der Paare, die erst im naechsten Monat Nachwuchs bekommen
        int babies = 0;       // Anzahl der Paare, die erst in zwei onaten Nachwuchs bekommen
        int gesamtpopulation; // Anzahl aller Ratten aller Altersstufen
        int monate = 12;


        for (int monat = 0; monat <= monate; monat++) {

            // Gesamtzahl bestimmen
            gesamtpopulation = (paare + kinder + babies) * 2;

            //jetzt werden alle aelter

            paare = paare + kinder;
            kinder = babies;

            // dann bekommen die Paare Nachwuchs
            babies = paare * 6;

            System.out.println("Anzahl! Ratten nach " + monat + " Monaten ist " + gesamtpopulation);

    }

AUSGABE:
Code:
Anzahl! Ratten nach 0 Monaten ist 2
Anzahl! Ratten nach 1 Monaten ist 14
Anzahl! Ratten nach 2 Monaten ist 26
Anzahl! Ratten nach 3 Monaten ist 110
Anzahl! Ratten nach 4 Monaten ist 266
Anzahl! Ratten nach 5 Monaten ist 926.....usw



MEINE VERSION:
Ich vermute hier fehlt noch was in der if-Abfrage aber komme irgend wie nicht drauf :oops:
Könnt ihr mir vielleicht auf die Sprünge helfen?

Java:
        int erwachsene = 2;
        int kleineRatten = 0;
        int reifeRatten = 0;
        int gesamtpopulation = 0;
        int monate = 12;


        for (int monat = 0; monat <= monate; monat++) {
            
            // Gesamtzahl bestimmen
            gesamtpopulation = erwachsene + reifeRatten + kleineRatten;
            
            /* nach 2 Monaten gehören die kleinen Ratten auch zu den
             * geschlechtsreifen
             */
            if (monat >= 2) {
                reifeRatten = kleineRatten;
            }

            kleineRatten += 12;

            System.out.println("Anzahl! Ratten nach " + monat + " Monaten ist " + gesamtpopulation);

        }

AUSGABE:
Code:
Anzahl! Ratten nach 0 Monaten ist 2
Anzahl! Ratten nach 1 Monaten ist 14
Anzahl! Ratten nach 2 Monaten ist 26
Anzahl! Ratten nach 3 Monaten ist 62
Anzahl! Ratten nach 4 Monaten ist 86
Anzahl! Ratten nach 5 Monaten ist 110
Anzahl! Ratten nach 6 Monaten ist 134...usw
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
was soll man sagen, es gibt keinen strukturellen Java-Fehler, du berechnest nur völlig anderes,
die Variable erwachsene bleibt immer genau bei 2, wie unschwer zu erkennen ist,

reifeRatten überschreibst du mit kleineRatten, was ist mit evtl. vorher vorhandenen?
immerhin bleiben die kleineRatten gleich, werden nächsten Monat wieder zu reifeRatten,
also ist kleineRatten im Grunde der Gesamtzähler..,

kleineRatten erhöht sich konstant um 12 jede Runde, völlig unabhängig von der vorhandenen Bevölkerung?

da letztlich kleineRatten und reifeRatten (immer etwa dasselbe wie kleineRatten) zusammengezählt werden,
steigt die Ausgabe um das Doppelte, um 24 pro Runde

alles schön und gut, aber einfach an der Aufgabe vorbei, da kann man ja kaum was korrigieren außer so dass genau der andere Code rauskommt,
> babies = paare * 6;
ist z.B. eine korrekte Berechnung neuer Ratten anhand der vorhandenen..
 

jaykop

Mitglied
Danke für die Antwort.
Mir ginge es bei dem neuen Lösungsweg eigentlich nur darum das man auch anhand des Codes sehen kann das die Geschlechtsreifen Ratten tatsächlich nach 2 Monaten Kinder kriegen. Mit der ersten Musterlösung wurde mir das irgend wie nicht so klar.

So sieht es irgend wie besser aus mit der if-Abfrage.
Funktioniert auch jetzt:
Java:
        int erwachsene = 2;
        int kleineRatten = 0;
        int reifeRatten = 0;
        int gesamtpopulation = 0;
        int monate = 12;


        for (int monat = 0; monat <= monate; monat++) {
            
            // Gesamtzahl bestimmen
            gesamtpopulation = erwachsene + reifeRatten + kleineRatten;
            
            /* nach 2 Monaten gehören die kleinen Ratten auch zu den
             * geslechtsreifen
             */
            if (monat >= 2) 
            {
                erwachsene = reifeRatten + erwachsene;
            }
            
            reifeRatten = kleineRatten;
            kleineRatten = erwachsene *6;

            System.out.println("Anzahl! Ratten nach " + monat + " Monaten ist " + gesamtpopulation);

        }
 

langhaar!

Bekanntes Mitglied
Danke für die Antwort.
Mir ginge es bei dem neuen Lösungsweg eigentlich nur darum das man auch anhand des Codes sehen kann das die Geschlechtsreifen Ratten tatsächlich nach 2 Monaten Kinder kriegen. Mit der ersten Musterlösung wurde mir das irgend wie nicht so klar.

Tja, bei deinem Code ist aber die if Abfrage völlig überflüssig; du kannst es entfernen und das Programm macht das gleiche :oops:
Eine Zeile, die keinen Effekt hat, kann doch ein Problem kaum besser veranschaulichen :noe:

Anders gesagt: dass Ratten nach 2 Monaten geschlechtsreif sind, ist im Programm über 2 Status abgebildet, diese werden mit Variablen festgehalten.

Die if Abfrage hat damit nichts zu tun. Dein if sagt nicht aus, dass alle 2 Monate etwas gilt, sondern dass etwas ab dem 2. Monat gilt; somit trifft es nur auf den allerersten Wurf zu.

Wie soll ein if, das statisch auf den 2. Monat abfragt, irgendwie anzeigen können, dass Ratten, die im 4. Monat geboren wurden im 6. geschlechtsreif sind?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
die Kommentar-Wirkung ist nicht zu unterschätzen,
hier ansonsten herauszufinden, dass kleineRatten erst am Ende von Monat 0 gesetzt wird, daraufhin reifeRatten erstmals Mitte Monat 1 und schließlich dann
> erwachsene = reifeRatten + erwachsene;
erst in Monat 2 was bewirkt, wäre schon gehoben aufwendig
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
Abraham42 Berechnung der Kühlung Java Java Basics - Anfänger-Themen 12
S Hashcode-Berechnung + ^ Java Basics - Anfänger-Themen 2
J Median-Berechnung von 2D-Teilarrays Java Basics - Anfänger-Themen 56
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Berechnung der Rektaszension und Deklination eines Sterns Java Basics - Anfänger-Themen 7
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
V Erste Schritte Pi Berechnung Java Basics - Anfänger-Themen 47
M Berechnung der Reststrecke bei Graphen Java Basics - Anfänger-Themen 1
V Algorithmus zur fortlaufenden Berechnung des duechscjnt Java Basics - Anfänger-Themen 1
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Berechnung Median mit Methode Java Basics - Anfänger-Themen 7
CptK Methoden Berechnung von Anfangsgeschwindigkeit und Winkel Java Basics - Anfänger-Themen 27
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Erste Schritte Berechnung des Paketportos - Problem/Frage Java Basics - Anfänger-Themen 52
J Gleitkommazahlen, Berechnung von pi Java Basics - Anfänger-Themen 4
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
kilopack15 Verzweiflung wegen Berechnung mit Multithreading Java Basics - Anfänger-Themen 1
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
Salo Berechnung von Winkeln Java Basics - Anfänger-Themen 28
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
Ghostman1711 Pi berechnung Methode aufrufen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
K Best Practice Algorithmus für Berechnung von Zahlenreihenfolge Java Basics - Anfänger-Themen 12
N Verzögerte Berechnung "Lazy" Java Basics - Anfänger-Themen 8
J Erste Schritte Rundungsproblem - Berechnung Notendurchschnitt Java Basics - Anfänger-Themen 13
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
T Java double berechnung fehler Java Basics - Anfänger-Themen 2
M Berechnung in Java Java Basics - Anfänger-Themen 4
S Berechnung der Arbeitstage in einem Zeitraum Java Basics - Anfänger-Themen 9
E Problem bei rekursiver Berechnung des Binomialkoeffizienten Java Basics - Anfänger-Themen 5
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
S Double, int, Berechnung Java Basics - Anfänger-Themen 3
C Nach Berechnung runden und Wert ausgeben Java Basics - Anfänger-Themen 7
E Berechnung für Shop einbinden Java Basics - Anfänger-Themen 8
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
S Euklid Algorithmus zur Berechnung des GGTs Java Basics - Anfänger-Themen 2
OnDemand Berechnung in die start und paint Methode eines Applets Java Basics - Anfänger-Themen 28
P Schleife zur Berechnung von einer Summe Java Basics - Anfänger-Themen 16
F Berechnung einer linearen Abschreibung Java Basics - Anfänger-Themen 5
E Berechnung von Punkten Java Basics - Anfänger-Themen 4
D Berechnung des Abstandes von zwei Punkten in einem Koordinatensystem Java Basics - Anfänger-Themen 14
A Methoden PI-Berechnung Java Basics - Anfänger-Themen 22
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
A Erste Schritte Steuer Berechnung, Alters Abhängig Java Basics - Anfänger-Themen 5
T Erste Schritte Berechnung von gerade und ungerade Zahlen Java Basics - Anfänger-Themen 10
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
T Iterative Berechnung einer Satellitenbahn Java Basics - Anfänger-Themen 20
M Java Berechnung mit mehreren Lösungen? Java Basics - Anfänger-Themen 9
D Nullstellen-Berechnung Java Basics - Anfänger-Themen 10
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
A berechnung multiplikatives inverses Java Basics - Anfänger-Themen 5
J Berechnung des aktuellen Alters auf Basis des Geburtstags Java Basics - Anfänger-Themen 45
J Datentypen Fehler bei Berechnung mit Double und Int-Werten Java Basics - Anfänger-Themen 22
G Berechnung von Winkeln mit Cosinussatz Java Basics - Anfänger-Themen 2
B Arrays verwenden für Berechnung Java Basics - Anfänger-Themen 3
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
B Hausaufgabe Berechnung quadratischer Funktion Java Basics - Anfänger-Themen 16
U Alter Berechnung + sortierung Java Basics - Anfänger-Themen 6
P Berechnung wird nicht durchgeführt Java Basics - Anfänger-Themen 2
D Berechnung von Ostern und Ramadan! Java Basics - Anfänger-Themen 24
N Algorithmus für Berechnung einer Quersumme Java Basics - Anfänger-Themen 9
D Berechnung von Geldausgabe Java Basics - Anfänger-Themen 22
F Berechnung von Kugeln! Java Basics - Anfänger-Themen 9
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
S Hausaufgabe: Java-Programm schreiben zur Berechnung von x und y Java Basics - Anfänger-Themen 9
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
Semox Ersten Wert eines Intervalls bei Berechnung einschließen Java Basics - Anfänger-Themen 8
J Logarithmische Berechnung und Arrays Java Basics - Anfänger-Themen 2
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
B Berechnung von Preisen per Java-Programm Java Basics - Anfänger-Themen 27
M Alters berechnung aus Geburtsjahr aus dem Buch Java Basics - Anfänger-Themen 5
O Fehler in der String-Distanz-Berechnung Java Basics - Anfänger-Themen 5
-horn- "Berechnung vorwärts, Optimierung rückwärts?" - Wie würdet ihr das machen? Java Basics - Anfänger-Themen 8
P iterative Berechnung Java Basics - Anfänger-Themen 9
1 Berechnung von PI mithilfe von Buffons Nadelproblem Java Basics - Anfänger-Themen 2
G Berechnung zwei Komplexen Zahlen Java Basics - Anfänger-Themen 34
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
J Programm für interaktive Berechnung von Temperaturverläufen Java Basics - Anfänger-Themen 9
K Annährende ganzzahlige Berechnung der Wurzel Java Basics - Anfänger-Themen 8
L Berechnung von Perioden Java Basics - Anfänger-Themen 4
D einfach berechnung einer onlinezeit Java Basics - Anfänger-Themen 25
S Euklid Klasse mit Methoden zur Berechnung des ggT Java Basics - Anfänger-Themen 23
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
G Berechnung von N-Tageslinien von Aktienkursen Java Basics - Anfänger-Themen 13
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
W Schaltjahr Berechnung Java Basics - Anfänger-Themen 24
A Probleme mit Programm zur Pi-Berechnung Java Basics - Anfänger-Themen 6
X Temperatur-Berechnung /Array(?) Java Basics - Anfänger-Themen 5
L Berechnung Summe Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben