Wirkwertoperationen in Java
Die Wirkwertoperation "java.lang.Math.random"
Die Wirkwertoperation "java.lang.Math.random" ergibt bei jedem Aufruf einen nichtnegativen Wert des Datentyps "double", der größer oder gleich dem Wert "0." und kleiner als der Wert "1." ist. Mehrere Aufrufe ergeben pseudozufällige Werte, die ungefähr gleichmäßig über diesen Bereich verteilt sind.
random [Methodenbeschreibung]java.lang
Class Math
public static double random()
Das folgende Kompaßdiagramm gibt an, daß das Ergebnis dieser Methode lediglich vom Zustand eines internen Pseudozufallszahlengenerators abhängt. Gleichzeitig hat diese Methode aber auch eine Wirkung. Jeder Aufruf verändert den Zustand des Generators, denn beim nächsten Aufruf soll ja wieder eine (im Allgemeinen) andere Pseudozufallszahl erscheinen. Daher muß der Generator sich merken, welche Pseudozufallszahl beim letzten Aufruf geliefert wurde (oder einen entsprechenden anderen internen Zustand enthalten). Da ein Aufruf dieser Operation somit sowohl einen Wert als auch eine Wirkung hat, handelt es sich um eine Wirkwertoperation.
Die Wirkwertoperation "Math.random" [Kompassdiagramm]Vorzustand des Generators
|
V Messung
.---------------------.
| Math.random | double
| |--------> Pseudozufallszahl
| | Wert
'---------------------'
| Wirkung
V
Nachzustand des Generators
Das folgende Beispielprogramm gibt drei Pseudozufallszahlen aus.
Random.javapublic class Random
{ public static void main( String[] args )
{ System.out.println( Math.random() );
System.out.println( Math.random() );
System.out.println( Math.random() ); }}System.out0.37706997144254184
0.1042307101105997
0.7535097449909315
Übungsaufgaben
Würfeln
Schreiben Sie einen Ausdruck, der unter Verwendung der Wirkwertoperation "Math.random" eine Pseudozufallszahl notiert, die größer oder gleich dem Wert "1." und kleiner als der Wert "7." ist. Bei mehrfacher Verwendung dieses Ausdrucks innerhalb eines Programmes sollten sich Vorkommastellen zwischen 1 und 6 ergeben, die ungefähr gleichverteilt sind. Betrachtet man nur diese Vorkommastellen, so hat man also einen Würfel.
System.out3.77069971442541
1.04230710110599
5.35097449909315
6.99714425413507
4.23071011059935
4.49909315059935