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;
?>
Маъно: ресурс талаб қилувчи масалани ечишдан олдин, уни ечиш учун тайёр математик формула ёки тайёр математик ёндашив мавжудлигини тексриб кўринг.
1 дан 1000 гача булган оралиқдаги
5 га қолдиқсиз булинадиган сонларнинг
сонини топинг.
1 дан 1000000 гача булган барча
сонларни ёзиш учун сарфланадиган рақамлар
сонини топинг.
1 дан 10000 гача булган оралиқдаги
барча туб сонларни топинг. Юлдузча билан масала,
ечиш шарт эмас.