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<?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<?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.

Задание 1

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.

Задание 2

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.

Задание 3

Határozd meg az összes prímszámot az 1-től 10000-ig terjedő intervallumban. Csillagos feladat, nem kötelező megoldani.