Optimalizácia cyklických operácií v PHP

Aj ľahká operácia, ktorá sa mnohokrát opakuje v cykle, môže spotrebovať veľa prostriedkov.

Pozrime sa na príklad. Majme dané nejaké pole:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
?>

Nájdime priemer prvkov tohto poľa. Na to je potrebné nájsť súčet prvkov a vydeliť ho ich počtom. Predpokladajme, že nejaký programátor už túto úlohu vyriešil nasledovným spôsobom:

php<?php
  $sum = 0;
  
  foreach ($arr as $elem) {
    $sum += $elem / count($arr);
  }
  
  echo $sum;
?>

Pozrime sa na problémy takéhoto riešenia. Technicky kód funguje správne a dáva správnu odpoveď. Faktom je, že matematicky je správne ako deliť celý súčet počtom, tak a deliť každý z členov počtom.

Avšak vzniká iný problém. Vec je v tom, že budeme vykonávať delenie tolko krát, koľko je prvkov v našom poli. A vychádza to tak, že robíme veľké množstvo nadbytočných operácií, veď delenie by sa dalo vykonať na konci - raz, vydelením celého nájdeného súčtu.

Optimalizujme náš kód:

php<?php
  $sum = 0;
  
  foreach ($arr as $elem) {
    $sum += $elem;
  }
  
  echo $sum / count($arr);
?>
Задание 1

Optimalizujte nižšie uvedený kód:

php<?php
  for ($i = 1; $i <= 31; $i++) {
    if ($i === date('d')) {
      echo "<b>$i</b><br>";
    }
    
    if ($i !== date('d')) {
      echo "$i<br>";
    }
  }
?>