Autor Zpráva
final
Profil
Zdravím, mám takýto cyklus
$num = 0;
 for ($i = 1; $i <= 10; $i++) {
     $num += $i * 40;
     echo $num.",";
 }
// 40,120,240,400,600,840,1120,1440,1800,2200
dá sa to zjednodušiť tak aby som nemusel použiť cyklus?
function get_number($i) {
   $num = tajomný vzorec;
   echo $num;
}
get_number(5); // 600
Radek9
Profil
final:
Můžeš použít rekurzi:
function getNumber($i) {
  return $n === 1 ? 40 : $i * 40 + getNumber($i - 1);
}
Tori
Profil
Pokud f(5) = 1*40 + 2*40 + 3*40 + 4*40 + 5*40, tak se to dá zapsat i takto: f(5) = 40*(1+2+3+4+5) a to je (jak jsem právě zjistila) aritmetická řada, na kterou je vzoreček.

function getNumber($n) {
    return $n * ($n+1) / 2 * 40;
}
, kde jednička je první číslo arit.řady, tedy v [#1] hodnota $i na začátku cyklu.
Joker
Profil
Napsal bych „ Tori si ještě ze školy pamatuje posloupnosti“, nebýt toho „(jak jsem právě zjistila)“ :-)

Jinak ad [#2], cyklus by myslím v tomhle případě byl vhodnější než rekurze. Ale samozřejmě nejlepší je použít vzorec pro součet členů aritmetické posloupnosti.
Tori
Profil
Joker:
Napsal bych ‚ Tori si ještě ze školy pamatuje posloupnosti‘
Ze základky si to nepamatuji (což neznamená, že jsme to nebrali) a na střední jsme matiku neměli vůbec, bohužel. Občas by se dost hodila.
Radek9
Profil
Pravda, aritmetická řada mě nanapadla. Zrovna nedávno jsme ji brali. :-)
final
Profil
ďakujem všetkým

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: