Het kiezen van het optimale algoritme in PHP
Soms ligt het probleem met code aan het feit dat niet de meest optimale oplossing voor het probleem is gekozen.
Stel dat we bijvoorbeeld de taak hebben
om de som van gehele getallen van 1 tot 1000000 te vinden.
Laten we de gestelde taak oplossen:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Wat is er dan mis? Het zit zo, dat er voor het oplossen van de gestelde taak een wiskundige oplossing bestaat.
Deze oplossing vereist praktisch geen resources! Laten we het programmeren:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
De moraal: voordat je een resource-intensieve taak oplost, controleer altijd of er geen kant-en-klare wiskundige formule of kant-en-klare wiskundige aanpak voor de oplossing bestaat.
Vind het aantal getallen dat deelbaar is zonder rest
door 5, uit het interval van 1 tot
1000.
Vind het aantal cijfers dat nodig is
om alle getallen van 1 tot 1000000 op te schrijven.
Vind alle priemgetallen in het interval van
1 tot 10000. Taak met een sterretje,
hoeft niet opgelost te worden.