Guten Abend,
meine Aufgabe lautet:
Frau Meier muss ihre n Kinder zu Bett bringen. Diese sollen aber heute alleine zu Bett gehen. Jedem Kind ist ein bestimmtes Bett zugeordnet und auch nur ein Kind darf in ein Bett. Dabei legt sich jedes Kind zufällig in ein Bett.
Nun müssen sie zählen, wie viele Kinder im Mittel im richtigen Bett landen (dass jemand zuf¨allig das eigene Bett trifft, ist ja nicht ausgeschlossen). Simulieren sie diesen Abend mittels einem Programm.
Meine Überlegung:
1. Anzahl Betten = Anzahl Kinder
2. Wenn ein Bett bereits belegt ist, darf es nicht nochmal vergeben werden.
Mein bisheriger Code:
Leider kommt es bei der Zeile, wo ich bereits ein belegtes Bett hinzufüge zu einer NullPointerException...
Danke im Voraus
Bäuerle
meine Aufgabe lautet:
Frau Meier muss ihre n Kinder zu Bett bringen. Diese sollen aber heute alleine zu Bett gehen. Jedem Kind ist ein bestimmtes Bett zugeordnet und auch nur ein Kind darf in ein Bett. Dabei legt sich jedes Kind zufällig in ein Bett.
Nun müssen sie zählen, wie viele Kinder im Mittel im richtigen Bett landen (dass jemand zuf¨allig das eigene Bett trifft, ist ja nicht ausgeschlossen). Simulieren sie diesen Abend mittels einem Programm.
Meine Überlegung:
1. Anzahl Betten = Anzahl Kinder
2. Wenn ein Bett bereits belegt ist, darf es nicht nochmal vergeben werden.
Mein bisheriger Code:
Code:
import java.util.ArrayList;
import java.util.Random;
public class Kinder {
private ArrayList<Integer> belegteBetten;
/**
* Konstruktor
*/
public Kinder() {
belegteBetten = new ArrayList<>();
}
/**
* Die zu implementierende Methode
*
* @param kinder
* @return durchschnitt
*/
public double bett(int kinder) {
Random random = new Random();
int bett = 0;
int counter = 0;
double durchschnitt = 0.0;
for (int i = 0; i < kinder; i++) {
// Zahl zwischen 1 und dem übergebenen Wert
bett = random.nextInt(kinder) + 1;
belegteBetten.add(bett);
for (int j = 1; j <= kinder; j++) {
if (belegteBetten.contains(bett)) {
bett = random.nextInt(kinder) + 1;
} else if (bett == i) {
counter++;
}
}
}
durchschnitt = (durchschnitt + counter) / kinder;
return durchschnitt;
}
}
Leider kommt es bei der Zeile, wo ich bereits ein belegtes Bett hinzufüge zu einer NullPointerException...
Danke im Voraus
Bäuerle