Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten

Zrebna

Bekanntes Mitglied
Hallo!

Für Minimum (inklusiv) und Maximum (exklusiv) wäre es ja:
Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;

Das gäbe dann eine random Zahl zw. 10 und 99 aus.

Wie stellt man es an, dass der Output auch für den Max-Wert inklusiv ist? Also hier:
Random Zahlen zw. 0 und 100?

Lg,
Zrebna
 

Zrebna

Bekanntes Mitglied
also gibt es sowas, wie ThreadLocalSecureRandom.current().nextInt(min, max + 1); , war die Frage - scheinbar schon.
hat sich dann erledigt, danke.
 

Zrebna

Bekanntes Mitglied
Ja, ich auch ehrlich gesagt - werde dafür das "normale" SecureRandom verwenden - kp, was da in der Praxis best Convention ist bzw. von professionellen Entwicklern bevorzugt verwendet wird.
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, ich auch ehrlich gesagt - werde dafür das "normale" SecureRandom verwenden - kp, was da in der Praxis best Convention ist bzw. von professionellen Entwicklern bevorzugt verwendet wird.
Für alles „normale“ auch das normale Random nutzen ;)

SecureRandom nur, wenn es wirklich sicher sein muss, braucht man aber direkt in den wenigsten (bzw die meisten Entwickler in keinen) Fällen.
 

Zrebna

Bekanntes Mitglied
Für alles „normale“ auch das normale Random nutzen ;)

SecureRandom nur, wenn es wirklich sicher sein muss, braucht man aber direkt in den wenigsten (bzw die meisten Entwickler in keinen) Fällen.

Das ist interessant, denn ist nutzt man SecureRandom nicht dann, wenn man es "wirklich" random haben will?
Ich kann mich nur noch trübe an die relevante Programmier2-Vorlesung im letztem Semester einnern, aber bei "normalem" Random kann man ja nicht eine wirkluche Zufällligkeit erzeugen, weil ich in Wirklkeit aufgrund übergebnem Seed (bound) irgendwann mal ein bestimmter Zyklus wiederholen wird, oder so ähnlich? Und es dann eben nicht mehr wirklich random ist?
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, mit dem normalen Random ist es nicht völlig zufällig - aber für die meisten Anwendungen zufällig genug und in vielen Fällen ist der Seed sogar praktisch.

Wirklich zufällige Zufallszahlen braucht man fast nur dann, wenn’s in Richtung Kryptographie geht, und dann ist man meist besser dran, wenn man es nicht selbst macht.
 

Flown

Administrator
Mitarbeiter
Naja alle Randoms sind PRNG (pseudo random number generators). Die Frage ist, ob du es simpel haben möchtest, oder ob es den cryptographical guidlines entsprechen muss. Die JavaDoc ist doch eh super, warum wie man was nehmen muss.
 
X

Xyz1

Gast
Echte Zufälligkeit hast Du nur bei physikalischen Zufallsgeneratoren, also z. B. bei USB-Zufallsgeneratoren die man bei eBay oder Amazon bestellen kann worauf ich mich aber nicht immer verlassen würde die ihre Eingabe aus der Umgebung beziehen (z. B. Hintergrundrauschen des Universums). In der Regel reicht aber ein PRNG. Nun hast Du nach Random vs. SecureRandom gefragt: https://www.geeksforgeeks.org/random-vs-secure-random-numbers-java/ In der Praxis wiederholt sich die Folge nach 2^48 und 2^128 Attempts. Das sollte in den meisten Fällen genügen.

Java:
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Random;

public class MyRand {
    private static final Random r1 = new Random();
    private static final SecureRandom r2 = new SecureRandom();
    static {
        // This is may be unnecessary...
        long l1 = r1.nextLong();
        byte[] l2 = SecureRandom.getSeed(Long.BYTES);
        ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES * 2);
        buffer.putLong(l1);
        buffer.put(l2, 0, l2.length);
        buffer.flip(); // need flip
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-256");
            byte[] encodedhash = digest.digest(buffer.array());
            r2.setSeed(encodedhash);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }

    public static double getRandomDouble() {
        return r1.nextDouble();
    }

    public static double getSecureRandomDouble() {
        return r2.nextDouble();
    }

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(getRandomDouble() + " " + getSecureRandomDouble());
        }
    }
}

Vielleicht macht mein static-Block auch alles nur noch schlimmer. :eek:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Random Generator Allgemeine Java-Themen 6
T Math.random Allgemeine Java-Themen 9
Javafan01 Deklarieren einer Math.random() Zufallszahl Allgemeine Java-Themen 16
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
S Random Passwort für den User + Hashen Allgemeine Java-Themen 6
BRoll Random - Wie aufgebaut? Allgemeine Java-Themen 9
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
G Random zeichensatz Allgemeine Java-Themen 2
U Math.Random anders verteilen Allgemeine Java-Themen 4
N Die Klasse Random in Java Allgemeine Java-Themen 3
H java.util.random magischer Startwert? Allgemeine Java-Themen 2
L Zufallszahlen mit Random.nextdouble() Allgemeine Java-Themen 3
dayaftereh Random Numbers in Java Allgemeine Java-Themen 7
Q Random mit beeinflusster Wahrscheinlichkeit Allgemeine Java-Themen 4
I Random Acces auf ein Set Allgemeine Java-Themen 4
S Random funktion in einer Grafischen Oberfläche Allgemeine Java-Themen 10
ARadauer Random keine Zahlen doppelt Allgemeine Java-Themen 4
S Random Allgemeine Java-Themen 9
C Math.random() vs Random Allgemeine Java-Themen 5
S Random() vs Math.random Allgemeine Java-Themen 4
H Math.random() Allgemeine Java-Themen 3
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
W Datentypen Datentyp "Number" casten? Allgemeine Java-Themen 5
ARadauer BigDecimal und Not a Number Allgemeine Java-Themen 4
F Fehler: Bad file number Allgemeine Java-Themen 3
S Bad version number in .class file Allgemeine Java-Themen 5
M java.lang.UnsupportedClassVersionError: Bad version number i Allgemeine Java-Themen 5
S Klasse Number Format Allgemeine Java-Themen 2
F Verständnisprobleme Aufgabenstellung Aktionsobjekte und generische Listen Allgemeine Java-Themen 1
J Generische Interface - Problem Allgemeine Java-Themen 3
J Generische Interfaces mehrfach einbinden Allgemeine Java-Themen 11
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
A Methoden Generische Methode mit Arrays - Source Compatibility 1.7 benötigt, wieso? Allgemeine Java-Themen 3
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
H Interface Generische Schnittstelle (rekusiv) Allgemeine Java-Themen 2
C generische Authentifizierung Allgemeine Java-Themen 7
JCODA Generische Map Frage Allgemeine Java-Themen 10
H Generische Array Allgemeine Java-Themen 11
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
D generische Klasse für alle Maps (nicht Collections :-)) Allgemeine Java-Themen 11
D Methode für generische enummap/enum Allgemeine Java-Themen 10
B Generische Datentypen MergeSort Allgemeine Java-Themen 5
M Generische Klassen Allgemeine Java-Themen 3
M generische Listener Allgemeine Java-Themen 2
S Generische Typen: Frage dazu Allgemeine Java-Themen 11
H generische Klasse Realtion Allgemeine Java-Themen 2
T Ideenfindung: Generische Transportklasse? Allgemeine Java-Themen 3
C Generische Methode (Schablone) Allgemeine Java-Themen 8
G generische Klasse als Parameter einer generischen Klasse Allgemeine Java-Themen 5
leifg Rechenoperationen auf generische Datentypen Allgemeine Java-Themen 10
B Generische Typen instanzieren Allgemeine Java-Themen 11
R Generische Listener und Sender Allgemeine Java-Themen 12
M Generische Datentypen Allgemeine Java-Themen 14
S Generische Liste Allgemeine Java-Themen 30
F Viele generische Parameter sinnvoll? oder besser casten? Allgemeine Java-Themen 10
S Generische Methode Allgemeine Java-Themen 13
R Frage zu einfügen in generische lineare Liste Allgemeine Java-Themen 7
S Generische Methoden Allgemeine Java-Themen 7
D Statische, generische Methode will nicht. Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben