BlueJ Math.random()

...komplette Frage anzeigen

3 Antworten

Ich weiß zwar ned wie es in JAVA ist, aber bei anderen Programmiersprachen z.b. von C# kenne ich es so, dass Mathf.Random, eine Zahl zwischen 0 und 1 liefert und die auf eine INT abrundet.

Du musst also entweder ein Bereich angeben (meist durch Math.random(Min,Max)) oder du Multiplizierst einfach mit der Maximalen Zahl, was aber nur funktioniert wenn dir die Funktion keine abgerundete INT liefert. sonst multiplizierst ne 0 mit irgend einer bel Zahl was dir so oder so immer 0 liefert.

das mit dem multiplizieren habe ich gemacht, funktioniert auch. aber wenn ich in einer Methode zwei mal den Befehl Math.random benutze, kommt immer die gleiche Zahl dabei heraus...

private double hatRandom1() { return Math.random(); }

private double hatRandom2()
{
    return Math.random();
}


/**
   * Vorher: Ereignis GeklicktvonhatKnopfMinus fand statt.
     * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
       */
public void hatKnopfMinusGeklickt()
{
    double hatZufallszahl = hatRandom1();
    double r = hatZufallszahl;
    r = r*100;
    int b = (int) Math.round(r);
    double hatZufallszahl2 = hatRandom2();
    double g = hatZufallszahl;
    g = g*100;
    int c = (int) Math.round(g);
    hatTyp.setzeInhalt("minus rechnen -");
    a = 2;
    hatZeichenbereich1.setzeInhalt(b);
    hatZeichenbereich2.setzeInhalt(c);
}
0
Ich weiß zwar ned wie es in JAVA ist...

Dann antworte auch nicht. Die Frage ist speziell auf Java bezogen und somit sollte sich die Antwort auch auf Java beziehen.

Man könnte auch sagen, dass man z.B. in Delphi erst den Befehel "randomize()" verwenden muss, um Zufallszahlen zu erzeugen, das hilft dem Fragenden aber nicht weiter.

0
@JavaTheHutt

Ich weiß nicht welches Problem du hast JavaTheHutt.

Da bis zu der Zeit noch niemand auf die Frage geantwortet hatte, habe ich meine Hilfe in Ableitung anderer Programmiersprachen angeboten. Was ja scheinbar dem Fragesteller der Lösung etwas näher gebracht hat.

Der Fragesteller war in der Lage meine Antwort zu abstrahieren und auf sein Problem bzw. seine verwendete Programmiersprache anzuwenden.

In dem Fall ist eine Antwort auch wenn sie vlt nur zu Teilen die Problematik löst, besser, als wenn der Fragesteller keine Antwort erhält.

Der Fragesteller war scheinbar, im Gegensatz zu dir, tatsächlich in der Lage die Angebotene Lösung zu abstrahieren, was auch eine wichtige Eigenschaft für alle ist die das Programmieren beherrschen wollen. Aber ich denke mit viel Übung wird dir dies auch irgendwann gelingen.

0

Im Paket "java.util" gibt es die Klasse "Random". In deinem Falls ist es wohl das einfachste diese Klasse zu verwenden.

Random rnd = new Random();
rnd.nextInt();

Du kannst der Funktion "nextInt()" auch noch einen Int-Parameter mitgeben, sodass eine Zahl zwischen 0 und dem Parameter zurückgegeben wird.

Doku findest du unter: http://docs.oracle.com/javase/8/docs/api/java/util/Random.html

ja, das habe ich schon versucht. leider ist von underer Informatik Lehrerin die Bibliothek Stifte und Mäuse vorgegeben, irgendwie scheint java die Klasse Random() nicht zu finden... schade...

0
@Freacion

Ich kenne mich mit dieser Bibliothek nicht aus, allerdings solltest du auf alle Pakete der normalen Java-API zugreifen können.

Um die Klasse Random benutzen zu können, musst du in deiner Quellcodedatei ganz oben das Paket importieren. Das machst du mit:

import java.util.Random;
1

Ändere deine Methode hatRandom etwas ab:

static protected int retRandomInt(int höchstwert){ Random r = new Random(); return r.nextInt(höchstwert)+1; }

Für den Fall, dass du ein double willst:

static protected double static protected double RandomDouble(int höchstwert){ Random r = new Random(); return r.nextDouble()*höchstwert; }

danke, aber ich hab es jetzt doch endlich geschafft, und es laüft super :D

0

Was möchtest Du wissen?