Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Senarai Nombor Rawak Unik Dengan Cekap Dalam Julat Tertentu?

Bagaimanakah Saya Boleh Menjana Senarai Nombor Rawak Unik Dengan Cekap Dalam Julat Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-12-07 08:54:12584semak imbas

How Can I Efficiently Generate a List of Unique Random Numbers Within a Specific Range?

Menjana Nombor Rawak Unik dalam Julat

Menjana senarai nombor rawak unik dalam julat yang ditentukan boleh menjadi tugas yang mencabar. Satu pendekatan adalah untuk menjana nombor rawak dan menyemak sama ada ia unik setiap kali. Walau bagaimanapun, kaedah ini boleh menjadi tidak cekap untuk julat besar atau sebilangan besar nombor rawak.

Pendekatan yang lebih dioptimumkan ialah mencipta tatasusunan nombor dalam julat yang dikehendaki dan kemudian kocok tatasusunan untuk merawak susunan itu. Tatasusunan yang terhasil akan mengandungi nombor rawak unik dalam julat yang ditentukan.

Menggunakan Tatasusunan dengan Julat Nombor pada Susunan Rawak:

$numbers = range(1, 20);
shuffle($numbers);

Dalam kod ini, julat (1, 20) mencipta tatasusunan nombor dari 1 hingga 20. Fungsi shuffle() kemudiannya merawak susunan nombor dalam tatasusunan. Kaedah ini amat berguna apabila bilangan nombor rawak yang diperlukan adalah kurang daripada atau sama dengan julat nombor.

Menggunakan Fungsi Berbalut:

Untuk senario yang lebih kompleks , anda boleh mencipta fungsi berbalut yang mengambil nilai minimum, nilai maksimum dan kuantiti nombor rawak yang diingini sebagai input:

function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

Fungsi ini mengambil julat awal nombor, mengocoknya dan kemudian menggunakan array_slice() untuk mengekstrak bilangan nombor rawak yang dikehendaki.

Contoh Penggunaan:

Kod berikut menunjukkan cara menggunakan UniqueRandomNumbersWithinRange() fungsi:

<?php
print_r(UniqueRandomNumbersWithinRange(0, 25, 5));
?>

Keputusan:

Array
(
    [0] => 14
    [1] => 16
    [2] => 17
    [3] => 20
    [4] => 1
)

Kod ini menjana tatasusunan 5 nombor rawak unik antara 0 dan 25. Nombor dikocok untuk memastikan keunikan .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Senarai Nombor Rawak Unik Dengan Cekap Dalam Julat Tertentu?. 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