Rumah >hujung hadapan web >tutorial css >Kocok Tatasusunan dengan Algoritma Fisher-Yates di Jawa

Kocok Tatasusunan dengan Algoritma Fisher-Yates di Jawa

Barbara Streisand
Barbara Streisandasal
2024-09-26 06:46:42672semak imbas

Shuffling Arrays with the Fisher-Yates Algorithm in Java

pengenalan

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 Kocok Fisher-Yates

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.

Pelaksanaan Kod Java

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn