Выбор оптимального алгоритма в PHP
Иногда проблема кода бывает связана с тем, что выбрано не самое оптимальное решение задачи.
Пусть, к примеру, перед нами стоит задача
найти сумму целых чисел от 1 до 1000000.
Решим поставленную задачу:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Что же не так? Дело в том, что для решения поставленной задачи существует математическое решение.
Это решение практически не требует ресурсов! Запрограммируем его:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Мораль: перед решением ресурсоемкой задачи обязательно проверяйте, нету ли для ее решения готовой математической формулы или готового математического подхода.
Найдите количество чисел, делящихся без остатка
на 5, из промежутка от 1 до
1000.
Найдите количество цифр, которое понадобится,
чтобы записать все числа от 1 до 1000000.
Найдите все простые числа в промежутке от
1 до 10000. Задача со звездочкой,
можно не решать.