Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?

Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?

Patricia Arquette
Patricia Arquetteasal
2024-10-21 11:49:31744semak imbas

How to Generate Random Numbers without Repetition for a Comprehensive Listing Randomizer?

Menjana Nombor Rawak tanpa Pengulangan: Panduan Komprehensif

Dalam usaha anda untuk membangunkan tapak web yang merawak penyenaraian Yelp, anda mencari kaedah yang memastikan kesemua 20 penyenaraian dipaparkan sekali sebelum sebarang pengulangan berlaku. Mari kita terokai pelbagai pendekatan untuk menangani cabaran ini.

Pendekatan rand(0, 19) PHP

Pelaksanaan semasa anda menggunakan rand(0, 19) PHP untuk menjana indeks rawak untuk memilih penyenaraian Yelp. Walau bagaimanapun, kaedah ini mempunyai had: ia boleh mengulangi nombor. Untuk mengatasinya, kami memerlukan pendekatan yang lebih canggih.

Mengocok Julat Nombor

Satu penyelesaian yang berkesan ialah mengocok julat nombor yang mewakili indeks penyenaraian. Ini boleh dicapai menggunakan range() dan shuffle() seperti berikut:

<code class="php">$numbers = range(0, 19);
shuffle($numbers);</code>

Ini mencipta tatasusunan yang mengandungi nombor dari 0 hingga 19 dalam susunan rawak.

Penyelesaian Alternatif Menggunakan Fungsi randomGen()

Pendekatan lain ialah menggunakan fungsi randomGen() tersuai yang menerima minimum, maksimum dan kuantiti sebagai parameter. Ia menjana senarai nombor rawak unik dalam julat yang ditentukan:

<code class="php">function randomGen($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

print_r(randomGen(0, 20, 20));  // generates 20 unique random numbers</code>

Menyimpan Nombor Terpakai dan Mengemas kini dalam Pangkalan Data

Untuk memastikan semua penyenaraian ditunjukkan tanpa ulangan, anda boleh menyimpan senarai yang dipaparkan dalam pangkalan data. Setiap kali anda memaparkan penyenaraian rawak, semak sama ada IDnya sepadan dengan mana-mana dalam pangkalan data. Jika tidak, paparkan penyenaraian dan tambahkan IDnya pada pangkalan data. Ulangi proses ini sehingga semua penyenaraian telah dipaparkan.

Kaedah ini memastikan setiap penyenaraian dipaparkan tepat sekali sebelum sebarang pengulangan berlaku.

Atas ialah kandungan terperinci Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?. 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