Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Senarai Nombor Rawak Unik Dengan Cekap Dalam Julat Tertentu?
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!