Ein Zufallszahlengenerator der echte Zufallszahlen erzeugt
Puran2

Allgemein

Das jar-Archiv enthält neben der Klasse ch.puran2.random.Puran2 noch ein paar Hilfsklassen, die jedoch zur Erzeugung von Zufallszahlen nicht bzw. nur intern benötigt werden. Aus diesem Grund wird hier nur die Klasse Puran2 beschrieben. Jede Instanz benutzt die gleichen Zufallsdaten, um Autokorrelation der einzelnen Instanzen untereinander zu vermeiden. Beim Versuch ein Instanz zu erzeugen, die auf einen zweiten Satz Zufallsdaten zugreift, wird eine Exception erzeugt. Die Klasse Puran2Exception ist direkt von der Klasse Exception abgeleitet und erweitert lediglich die Konstruktoren.

Klassenbeschreibung

Die Klasse besitzt zwei Konstruktoren:
  • Puran2()
    Es wird eine Instanz der Klasse Puran2 erzeugt.

  • Puran2(java.lang.String filename)
    Es wird eine Instanz der Klasse Puran2 erzeugt. Nach der Initialisierung wird die Methode setFilename(java.lang.String filename) aufgerufen.
Weiter besitzt die Klasse folgende öffentliche Methoden:
  • void setFilename(java.lang.String  filename) throws Puran2Exception
    Die Methode prüft ob eine Zufallszahlendatei geöffnet ist. Falls nicht wird die Datei filename als Zufallszahlendatei geöffnet. Falls schon eine Datei geöffnet ist, wird überprüft, ob filename mit dem Dateinamen der schon geöffneten Datei übereinstimmt. Falls dieses nicht der Fall ist, wird eine Exception erzeugt sonst wird die Methode beendet.

  • void setURL(java.lang.String url) throws Puran2Exception
    Diese Methode funktioniert äquivalent zur vorhergehenden Methode. Es wird lediglich anstelle eines Dateinamens eine URL übergeben.

  • void closeFile()
    Diese Funktion schließt die Zufallszahlendatei. Es geschieht keine überprüfung ob eine Datei bzw. eine URL geöffnet wurden. Falls keine Datei bzw. URL geöffnet war geschieht nichts.

  • void seek(long n) throws Puran2Exception
    Es werden n Zufallszahlen übersprungen. Die Methode soll vor dem generieren der ersten Zufallszahl aufgerufen werden, um neu Zufallssequenzen zu erhalten.

  • int getInt() throws Puran2Exception
    Die Methode liefert eine positive ganze gleichverteilte Zufallszahl im Bereich zwischen 0 und 231.

  • double getDouble() throws Puran2Exception
    Die Methode liefert eine Zufallszahl zwischen 0.0 und 1.0. Sie benutzt dazu die Methode getInt() und dividiert diese durch 231.
import ch.puran2.random.*;

public class Puran2Test
{
    
    /** Creates a new instance of Puran2Test */
    public Puran2Test()
    {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        Puran2 puran2 = new Puran2();
        puran2.setFilename("puran2.dat");
        try 
        {
            System.out.println(puran2.getDouble());
        }
        catch ( Puran2Exception e )
        {
            System.out.println(e.getMessage());
        }
    }
    
}