Saya perlu menjana nombor unik rawak dalam julat tertentu, bagaimana saya boleh melakukannya? Saya boleh menjana nombor rawak dengan
generator: $arr = []; $x = rand($min, $max); $len = count($arr); $flag = 0; for($i = 0; $i < $len; $i++) { if ($flag === 1) goto generator; if ($x === $arr[$i]) $flag = 1; } $arr[$index] = $x; $index++; goto generator;
Saya tahu kod ini teruk, jadi saya perlu menjadikan versi saya kod dioptimumkan dengan lebih baik! tolong!
Contoh: Jika saya perlu menjana 3 nombor antara 1 dan 15, ia sepatutnya seperti 5, 9, 1, tetapi bukan 3, 1, 2 [dalam 1 - 3 (nombor yang saya ingin hasilkan)]
Saya ingin tahu bagaimana jawapan yang diterima berbeza daripada jawapan saya. Perlu diingat bahawa campuran kedua-duanya boleh memberi kelebihan; sebenarnya, berikut ialah fungsi yang menggunakan satu atau yang lain secara bersyarat berdasarkan nilai tertentu:
Hasil:
Jawapan yang diterima pastinya optimum jika anda menggunakan julat yang lebih kecil dan bilangan nilai pulangan yang lebih tinggi walau bagaimanapun, seperti yang saya jangkakan, julat yang lebih besar dan kiraan yang lebih kecil akan mengambil masa yang lebih lama Untuk mendapatkan jawapan yang diterima, ia perlu menyimpan setiap nilai yang mungkin dalam julat. Anda juga menghadapi risiko melebihi had memori PHP. Menilai nisbah antara julat dan kiraan dan memilih hibrid penjana secara bersyarat akan menjadi yang terbaik daripada kedua-dua dunia.
Tatasusunan dengan julat nombor dalam susunan rawak:
Fungsi pembungkusan:
Contoh:
Hasil: