Membuat Bilangan Acak
Random dan ThreadLocalRandom.
Membuat Bilangan Acak adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Membangkitkan Bilangan Acak
Keacakan mendukung permainan, simulasi, dan pengambilan sampel. Java menyediakan Math.random(), kelas Random, dan ThreadLocalRandom untuk kode konkuren.
Dasar-Dasar Math.random
Math.random() mengembalikan bilangan pecahan berpresisi ganda dalam rentang [0.0, 1.0): nol termasuk, sedangkan satu tidak termasuk.
public class Main {
public static void main(String[] args) {
double r = Math.random();
System.out.println("Value between 0 and 1: " + r);
}
}Menskalakan Math.random
Kalikan lalu lakukan konversi tipe untuk mendapatkan rentang bilangan bulat. (int)(Math.random() * 6) menghasilkan nilai dari 0 hingga 5.
public class Main {
public static void main(String[] args) {
int roll = (int)(Math.random() * 6) + 1;
System.out.println("Dice: " + roll);
}
}Kelas Pengacak
Kelas java.util.Random lebih fleksibel. Buat sebuah instans, lalu panggil metode seperti nextInt, nextDouble, dan nextBoolean.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rng = new Random();
System.out.println(rng.nextBoolean());
System.out.println(rng.nextDouble());
}
}nextInt dengan Batas
nextInt(bound) mengembalikan bilangan bulat dari 0, termasuk, hingga bound, tidak termasuk. nextInt(6) menghasilkan nilai dari 0 hingga 5.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rng = new Random();
int value = rng.nextInt(100);
System.out.println("0 to 99: " + value);
}
}Menggunakan Nilai Awal agar Dapat Diulang
Memberikan nilai awal kepada konstruktor membuat urutannya deterministik: nilai awal yang sama selalu menghasilkan bilangan yang sama. Hal ini sangat berguna untuk pengujian.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rng = new Random(42);
System.out.println(rng.nextInt(1000));
System.out.println(rng.nextInt(1000));
}
}Nilai Awal Sama, Urutan Sama
Dua objek Random yang dibuat dengan nilai awal yang sama menghasilkan urutan yang identik. Ini berguna saat suatu kesalahan harus direproduksi secara persis.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random a = new Random(7);
Random b = new Random(7);
System.out.println(a.nextInt(50) == b.nextInt(50));
}
}ThreadLocalRandom
Dalam program multialur, satu Random yang digunakan bersama dapat menjadi hambatan. ThreadLocalRandom.current() memberikan setiap utas pembangkitnya sendiri tanpa perebutan akses.
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
int value = ThreadLocalRandom.current().nextInt(1, 7);
System.out.println("Dice: " + value);
}
}Jangan Membagikan Satu Random ke Banyak Utas
Jangan meneruskan satu instans Random kepada banyak utas; hal ini dapat menghasilkan distribusi yang buruk dan perebutan akses. Sebaiknya gunakan ThreadLocalRandom dalam kode konkuren.
Bilangan Pecahan dan Distribusi Gaussian
nextDouble() menghasilkan nilai dalam [0,1), sedangkan nextGaussian() mengembalikan nilai dari distribusi normal dengan rata-rata 0 dan simpangan baku 1.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rng = new Random(1);
System.out.println(rng.nextDouble());
System.out.println(rng.nextGaussian());
}
}Memilih Alat yang Tepat
Gunakan Math.random() untuk bilangan pecahan cepat, Random saat Anda memerlukan batas atau nilai awal, dan ThreadLocalRandom dalam kode konkuren. Untuk keacakan yang berkaitan dengan keamanan, gunakan SecureRandom.
Uji Cepat
Uji pemahaman Anda tentang keacakan.
Ringkasan
Anda telah mempelajari cara membangkitkan bilangan acak.
Math.random()menghasilkan bilangan pecahan berpresisi ganda dalam [0,1).Random.nextInt(bound)menghasilkan nilai dari 0 hingga bound-1.- Nilai awal membuat urutan dapat direproduksi.
ThreadLocalRandomadalah pilihan yang aman untuk kode konkuren.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membuat Bilangan Acak” gratis?
Ya — teks lengkap “Membuat Bilangan Acak” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membuat Bilangan Acak”?
Random dan ThreadLocalRandom. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membuat Bilangan Acak” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kelas Math
- Membuat Bilangan Acak
- Rentang Acak dan Pengacakan
- Pembulatan dan Batas Matematika