การสร้างตัวเลขสุ่มในช่วงใน Java

1. ภาพรวม

ในบทช่วยสอนนี้เราจะสำรวจวิธีต่างๆในการสร้างตัวเลขสุ่มภายในช่วง

2. การสร้างตัวเลขสุ่มในช่วง

2.1. Math.random

Math.randomให้สุ่มคู่ค่าที่มากกว่าหรือเท่ากับ 0.0 และน้อยกว่า 1.0

มาใช้เมธอดMath.randomเพื่อสร้างตัวเลขสุ่มในช่วงที่กำหนด:

public int getRandomNumber(int min, int max) { return (int) ((Math.random() * (max - min)) + min); }

ทำไมถึงได้ผล? มาดูกันว่าจะเกิดอะไรขึ้นเมื่อMath.randomส่งคืน 0.0 ซึ่งเป็นผลลัพธ์ที่ต่ำที่สุดที่เป็นไปได้:

0.0 * (max - min) + min => min

ดังนั้นจำนวนต่ำสุดที่เราจะได้คือmin

หากMath.randomส่งกลับ 1.0 ซึ่งเป็นผลลัพธ์สูงสุดที่เป็นไปได้เราจะได้รับ:

1.0 * (max - min) + min => max - min + min => max

ดังนั้นจำนวนสูงสุดที่เราจะได้คือสูงสุด

มาดูรูปแบบเดียวกันนี้ซ้ำกับRandom # nextIntในส่วนถัดไป

2.2. java.util.Random.nextInt

อินสแตนซ์ของjava.util.Randomสามารถใช้ทำเช่นเดียวกันได้

มาใช้เมธอดjava.util.Random.nextIntเพื่อรับตัวเลขสุ่ม:

public int getRandomNumberUsingNextInt(int min, int max) { Random random = new Random(); return random.nextInt(max - min) + min; }

นาทีพารามิเตอร์ (กำเนิด) รวมในขณะที่สูงสุดที่ผูกพันเป็นพิเศษ

2.3. java.util.Random.ints

java.util.Random.intsวิธีการส่งกลับIntStreamของจำนวนเต็มแบบสุ่ม

ดังนั้นเราสามารถใช้วิธีjava.util.Random.intsและส่งกลับตัวเลขสุ่ม:

public int getRandomNumberUsingInts(int min, int max) { Random random = new Random(); return random.ints(min, max) .findFirst() .getAsInt(); }

ที่นี่เช่นกันขั้นต่ำต้นทางที่ระบุจะรวมอยู่ด้วยและสูงสุดเป็นเอกสิทธิ์

3. สรุป

ในบทความนี้เราได้เห็นวิธีอื่นในการสร้างตัวเลขสุ่มภายในช่วง

ตัวอย่างโค้ดเช่นเคยสามารถพบได้ใน GitHub