Vorlesung 4 / Aufgabe 5
This commit is contained in:
parent
b1d4deb0e3
commit
7e87a3bec2
@ -1,73 +0,0 @@
|
|||||||
class Aufgabe {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
final int RECHTS = 1;
|
|
||||||
final int LINKS = 0;
|
|
||||||
final int NUM_FROESCHE = 100000;
|
|
||||||
|
|
||||||
// Neuer Frosch startet bei Feld 1.
|
|
||||||
int position = 1;
|
|
||||||
int position_max = 0;
|
|
||||||
|
|
||||||
// Es gibt zwei Eimer in welchen ein Frosch landen kann.
|
|
||||||
// Eimer bei Index 0 ist der linke Eimer.
|
|
||||||
// Eimer bei Index 1 ist der rechte Eimer.
|
|
||||||
int[] eimer = {0, 0};
|
|
||||||
|
|
||||||
// Auf der Zahlengerade springt der aktuelle Frosch.
|
|
||||||
// Das Feld 0 ist bereits ein Eimer (der rechte Eimer).
|
|
||||||
// Wenn der Frosch den Index auf der linken Seite verlässt springt er in den linken Eimer.
|
|
||||||
int[] zahlengerade = new int[1000];
|
|
||||||
|
|
||||||
// Die Zahlengerade wird initialisiert. Am Anfang zeigen alle Felder nach rechts.
|
|
||||||
// 0 = Frosch springt nach links.
|
|
||||||
// 1 = Frosch springt nach rechts.
|
|
||||||
for(int i = 0; i < zahlengerade.length; i++) {
|
|
||||||
zahlengerade[i] = RECHTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schleife mit welcher alle Frösche durchlaufen werden.
|
|
||||||
// Es ist immer nur ein Frosch auf der Zahlengerade unterwegs.
|
|
||||||
for(int anzahl_froesche = NUM_FROESCHE; anzahl_froesche > 0; anzahl_froesche--) {
|
|
||||||
position = 1;
|
|
||||||
|
|
||||||
// Der Frosch bewegt sich so lange auf der Zahlengerade bis dieser in einen Eimer fällt.
|
|
||||||
// Es steht ein Eimer auf Index 0 und Index -1.
|
|
||||||
while(position > 0) {
|
|
||||||
|
|
||||||
// Wenn der Frosch das Feld berüht ändert sich die Richtung des Felds.
|
|
||||||
zahlengerade[position] = (zahlengerade[position] == RECHTS) ? LINKS : RECHTS;
|
|
||||||
|
|
||||||
// Je nach Richtung muss der Frosch jetzt springen.
|
|
||||||
if (zahlengerade[position] == RECHTS) {
|
|
||||||
position += 1;
|
|
||||||
|
|
||||||
// Die maximale Position soll gespeichert werden.
|
|
||||||
if (position_max < position) {
|
|
||||||
position_max = position;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// Der Frosch soll nach links springen.
|
|
||||||
// Er könnte jetzt in einen Eimer springen.
|
|
||||||
if (position == 1) {
|
|
||||||
|
|
||||||
// Der Frosch springt in den linken Eimer.
|
|
||||||
eimer[0]++;
|
|
||||||
} else if (position == 2) {
|
|
||||||
|
|
||||||
// Der Frosch springt in den rechten Eimer.
|
|
||||||
eimer[1]++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Der Frosch springt nach links (evtl. in einen Eimer).
|
|
||||||
position -= 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ausgabe der wichtigsten Informationen.
|
|
||||||
System.out.printf("Linker Eimer (Index -1): %d Frösche\n", eimer[0]);
|
|
||||||
System.out.printf("Rechter Eimer (Index 0): %d Frösche\n", eimer[1]);
|
|
||||||
System.out.printf("Maximale Position auf der Zahlengerade: %d\n", position_max);
|
|
||||||
}
|
|
||||||
}
|
|
54
VL04/Aufgabe05/Aufgabe05.java
Normal file
54
VL04/Aufgabe05/Aufgabe05.java
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package VL04.Aufgabe05;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vorlesung 4 / Aufgabe 5
|
||||||
|
*
|
||||||
|
* @author Sebastian Brosch
|
||||||
|
*/
|
||||||
|
public class Aufgabe05 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
final int DIR_LEFT = 0;
|
||||||
|
final int DIR_RIGHT = 1;
|
||||||
|
final int NUM_FROGS = 100;
|
||||||
|
int[] numbersrow = new int[1000];
|
||||||
|
int[] bucket = { 0, 0 };
|
||||||
|
|
||||||
|
int position = 1;
|
||||||
|
int position_max = position;
|
||||||
|
|
||||||
|
for (int i = 0; i < numbersrow.length; i++) {
|
||||||
|
numbersrow[i] = DIR_RIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int f = NUM_FROGS; f > 0; f--) {
|
||||||
|
position = 1;
|
||||||
|
|
||||||
|
while (position > 0) {
|
||||||
|
numbersrow[position] = (numbersrow[position] == DIR_RIGHT) ? DIR_LEFT : DIR_RIGHT;
|
||||||
|
|
||||||
|
if (numbersrow[position] == DIR_RIGHT) {
|
||||||
|
position++;
|
||||||
|
|
||||||
|
if (position_max < position) {
|
||||||
|
position_max = position;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (position) {
|
||||||
|
case 1:
|
||||||
|
bucket[0]++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
bucket[1]++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
position -= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.printf("Linker Eimer: %d Frösche\n", bucket[0]);
|
||||||
|
System.out.printf("Rechter Eimer: %d Frösche\n", bucket[1]);
|
||||||
|
System.out.printf("Maximale Position auf der Zahlengerade: %d\n", position_max);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user