Bagaimana untuk Mengoptimumkan Pemilihan Item Tatasusunan Tanpa Pengulangan?

Linda Hamilton
Lepaskan: 2024-10-30 08:14:27
asal
464 orang telah melayarinya

How to Optimize Array Item Random Selection Without Repetition?

Cara Meningkatkan Kecekapan Pemilihan Item Tatasusunan

Apabila memilih item tatasusunan secara rawak sambil mengelakkan pengulangan, kecekapan memainkan peranan yang penting. Walaupun kod yang disediakan secara berkesan menghalang pemilihan item yang sama beberapa kali berturut-turut, terdapat potensi untuk peningkatan prestasi.

Mengenai persoalan rekursi, fungsi yang disediakan secara teknikal tidak layak sebagai rekursif kerana ia tidak memanggil dirinya sendiri secara langsung tetapi sebaliknya memanggil dirinya sendiri melalui fungsi lain (chooseName()). Walau bagaimanapun, ia berkongsi persamaan dengan fungsi rekursif dalam sifat berulangnya.

Untuk meningkatkan kecekapan, pendekatan alternatif boleh diguna pakai yang menghapuskan gelagat seperti rekursif dan dengan ketara mengurangkan masa yang dihabiskan untuk mencari item unik. Strategi ini melibatkan mencipta fungsi baharu yang memilih item secara rawak sehingga semua item dalam tatasusunan telah habis. Setelah semua item telah digunakan, fungsi akan bermula semula dari awal, memastikan tiada item diulang.

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

Dengan menggunakan pendekatan yang diubah suai ini, anda berkesan boleh mengelakkan pengulangan sambil mengekalkan pemilihan item yang cekap tanpa potensi untuk lelaran gelung yang panjang seperti dalam pelaksanaan seperti rekursif.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pemilihan Item Tatasusunan Tanpa Pengulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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