Bagaimana Menjana Nombor Rawak tanpa Pengulangan untuk Penyenaraian Randomizer Komprehensif?

Patricia Arquette
Lepaskan: 2024-10-21 11:49:31
asal
738 orang telah melayarinya

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

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

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!

sumber:php
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!