Scelta dell'algoritmo ottimale in PHP
A volte il problema del codice può essere correlato al fatto che non è stata scelta la soluzione più ottimale per il problema.
Supponiamo, ad esempio, di avere il compito
di trovare la somma dei numeri interi da 1 a 1000000.
Risolviamo il compito assegnato:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Cosa c'è che non va? Il fatto è che per risolvere il compito assegnato esiste una soluzione matematica.
Questa soluzione richiede praticamente nessuna risorsa! Programmiamola:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Morale: prima di risolvere un compito ad alta intensità di risorse controlla sempre se non esiste una formula matematica già pronta o un approccio matematico già pronto per la sua soluzione.
Trova il numero di numeri divisibili senza resto
per 5, nell'intervallo da 1 a
1000.
Trova il numero di cifre che saranno necessarie
per scrivere tutti i numeri da 1 a 1000000.
Trova tutti i numeri primi nell'intervallo da
1 a 10000. Compito con asterisco,
non è obbligatorio risolverlo.