Erzeugung einer zufälligen Zahl zwischen mehrere Bereiche
Ich verstehen, wie man eine Zufallszahl, die zwischen zwei zahlen:
1 + (int)(Math.random() * ((10 - 1) + 1))
oder
Min + (int)(Math.random() * ((Max - Min) + 1))
Aber wie gehe ich über die Erzeugung einer zufälligen Zahl, die fällt in mehrere Bereiche?
Beispiel: Zahl zwischen 1 und 10 oder zwischen 50 bis 60
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde mich mit so etwas wie dies, um Ihnen zu erlauben, es zu tun mit so viele Bereiche wie Sie möchten:
Generieren Sie zunächst eine ganze Zahl zwischen 1 und 20. Dann, wenn der Wert über 10, Landkarte, um das zweite Intervall.
Zuerst müssen Sie wissen, wie viele zahlen in jeder Reihe. (Ich nehme an, Sie werden die Auswahl an Ganzzahlen von einer diskreten Reihe, nicht Reale Werte aus einem kontinuierlichen Bereich.) In deinem Beispiel
es sind 10 ganze zahlen in der ersten Reihe, und 11 in der zweiten. Dies bedeutet, dass 10/21 Zeiten, sollten Sie in der ersten Reihe, und 11/21 Zeiten wählen Sie aus der zweiten. In pseudo-code
wenn die Liste bekannt ist, ich denke, man kann so etwas wie dieses.
Wie wärs mit dem folgenden Ansatz: randomize Kommissionierung eine Auswahl ein verwenden Sie diesen Bereich, um generage Ihre zufällige Nummer, für die, die Sie haben, um Ihre Bereiche in einer Liste oder array