Optimāla algoritma izvēle PHP
Dažreiz koda problēma var būt saistīta ar to, ka ir izvēlēts nevis optimālākais problēmas risinājums.
Pieņemsim, ka mums ir uzdevums
atrast veselu skaitļu summu no 1 līdz 1000000.
Atrisināsim uzdoto uzdevumu:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Kas tad ir nepareizi? Lieta ir tāda, ka šīs problēmas risināšanai pastāv matemātisks risinājums.
Šis risinājums praktiski neprasa resursus! Ieprogrammēsim to:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Moral: pirms resursietilpīga uzdevuma risināšanas noteikti pārbaudiet, vai tam nav gatavas matemātiskas formulas vai gatavas matemātiskas pieejas.
Atrodiet skaitļu skaitu, kas dalās bez atlikuma
ar 5, no intervāla no 1 līdz
1000.
Atrodiet ciparu skaitu, kas būs nepieciešams,
lai pierakstītu visus skaitļus no 1 līdz 1000000.
Atrodiet visus pirmskaitļus intervālā no
1 līdz 10000. Uzdevums ar zvaigznīti,
var neizpildīt.