Алгоритми муносиби интихоб кардан дар PHP

Баъзан мушкилии рамз ба он вобаста аст, ки ҳалли беҳтарини масъала интихоб нашудааст.

Бигзор, масалан, пешоми мо вазифаи ёфтани ҷамъи ададҳои бутун аз 1 то 1000000 истода бошад. Вазифаи гузошташударо ҳал кунем:

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

Чӣ ғалат аст? Масъала дар он аст, ки барои ҳалли вазифаи гузошташуда ҳали математикӣ мавҷуд аст.

Ин ҳал қариб ҳеҷ захира намехоҳад! Онро барномасозӣ кунем:

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

Панд: пеш аз ҳалли вазифаи захирабаранда, ҳатман тафтиш кунед, ки оё барои ҳалли он формулаи математикии тайёр ё равиши математикии тайёр вуҷуд надорад.

Задание 1

Миқдори ададҳоеро ёбед, ки ба 5 бе боқимонда тақсим мешаванд, аз фосилаи 1 то 1000.

Задание 2

Миқдори рақамҳоеро ёбед, ки барои навиштани ҳамаи ададҳо аз 1 то 1000000 зарур хоҳад буд.

Задание 3

Ҳамаи ададҳои соддаро дар фосилаи 1 то 10000 ёбед. Вазифа бо ситора, ҳал кардан мумкин нест.