Optimāla algoritma izvēle PHP

Dažreiz koda problēma var būt saistīta ar to, ka ir izvēlēts nevis optimālākais problēmas risinājums.

Pieņemsim, ka mums ir uzdevums atrast veselu skaitļu summu no 1 līdz 1000000. Atrisināsim uzdoto uzdevumu:

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

Kas tad ir nepareizi? Lieta ir tāda, ka šīs problēmas risināšanai pastāv matemātisks risinājums.

Šis risinājums praktiski neprasa resursus! Ieprogrammēsim to:

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

Moral: pirms resursietilpīga uzdevuma risināšanas noteikti pārbaudiet, vai tam nav gatavas matemātiskas formulas vai gatavas matemātiskas pieejas.

Задание 1

Atrodiet skaitļu skaitu, kas dalās bez atlikuma ar 5, no intervāla no 1 līdz 1000.

Задание 2

Atrodiet ciparu skaitu, kas būs nepieciešams, lai pierakstītu visus skaitļus no 1 līdz 1000000.

Задание 3

Atrodiet visus pirmskaitļus intervālā no 1 līdz 10000. Uzdevums ar zvaigznīti, var neizpildīt.