Rumah >hujung hadapan web >tutorial css >Kocok Tatasusunan dengan Algoritma Fisher-Yates di Jawa
Dalam bidang sains komputer, mengocok tatasusunan atau senarai elemen ialah operasi biasa yang boleh berguna dalam pelbagai aplikasi, daripada merawak hasil permainan hingga mengedarkan kad dalam dek. Salah satu algoritma yang paling berkesan untuk tujuan ini ialah Fisher-Yates Shuffle, juga dikenali sebagai Knuth Shuffle. Algoritma ini memastikan bahawa setiap pilih atur tatasusunan berkemungkinan sama, yang menjadikannya pilihan yang ideal untuk membuat kocok rawak yang tidak berat sebelah.
Dalam artikel ini, kami akan meneroka pelaksanaan Java bagi algoritma Fisher-Yates Shuffle. Kod yang disediakan secara cekap merombak susunan integer di tempatnya, menunjukkan keanggunan dan keberkesanan algoritma ini.
Algoritma Fisher-Yates Shuffle beroperasi dengan mengulang tatasusunan dari hujung ke permulaan, menukar setiap elemen dengan elemen yang dipilih secara rawak yang muncul lebih awal dalam tatasusunan (termasuk kedudukan semasa). Proses ini memastikan bahawa semua pilih atur tatasusunan berkemungkinan sama.
Berikut ialah pelaksanaan Java bagi algoritma Fisher-Yates Shuffle:
import java.util.*; class FYShuffleAlgorithm { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6}; shuffle(arr); } public static void shuffle(int[] arr) { Random rand = new Random(); for (int i = arr.length - 1; i > 0; i--) { int randomIndex = rand.nextInt(i + 1); int tmp = arr[i]; arr[i] = arr[randomIndex]; arr[randomIndex] = tmp; } System.out.println(Arrays.toString(arr)); } }
Penjelasan Kod
Permulaan:
Kaedah utama memulakan tatasusunan integer arr dengan nilai {1, 2, 3, 4, 5, 6} dan kemudian memanggil kaedah shuffle untuk mengocok tatasusunan ini.
Atas ialah kandungan terperinci Kocok Tatasusunan dengan Algoritma Fisher-Yates di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!