Erste Schritte Random erzeugen

Devanther

Top Contributor
Klasse ZufallszahlenTester:
Code:
/**
* Beschreiben Sie hier die Klasse ZufallszahlenTester.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/

import java.util.Random;
import java.util.ArrayList;

public class ZufallszahlenTester
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private int x;
 
    private int zufallsgenerator;
 
    private ArrayList<String> dreiantworten;
 
    /**
     * Konstruktor für Objekte der Klasse ZufallszahlenTester
     */
    public ZufallszahlenTester()
    {
        dreiantworten =  new ArrayList<String>();// Instanzvariable initialisieren
        antwortlisteFuellen();
        x = 0;
    }
    public int eineZufallszahlAusgeben()
    { Random zufallsgenerator;
        zufallsgenerator = new Random();
        int index = zufallsgenerator.nextInt(); System.out.println(index);
    
        return index;
    }
 
    public int zufallszahlenAusgeben(int anzahl)
    {
        Random zufallsgenerator;
        zufallsgenerator = new Random();
        int index = zufallsgenerator.nextInt(); System.out.println(index);
    
        return index;
 
     
    }
 
    public int wuerfeln()
    {
     
    Random zufallsgenerator;
    zufallsgenerator = new Random();
    int index;
 
    index=zufallsgenerator.nextInt(6);
 
    return index;
    } 
     
    public String gibAntwort()
    {
        int index = zufallsgenerator.nextInt(dreiantworten.size());
        return dreiantworten.get(index);
    }
     
    private void antwortlisteFuellen()
    {
        dreiantworten.add("Ja");
        dreiantworten.add("Nein");
        dreiantworten.add("Vielleicht");
    } 
     
 
     
    /**
     * Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
     *
     * @param  y    ein Beispielparameter für eine Methode
     * @return        die Summe aus x und y
     */
    public int beispielMethode(int y)
    {
        // tragen Sie hier den Code ein
        return x + y;
    }
}

Aufgabe:
Methode zufallszahlenAusgeben(int anzahl), die einen Parameter bekommt,
der angibt wie viele Zufallszahlen generiert und ausgegeben werden sollen.

Aufgabe:
Schreiben Sie eine Methode gibAntwort(), die zufällig eine der Zeichenketten
"ja", "nein", "vielleicht" ausgibt.

Ich habe schon einige Methoden selbst geschrieben(siehe Quelltext), aber ich bekomme
in der Methode gibAntwort() die Fehlermeldung von "nextInt" nicht weg.
Bzw. komm ich bei einigen Aufgaben nicht weiter.
http://imgur.com/a/iWeFH
Fehlermeldung: int cannot be dereferenced
 
Zuletzt bearbeitet:

Elenteria

Bekanntes Mitglied
in gibAntwort() beziehst du dich auf die Instanzvaribale zufallsgenerator und darauf kannst du keine Methoden anwenden. In allen anderen Methoden hast du eine lokale Variable zufallsgenerator vom Typ Random angelegt, welche in diesem Fall von verwendet wird.
 

Flown

Administrator
Mitarbeiter
Grundsätzlich find ich es lobenswert, dass du so hartnäckig deine Ziele verfolgst, aber wenn du weiterhin mit den gleichen Fragen, immer und immer wieder, hier auftauchst, dann fühle ich mich bemüßigt, deine Beiträge als Spam zu werten.

Ich biete dir eine letzte Chance nochmal über dein Vorgehen zu reflektieren und eventuell deine Strategie zu ändern, wie du deinen Lernfortschritt vorantreibst.

Es gilt noch immer, was ich letztes Mal gesagt habe: Wenn du Hilfe bei einem Grundverständnis brauchst, kannst du gerne hier eine Frage stellen. Doch Aufgaben für dich zu lösen, ist nicht Sinn deines Lernfortschrittes und dieses Forums.

Sieh's als good-will an - damit ich hier nicht nur der Buhmann bin - hier deine Aufgabe wie sie aussehen könnte.
Java:
/**
 * Eine Klasse die dazu gedacht ist, Anfängern das Programmieren beizubringen. Zuvor sollte
 * man jedoch die vorherigen Beispiele gelöst und verstanden haben.
 *
 * Wenn man die Aufgaben aus dieser Klasse nicht versteht oder lösen kann, dann geht man nochmal
 * zurück auf Anfang, bis man soweit ist, diese Aufgabe zu lösen.
 */
class ZufallszahlenTester {

  private final Random zufallsgenerator;
  private final List<String> dreiantworten;

  /**
   * Initialisiert einen neuen Zufallsgenerator und die Liste mit den Werten <code>Ja</code>,
   * <code>Nein</code>, <code>Vielleicht</code>
   *
   */
  public ZufallszahlenTester() {
    zufallsgenerator = new Random();
    dreiantworten = Arrays.asList("Ja", "Nein", "Vielleicht");
  }

  /**
   * Gibt eine Zufallszahl aus <code>[{@value Integer#MIN_VALUE}, {@value Integer#MAX_VALUE}]</code>
   *
   */
  public void eineZufallszahlAusgeben() {
    int rnd = zufallsgenerator.nextInt();
    System.out.println(rnd);
  }

  /**
   * Gibt <code>n</code> Zufallszahlen aus.
   *
   * @param anzahl Anzahl der auszugebenden Zufallszahlen
   *
   */
  public void zufallszahlenAusgeben(int anzahl) {
    for (int i = 0; i < anzahl; i++) {
      eineZufallszahlAusgeben();
    }
  }

  /**
   * Würfelt mit einem sechseitigen Würfel und gibt das Ergebnis zurück.
   *
   * @return die zufällige Augenzahl
   */
  public int wuerfeln() {
    return zufallsgenerator.nextInt(6) + 1;
  }

  /**
   * Gibt eine Zufällige Antwort aus  <code>Ja</code>, <code>Nein</code> oder <code>Vielleicht</code>
   * zurück
   *
   * @return zufällige Antwort
   */
  public String gibAntwort() {
    int index = zufallsgenerator.nextInt(dreiantworten.size());
    return dreiantworten.get(index);
  }
}
 

Devanther

Top Contributor
in gibAntwort() beziehst du dich auf die Instanzvaribale zufallsgenerator und darauf kannst du keine Methoden anwenden. In allen anderen Methoden hast du eine lokale Variable zufallsgenerator vom Typ Random angelegt, welche in diesem Fall von verwendet wird

Ja, danke! Jetzt geht auch alles!
 

tommysenf

Top Contributor
Na dann kannst du ja als Übung noch 2 Methoden hinzufügen:

1. Schreibe eine Methode gibWuerfelsumme, welche eine Anzahl von Würfen übergeben bekommt und die Summe der insgesamt gewürfelten Augen zurückgibt.

2. Schreibe eine Methode gibWuerfeldurchschnitt, welche eine Anzahl von Würfen übergeben bekommt und den Durchschnitt der insgesamt gewürfelten Augen zurückgibt.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Jetzt hab ich mal eine kleine Frage dazu. Hätte man in @Flown Code in der Methode:
Java:
 public int wuerfeln() {
    return zufallsgenerator.nextInt(6) + 1;
  }
auch einfach:
Java:
 public int wuerfeln() {
    return zufallsgenerator.nextInt(7);
  }
7 in die Klammer setzen können? Also ich selbst würde sagen Ja, das Random ja auch bei 0 anfängt zu zählen oder? Danke.
 
X

Xyz1

Gast
Da steht aber eindeutig Imperativ. DH jemand muss dir diese Aufgabe gegeben haben. Und uns fragst du nach hilfe.
 

Devanther

Top Contributor
Es ist eine Aufgabe aus dem "Java lernen mit BlueJ" Buch.
Ich arbeite die Aufgaben aus diesem Buch durch.
Das ist ein gutes Training für mich.
 
X

Xyz1

Gast
Übungsaufgaben sind, meiner Meinung, zumindest teilweise aber Hausaufgaben!
Sei es so, dann geht das Thema eben weiter. ;)
 

Devanther

Top Contributor
1. Schreibe eine Methode gibWuerfelsumme, welche eine Anzahl von Würfen übergeben bekommt und die Summe der insgesamt gewürfelten Augen zurückgibt.


Brauche ich eine for Schleife oder eine for-each Schleife?

Code:
 public int gibWuerfelsumme(int anzahl)
   {
      int gesamt = 0;
      
     for (int i = 0; i < anzahl; i++) {
      wuerfeln();
      gesamt = gesamt + wuerfeln();
     
    }
      
      return gesamt;
    }


Die Summe der Augen soll ausgegeben werden, hab ich es geschafft?
Es kommt keine Fehlermeldung und die Ausgabe der Zahlen scheint auch sinnvoll zu sein.
 

Devanther

Top Contributor
2. Schreibe eine Methode gibWuerfeldurchschnitt, welche eine Anzahl von Würfen übergeben bekommt und den Durchschnitt der insgesamt gewürfelten Augen zurückgibt.

Code:
public int gibWuerfeldurchschnitt(int anzahl)
   {
       int gesamt = 0;
       int gesamt2 = 0;
      
     for (int i = 0; i < anzahl; i++) {
      wuerfeln();
      gesamt = gesamt + wuerfeln();
      gesamt2 = gesamt / anzahl;
    }
      
      return gesamt2;
   
    }

hm....genauso! Nur, dass man am Ende noch durch Anzahl teilen muss!
Richtig?
 

Harry Kane

Top Contributor
1. Der Name "gesamt2" für einen Durchschnitt ist schlecht gewählt.
2. Du rufst die Methode "würfeln" 2x auf, machst beim ersten Mal mit dem Rückgabewert aber gar nix.
3. Du weist "gesamt2" bei jedem Schleifendurchlauf einen neuen Wert zu. Es reicht völlig, den Wert am Ende der Schleife zu berechnen.
4. Bist du dir im Klaren darüber, das "gesamt2" stets der abgerundete Wert des (mathematischen) Durchschnitts ist?
 
X

Xyz1

Gast
@InfectedBytes : Ich habe abstrahiert. Ich wüsste auch nicht, warum das ein Problem darstellen sollte / ein Auge zudrücken muss... Dass ein Computersystem nicht die unendliche Genauigkeit einer rationalen Zahl abbilden kann... weiß doch jeder. Nebenbei angemerkt: Die Zählvariable ist beim Durchschnitt ja auch nicht bei 0, sondern bei 1. Das spielt für die Äquivalenzumformungen, also dem Anwenden des Distributivgesetzs, aber keine Rolle. Viel schwerer fand ich es, für Wolframalpha die richtige Eingabe zu finden. ;)
Aehm ja, ansonsten muss ich zugeben, den neuesten Beitrag mit Code von @Devanther gar nicht gelesen zu haben. :(
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Spin 4 stellige random zahl erzeugen Java Basics - Anfänger-Themen 4
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
laxla123 Bedeutung int random Java Basics - Anfänger-Themen 3
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
J Math.Random Java Basics - Anfänger-Themen 9
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
K Problem mit "Random" Java Basics - Anfänger-Themen 5
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Random(x,y,z) Java Basics - Anfänger-Themen 4
alialhajhossein math.random Java Basics - Anfänger-Themen 3
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
I math.random Grenzwerte Java Basics - Anfänger-Themen 2
C Arraywerte random vertauschen Java Basics - Anfänger-Themen 2
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
D Erste Schritte Random Java Basics - Anfänger-Themen 79
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
F Erste Schritte Random Zahl auswählen Java Basics - Anfänger-Themen 7
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
Thorwine Erste Schritte Wuerfelspiel mit Math.random() Java Basics - Anfänger-Themen 10
S Math.random() Zufall ? Java Basics - Anfänger-Themen 2
S Random Plattformen erstellen Java Basics - Anfänger-Themen 7
C Erste Schritte Random Wert auslesen und ausgeben Java Basics - Anfänger-Themen 2
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
V Random Java Basics - Anfänger-Themen 2
X Problem mit Math.random() Java Basics - Anfänger-Themen 2
S Random IDs immer 10-stellig? Wie? Java Basics - Anfänger-Themen 5
T Random vs. Math.random() Java Basics - Anfänger-Themen 2
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
B Variablen Mehrere Zahlen mit unterschiedlicher Wahrscheinlichkeit mit Random auswählen Java Basics - Anfänger-Themen 17
M Random bereich und for schleife Java Basics - Anfänger-Themen 20
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
R java.util.Random Java Basics - Anfänger-Themen 8
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
J Woher kommt das Objekt "Math" bei Math.random(); ? Java Basics - Anfänger-Themen 3
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
I Zwei Mal das selbe Objekt per Random :( Java Basics - Anfänger-Themen 7
E Random Java Basics - Anfänger-Themen 7
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
E Variable neue Random Zahl zuweisen, wenn Button geklickt Java Basics - Anfänger-Themen 5
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
K ArrayList random füllen Java Basics - Anfänger-Themen 2
K random problem Java Basics - Anfänger-Themen 3
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
R (Math.random()*49) zahl darf aber nur einmal gezogen werden Java Basics - Anfänger-Themen 11
B Random() gleiche Zahlen ausschließen Java Basics - Anfänger-Themen 30
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
C math.random() Java Basics - Anfänger-Themen 9
R math.random wertebereich 16-21 Java Basics - Anfänger-Themen 3
B Math.random und Strings Java Basics - Anfänger-Themen 13
R Java Random Java Basics - Anfänger-Themen 13
G Zahl erstellen / Random Java Basics - Anfänger-Themen 12
J Random Java Basics - Anfänger-Themen 11
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
K Random Zahlen in ein Feld Java Basics - Anfänger-Themen 4
N java.util.Random Java Basics - Anfänger-Themen 6
Luk10 math.random() Java Basics - Anfänger-Themen 2
walker23m Datentypen Zufällig umsortieren einer Hashmap(random?) Java Basics - Anfänger-Themen 3
M Junit TestCase für Random() Zahlen Java Basics - Anfänger-Themen 6
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
S Skatblatt darstellen durch Random? Java Basics - Anfänger-Themen 48
C Bereich festelgen bei Random Java Basics - Anfänger-Themen 9
H Random-Zahlen Java Basics - Anfänger-Themen 7
L Random Sortierung Java Basics - Anfänger-Themen 9
T random-methode Java Basics - Anfänger-Themen 18
M Random in Swing Java Basics - Anfänger-Themen 24
J Math.random() - kurze frage. Java Basics - Anfänger-Themen 20
J Random Wertebereich Java Basics - Anfänger-Themen 2
B Frage zu Random Java Basics - Anfänger-Themen 21
chik klasse random() Java Basics - Anfänger-Themen 6
B Random Zahlen und Formatierung Java Basics - Anfänger-Themen 6
G Random Zahlen Java Basics - Anfänger-Themen 25
S Diashoow Random Java Basics - Anfänger-Themen 4
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
G random mit tendenz? Java Basics - Anfänger-Themen 8
hedges Würfelwurf mit java.util.Random ohne 0 Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben