Zufallsexperiment

D.gigi

Aktives Mitglied
Ich hab ein Problem und zwar soll ich ein Würfelspiel erstellen die Aufgabe lautet:

Es gibt eine Reihe unterschiedliche Lösungen für diese Aufgabe. In Teilaufgabe a) sollten Sie die Lösung umsetzen, die Ihnen als erstes eingefallen ist. Haben Sie Kontrollstrukturen für die Lösung der Aufgabe verwendet? Überlegen sie sich nun zwei weitere Varianten. Von Ihren 3 Varianten soll jeweils eine
if-else-Abfragen beinhalten,
eine Verzweigung mit switch nutzen,
keine Kontrollstruktur nutzen.

ich hab es am Anfang so gemacht:
public class Würfel {


public static void main(String[] args) {

Math.random();
byte Würfel = (byte) (Math.floor(Math.random() * 6) + 1);
System.out.println(Würfel);
}
}

Das klappt auch ganz gut nur komm ich nicht drauf wie ich das den mit einer if_else oder einer switch Verzweigung anstellen soll und außerdem Weiß ich nicht was mit Kontrollstrukturen gemeint ist.
ich hoffe ihr könnt mir helfen.
 

D.gigi

Aktives Mitglied
@D.gigi Poste hier den genauen Wortlaut der Aufgabestellung
Aufgabe 3: Würfel
a) Schreiben Sie ein Programm, das einen sechsseitigen Würfel simuliert. Das Programm soll nach dem Starten jeweils ein Würfelergebnis eines normalen sechsseitigen Würfels ausgeben. Die Werte 1 bis 6 sollen, wie bei einem echten Würfel, gleich wahrscheinlich sein. Orientieren Sie sich an dem Programm „muenzwurf“ aus der Vorlesung. Zur Ermittlung einer gleichverteilten Zufallszahl zwischen 0 und 1 können Sie die Funktion: Math.random() nutzen.
b) Es gibt eine Reihe unterschiedliche Lösungen für diese Aufgabe. In Teilaufgabe a) sollten Sie die Lösung umsetzen, die Ihnen als erstes eingefallen ist.
Haben Sie Kontrollstrukturen für die Lösung der Aufgabe verwendet? Überlegen sie sich nun zwei weitere Varianten.
Von Ihren 3 Varianten soll jeweils eine if-else-Abfragen beinhalten,
eine Verzweigung mit switch nutzen,
keine Kontrollstruktur nutzen. Erstellen Sie für jede Variante ein eigenes Programm, welches Sie entsprechend benennen. Beachten Sie in allen Ihren Programmen die Code-Konventionen!

also soweit so gut die 3a hab ich schon erledigt weiter komm ich aber nicht
 

D.gigi

Aktives Mitglied
Also geht es nicht nur um eine Zahl die ausgegeben wird sondern mehrere. Wie oft soll die Münze bzw. der Würfel geworfen werden ?
nein es soll nur eine zahl ausgegeben werden in der Aufgabenstellung steht geschrieben: Das Programm soll nach dem Starten jeweils ein Würfelergebnis eines normalen sechsseitigen Würfels ausgeben. aber halt zwischen 1 und 6 und das mit eine if else schleife und einmal mit eine switch Verzweigung und ich hab keine Ahnung wie das gehen soll.
 

D.gigi

Aktives Mitglied
Ich denke nicht. Bei einem Ergebnis brauchts du keine Kontrollstrukturen.

Das ist der Hinweis. Ich denke in dem Programm wird die Münze öfter geworfen als einmal.
hm du hast mich jetzt echt unsicher gemacht also das war die Aufgabe mit dem muenz wurf:

public class muenzwurf

{ public static void main(String[] args) {
double zufallsZahl;
int muenze = 0;

zufallsZahl = Math.random();

if(x > 0.5) { System.out.println("Die Zufallszahl: " + zufallsZahl + " ist größer als 0.5");
muenze = 1;
}
else { System.out.println("Die Zufallszahl: " + zufallsZahl + " ist kleiner gleich 0.5");
muenze = 0;
}
System.out.println( "Der Münzwurf liefert: " + muenze);
} }
 

mihe7

Top Contributor
Naja, Math.random() liefert ja eine Zufallszahl zwischen 0 und 1 (excl.) Dieses Intervall könntest Du jetzt in sechs Teile teilen und per if-else prüfen, in welchem Teil des Interalls die Zufallszahl liegt. Das wäre dann das Ergebnis des Wurfes.
 

D.gigi

Aktives Mitglied
Naja, Math.random() liefert ja eine Zufallszahl zwischen 0 und 1 (excl.) Dieses Intervall könntest Du jetzt in sechs Teile teilen und per if-else prüfen, in welchem Teil des Interalls die Zufallszahl liegt. Das wäre dann das Ergebnis des Wurfes.
noch mal langsam und ausführlich bitte. Also ich habe ja mit dem ersten programm wo ich das mit dem math.random() gemacht habe ist ja richtig also es gibt mir ja eine zufällige zahl zwischen 1 und 6 aus aber wie genau soll das jetzt mit einer if else funktionieren ?
darauf komm ich halt nicht
 

mihe7

Top Contributor
Math.random() liefert eine Zufallszahl x mit 0 <= x < 1, also aus dem Intervall [0; 1[.

Das Intervall kannst Du in 6 Teile teilen:
[0; 1/6[
[1/6; 2/6[
[2/6; 3/6[
[3/6; 4/6[
[4/6; 5/6[
[5/6; 6/6[

Per if-else prüfst Du für eine Zufallszahl double x = Math.random() ab, ob 0 < x < 1/6 gilt. Ist dies der Fall, hast Du eine 1 gewürfelt. Ansonsten könnte es sein, dass 1/6 < x < 2/6 gilt. Ist dies der Fall, hast Du eine 2 gewürfelt usw.

Nachtrag: der Münzwurf macht genau das gleiche. Das Intervall wird in zwei Teile geteilt:

[0; 1/2[
[1/2; 2/2[

Und dann wird geprüft, ob die Zufallszahl im ersten Intervall liegt oder nicht :)
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben