Optimális algoritmus kiválasztása PHP-ben
Időnként a kód problémája azzal függ össze, hogy nem a legoptimálisabb megoldást választottuk a feladathoz.
Tegyük fel például, hogy az a feladat áll előttünk,
hogy találjuk meg az egész számok összegét 1-től 1000000-ig.
Oldjuk meg az előttünk álló feladatot:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Mi a probléma? Az, hogy a feladat megoldására létezik matematikai megoldás.
Ez a megoldás gyakorlatilag nem igényel erőforrásokat! Programozzuk le:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Tanulság: erőforrás-igényes feladatok megoldása előtt mindig ellenőrizd, hogy nem létezik-e a megoldásához kész matematikai képlet vagy kész matematikai megközelítés.
Határozd meg azon számok mennyiségét, amelyek maradék nélkül oszthatók
5-tel, az 1-től
1000-ig terjedő intervallumban.
Határozd meg a számjegyek mennyiségét, amelyekre szükség lesz
az összes szám felírásához 1-től 1000000-ig.
Határozd meg az összes prímszámot az
1-től 10000-ig terjedő intervallumban. Csillagos feladat,
nem kötelező megoldani.