Výber optimálneho algoritmu v PHP
Niekedy je problém kódu spojený s tým, že nebolo zvolené najoptimálnejšie riešenie úlohy.
Predpokladajme napríklad, že pred nami stojí úloha
nájdenie súčtu celých čísel od 1 do 1000000.
Vyriešme zadanú úlohu:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Čo je teda zlé? Faktom je, že na riešenie tejto úlohy existuje matematické riešenie.
Toto riešenie prakticky nevyžaduje žiadne zdroje! Naprogramujme ho:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Poučenie: pred riešením náročnej úlohy si vždy skontrolujte, či pre jej riešenie neexistuje hotový matematický vzorec alebo hotový matematický prístup.
Nájdite počet čísel, ktoré sú bezo zvyšku deliteľné
číslom 5, z intervalu od 1 do
1000.
Nájdite počet číslic, ktoré budú potrebné
na zapísanie všetkých čísel od 1 do 1000000.
Nájdite všetky prvočísla v intervale od
1 do 10000. Úloha s hviezdičkou,
nemusíte riešiť.