Kocok Tatasusunan dengan Algoritma Fisher-Yates di Jawa

Barbara Streisand
Lepaskan: 2024-09-26 06:46:42
asal
473 orang telah melayarinya

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));
    }
}
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!