Optimaalisen algoritmin valinta JavaScriptissä
Joskus koodin ongelma liittyy siihen, että ongelman ratkaisemiseksi ei ole valittu optimaalisinta tapaa.
Oletetaan esimerkiksi, että tehtävämme on
laskea kokonaislukujen summa väliltä 1 - 1000000.
Ratkaistaan annettu tehtävä:
let sum = 0;
for (let i = 1; i <= 1000000; i++) {
sum += i;
}
console.log(sum);
Mikä siinä on ongelmana? Kyse on siitä, että tämän tehtävän ratkaisemiseen on olemassa matemaattinen ratkaisu.
Tämä ratkaisu ei käytännössä vaadi resursseja! Ohjelmoidaan se:
let n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);
Opimme: ennen resursoivaa tehtävän ratkaisemista tarkista aina, onko sen ratkaisemiseksi olemassa valmista matemaattista kaavaa tai valmista matemaattista lähestymistapaa.
Löydä niiden lukujen määrä, jotka ovat jaollisia
ilman jäännöstä luvulla 5, väliltä 1 -
1000.
Löydä niiden numeroiden määrä, joita tarvitaan
kirjoittamaan kaikki luvut väliltä 1 - 1000000.