Optimaalisen algoritmin valinta PHP:ssä
Joskus koodin ongelma liittyy siihen, että tehtävään ei ole valittu kaikkein optimaalisinta ratkaisua.
Oletetaan esimerkiksi, että edessämme on tehtävä
löytää kokonaislukujen summa väliltä 1 - 1000000.
Ratkaistaan annettu tehtävä:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Mikä siinä on ongelmana? Asia on siinä, että tämän tehtävän ratkaisemiseen on olemassa matemaattinen ratkaisu.
Tämä ratkaisu ei käytännössä vaadi resursseja! Ohjelmoidaan se:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Opettavainen neuvo: ennen resursoivaa tehtävän ratkaisemista tarkista aina, onko sen ratkaisemiseen olemassa valmista matemaattista kaavaa tai valmista matemaattista lähestymistapaa.
Löydä numeroiden määrä, jotka jakautuvat ilman jäännöstä
luvulla 5, väliltä 1 -
1000.
Löydä numeroiden määrä, joka tarvitaan
kirjoittamaan kaikki numerot väliltä 1 - 1000000.
Löydä kaikki alkuluvut väliltä
1 - 10000. Tähtitehtävä,
ei pakko ratkaista.