


Bagaimanakah Kita Boleh Memilih Item Susunan Rawak Dengan Cekap Tanpa Pengulangan?
Pemilihan Rawak Yang Cekap Item Tatasusunan Tanpa Pengulangan
Dalam artikel ini, kami meneroka isu yang dihadapi oleh pengguna yang mencari kaedah yang cekap untuk memilih secara rawak item daripada tatasusunan tanpa pengulangan. Kod yang disediakan secara berkesan memilih item tetapi memperkenalkan kemungkinan gelung tak terhingga disebabkan oleh penggunaan fungsi rekursif.
Fungsi Rekursif?
Fungsi chooseName() boleh dianggap rekursif kerana ia merujuk kepada dirinya sendiri dalam definisinya. Syarat penamatan ialah penemuan item unik, di mana unik ditetapkan kepada palsu, memecahkan gelung dan memulakan panggilan fungsi semula.
Meningkatkan Kecekapan
Untuk meningkatkan kecekapan, kami mempertimbangkan pendekatan alternatif yang dicadangkan oleh pengulas @YuriyGalanter. Daripada bergantung pada fungsi rekursif, kita boleh memilih item secara rawak daripada tatasusunan dan menyimpannya dalam tatasusunan sementara. Setelah semua item dipilih, kami menetapkan semula tatasusunan sementara dan meneruskan proses pemilihan rawak.
Pelaksanaan
Pelaksanaan di bawah menggabungkan pendekatan ini:
<code class="javascript">function randomNoRepeats(array) { var copy = array.slice(0); return function() { if (copy.length < 1) { copy = array.slice(0); } var index = Math.floor(Math.random() * copy.length); var item = copy[index]; copy.splice(index, 1); return item; }; } var chooser = randomNoRepeats(['Foo', 'Bar', 'Gah']); chooser(); // => "Bar" chooser(); // => "Foo" chooser(); // => "Gah" chooser(); // => "Foo" -- only repeats once all items are exhausted.</code>
Dengan menggunakan fungsi ini, item boleh dipilih secara rawak tanpa potensi untuk gelung tak terhingga sambil mengelakkan isu pengulangan.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Memilih Item Susunan Rawak Dengan Cekap Tanpa Pengulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

jQuery mendapatkan padding/margin elemen

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom
