Perihalan masalah: Nombor berikut adalah semua parameter yang diluluskan 1. Berikan bilangan julat harga produk yang tidak diketahui dan kuantiti maksimum yang boleh dijual, harga jualan terendah, harga jualan tertinggi, dan kuantiti terbesar Produk A 1105 1115 29 Produk B 1605 1620 33 Produk C 2005 2025 172. Memandangkan jumlah jualan tetap pesanan ini ialah 14850
Parameter jawatan soalan di atas boleh dinyatakan sebagai:
$arr[0][‘low’]=1105; $arr[0][‘high’]=1115; $arr[0][‘num’]=29; $arr[1][‘low’]=1605; $arr[1][‘high’]=1620; $arr[1][‘num’]=33; $arr[2][‘low’]=2005; $arr[2][‘high’]=2025; $arr[2][‘num’]=17; $total=14850;
Soalan: Berapa banyak kombinasi jualan yang ada dan tatasusunan dikembalikan? Perkara utama ialah bilangan parameter satu dimensi yang dilalui setiap kali adalah tidak pasti, iaitu, mungkin terdapat 100 produk yang perlu dikira.
Ia sangat mudah untuk menulis secara langsung, tetapi ia tidak boleh dikemas sama sekali:
for ($a=1105; $a <= 1115; $a++) { for ($b=1605; $b <= 1620; $b++) { for ($c=2005; $c <= 2025 ; $c++) { for ($x=0; $x <= 19; $x++) { for ($y=0; $y <= 30 ; $y++) { for ($z=0; $z <= 10 ; $z++) { if ($a*$x + $b*$y +$c*$z == 14850) { echo $a."*".$x ."+". $b."*".$y."+". $c."*".$z."<br>"; } } } } } } }e
Masalahnya terletak pada ketidakpastian dalam bilangan jenis produk yang diluluskan idea perlu digunakan untuk menyelesaikannya?
Bukan idea yang baik untuk menggunakan gelung bersarang jika anda tidak pasti tentang tahapnya