2017-01-18 4 views
-4

Ich habe folgendes Programm:Was ist die Reichweite des Mersenne Twisters in Java?

import java.util.*; 
import cern.jet.random.engine.MersenneTwister; 
import cern.jet.random.engine.RandomEngine; 

public class printy{ 
    static RandomEngine val = new MersenneTwister((int)System.currentTimeMillis()); 
    System.out.println(var.toString()); 
} 

Was ist der Bereich, in var? Es ist eine Ganzzahl von welcher Größe? Kann es jemals 0 sein?

Gemäß der Dokumentation kann der Startwert nicht 0 sein, aber die zufällige INT könnte Null sein. Dies liegt an einer (mathematischen?) Eigenschaft, wie der MersenneTwister in Java impliziert ist?

+0

Warum würden Sie nicht überprüfen, die Quelle selbst? PS: Es dauerte auch Ich 10 Sekunden, um diese https://dst.lbl.gov/ACSSoftware/colt/api/cern/jet/random/engine/mersenneTwister.html googeln – zerkms

+0

@zerkms So ist es eine Nummer von -2147483648 bis +2147483648 – ShanZhengYang

Antwort

1

Gerade von the API documentation:

Mersenne-Twister (MT19937) ist einer der stärksten einheitlichen Pseudozufallszahlengeneratoren so weit bekannt ist; gleichzeitig ist es schnell. Erzeugt einheitlich verteilte int's und longs in den geschlossenen Intervallen [Integer.MIN_VALUE, Integer.MAX_VALUE] und [Long.MIN_VALUE, Long.MAX_VALUE], sowie Float's und Double's in den offenen Einheitsintervallen (0.0f, 1.0f) und (0,0,1,0).

Insbesondere ...

  • Integers: [-2147483648, 2147483647]
  • Long: [-9223372036854775808, 9223372036854775807]
  • Float: [0.0f, 1.0f]
  • Double: [0.0, 1.0]

*** Anmerkung: *** Dies sind geschlossene Intervalle (d. H. Endpunkte sind enthalten) pro Dokumentation. Wenn Double und Float Werte, "Wenn man (0,1) -random Zahlen," die article that introduced MT sagt: "einfach die Nullen verwerfen."

+0

ich Der Anfangswert kann nicht 0 sein, aber der zufällige INT könnte Null sein. Dies war teilweise meine Verwirrung. 'Der Seed kann eine beliebige 32-Bit-Ganzzahl außer 0 sein. – ShanZhengYang

+0

Sie sollten Ihre Frage aktualisieren, um diese Verwirrung widerzuspiegeln komm als jemand hervor, der keine Dokumentation lesen möchte –

+0

Danke, ich versuche die Frage zu löschen. – ShanZhengYang

Verwandte Themen