Výběr optimálního algoritmu v PHP
Někdy může být problém kódu spojen s tím, že bylo zvoleno ne nejoptimálnější řešení úlohy.
Předpokládejme například, že před námi stojí úkol
najít součet celých čísel od 1 do 1000000.
Pojďme zadaný úkol vyřešit:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Co je tedy špatně? Jde o to, že pro řešení zadaného úkolu existuje matematické řešení.
Toto řešení prakticky nevyžaduje žádné prostředky! Naprogramujme jej:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Ponaučení: Před řešením náročné úlohy vždy ověřte, zda pro její řešení neexistuje hotový matematický vzorec nebo hotový matematický přístup.
Najděte počet čísel dělitelných beze zbytku
5 z intervalu od 1 do
1000.
Najděte počet číslic, které budou potřeba
pro zapsání všech čísel od 1 do 1000000.
Najděte všechna prvočísla v intervalu od
1 do 10000. Úloha se hvězdičkou,
není nutné řešit.