Utafutaji wa malengo mengi ni kanuni muhimu katika upangaji ambayo inaruhusu kutafuta thamani nyingi katika seti ya data kwa wakati mmoja. Kanuni hii inashughulikia masuala ya vitendo katika upangaji programu, kama vile kutafuta vipengele vinavyokidhi hali ndani ya orodha au safu.
Uendeshaji wa Algorithm
Algorithm ya utafutaji wa malengo mengi kwa ujumla hufanya kazi sawa na algoriti ya kutafuta lengo moja. Walakini, badala ya kuacha baada ya kupata shabaha moja, inaendelea kutafuta ili kupata shabaha zote zinazokidhi hali hiyo. Utaratibu wa jumla wa algorithm ni kama ifuatavyo.
- Rudia kupitia kila kipengele kwenye seti ya data.
- Angalia hali ya kila kipengele. Ikiwa kipengele kinakidhi hali, kiongeze kwenye orodha ya matokeo.
- Endelea kurudia kupitia vipengele vingine ili kupata shabaha zingine zinazokidhi hali hiyo.
- Rejesha orodha ya matokeo iliyo na malengo yote ambayo yanakidhi hali hiyo.
Faida na hasara
Manufaa:
- Kanuni za utafutaji wa malengo mengi ni nyingi na zinatumika katika hali mbalimbali.
- Huokoa muda na juhudi ikilinganishwa na kufanya vitanzi tofauti ili kupata kila lengo.
Hasara:
- Utendaji wa algoriti unaweza kuathiriwa unaposhughulika na seti kubwa za data na idadi kubwa ya shabaha zinazokidhi hali hiyo.
- Inaweza kusababisha uzembe wa kumbukumbu wakati wa kuhifadhi orodha kubwa ya matokeo yenye malengo mengi.
Mfano na Ufafanuzi
Wacha tuchukue kuwa tuna orodha ya nambari kamili na tunataka kupata nambari zote ambazo ni zidishi za 3 kwenye orodha hii. Ifuatayo ni mfano wa kutumia algorithm ya utaftaji wa malengo mengi katika PHP:
function findMultiplesOfThree($numbers) {
$result = array();
foreach($numbers as $number) {
if($number % 3 === 0) {
$result[] = $number; // Add the satisfying number to the result list
}
}
return $result;
}
$numbers = array(9, 4, 15, 7, 12, 6);
$multiplesOfThree = findMultiplesOfThree($numbers);
echo "Numbers that are multiples of 3 in the list are: ";
foreach($multiplesOfThree as $number) {
echo $number. ";
}
Katika mfano huu, findMultiplesOfThree
chaguo la kukokotoa linarudia kupitia kila nambari kwenye orodha. Ikiwa nambari inaweza kugawanywa na 3(ina salio ya 0 ikigawanywa na 3), inaongezwa kwenye orodha ya matokeo. Hatimaye, orodha ya matokeo itakuwa na nambari 9, 15, na 12, ambazo zitachapishwa kwenye skrini.
Kwa hivyo, algoriti ya utafutaji wa malengo mengi katika PHP hutusaidia kupata na kuchakata kwa urahisi shabaha zote zinazokidhi hali fulani ndani ya seti ya data.