Generiert zufällige zahlen zwischen zwei zahlen
public class TestSample {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
double ran = Math.random();
}
}
Möchte ich nicht verwenden Random r = new Random();
Klasse. Gibt es irgendeine andere Möglichkeit, um Zufallszahlen zu generieren. Ich bin gerade geschlagen mit dem, was Logik könnte angewendet werden, um Zufallszahlen zu generieren, die zwischen zwei zahlen.
- stackoverflow.com/questions/363681/...
- Darf ich Fragen, warum Sie nicht verwenden möchten, Random Klasse?
- Don ' T wollen, verwenden Sie die
Random
Klasse? Verwenden Sie diesen anstatt: xkcd.com/221 - stackoverflow.com/questions/2872138/...> stackoverflow.com/questions/190135/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diesen code:
Dieser Arbeit wird für
a >= 0 and b >= 0
wenn man bedenkt, mit negativen Zahl die Logik sligtly änderungena
undb
werden sagen, dass '1' und '5' Sie erhalten eine zufällige Zahl zwischen '1' und '5 oder zwischen '5' und '1' Das Ergebnis sollte im Prinzip die gleichen.Ist es wirklich einfach... Sie müssen nur herausfinden, was ist der minimale Wert und was ist der Unterschied zwischen den beiden zahlen (nennen wir es
diff
). Dann können Sie die Skalierung der Mathematik.zufälligen Wert (zwischen0
und1
) durch Multiplikation mitdiff
(jetzt die Reichweite ist zwischen0
unddiff
). Dann, wenn Sie fügen Sie den kleinsten Wert in dem Bereich zwischenmin
undmin + diff
(das ist der andere Wert)Wenn Sie erwarten ein
double
Ergebnis, ist der einfachste Ansatz istIst es egal, welche größer ist, als Sie die gleiche Verteilung.
Jedoch, wenn Sie möchten, eine zufällige ganze Zahl zwischen 'a' und 'b' ist ein bisschen komplexer.
Den Grund, das Ergebnis ist unterschiedlich ist, dass eine zufällige double zwischen 0 und 1 sind, werden nur weniger als 1, d.h. [0.0, 1.0) Jedoch eine zufällige ganze Zahl zwischen 1 und 6 umfasst in der Regel 1, 2, 3, 4, 5, 6 ebenso. Als Dezimalzahl ist dies das abrunden von [0.0 ... 7.0)
Erhalten Sie möglicherweise weißes Rauschen aus dem Mikrofon, und nehmen Sie eine beliebige Nummer von dort. Danach können Sie eine beliebige Anzahl von den gegebenen Daten, und tun, was Sie wollen. Beispiel abrufen von Daten aus dem Mikrofon gefunden werden kann hier.