Alegerea algoritmului optim în PHP
Uneori problema codului poate fi legată de faptul că a fost aleasă nu cea mai optimă soluție pentru sarcină.
Să presupunem, de exemplu, că avem sarcina de a
găsi suma numerelor întregi de la 1 la 1000000.
Să rezolvăm sarcina dată:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Ce este în neregulă? Ideea este că pentru rezolvarea sarcinii date există o soluție matematică.
Această soluție practic nu necesită resurse! Să o programăm:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Morala: înainte de a rezolva o sarcină care consumă multe resurse verificați întotdeauna dacă nu există o formulă matematică gata făcută sau o abordare matematică gata făcută pentru rezolvarea ei.
Găsiți numărul de numere divizibile fără rest
la 5, din intervalul de la 1
la 1000.
Găsiți numărul de cifre care vor fi necesare
pentru a scrie toate numerele de la 1 la 1000000.
Găsiți toate numerele prime din intervalul de la
1 la 10000. Sarcină cu asterisc,
poate fi omisă.