Optimaalse algoritmi valimine PHP-s

Mõnikord võib koodi probleem olla seotud sellega, et ülesande lahendamiseks pole valitud kõige optimaalsemat lahendust.

Oletame, et meie ees on ülesanne leida täisarvude summa 1-st 1000000-ni. Lahendame pandud ülesande:

php<?php
  $sum = 0;
  
  for ($i = 1; $i <= 1000000; $i++) {
    $sum += $i;
  }
  
  echo $i;
?>

Mis siis viga on? Asi on selles, et selle ülesande lahendamiseks on olemas matemaatiline lahendus.

See lahendus ei nõua praktiliselt ressursse! Programmeerime selle:

php<?php
  $n = 1000000;
  $sum = $n * ($n + 1) / 2;
  echo $sum;
?>

Moraal: enne ressursimahuka ülesande lahendamist kontrollige kindlasti, kas selle lahendamiseks ei ole valmis matemaatilist valemit või valmis matemaatilist lähenemist.

Задание 1

Leidke arvude hulk, mis jaguvad ilma jäägita 5-ga, vahemikus 1 kuni 1000.

Задание 2

Leidke numbrite arv, mida läheb vaja kõikide arvude kirjutamiseks 1-st 1000000-ni.

Задание 3

Leidke kõik algarvud vahemikus 1 kuni 10000. Tähega ülesanne, ei pea lahendama.