Курс по Raku / Основи / Създаване и извикване на функции / Упражнения / Стойността на e

Решение: Стойността на e

Отказ от отговорност

В Raku има вградена константа e, която дава незабавен отговор на задачата. Решението, показано по-долу, е предназначено за образователни цели.

Код

Формулата в тази задача съдържа факториел, и вече имаме поне две решения за неговото изчисляване (още предстоят). Програмата по-долу дефинира две функции: една за изчисляване на факториел и друга за частичната сума според формулата.

Тъй като се изисква функцията да може да бъде извикана без аргументи, в такъв случай тя изпълнява предварително определен брой итерации, можем да добавим стойност по подразбиране на параметъра: sub e-approx($max = 100).

В кода, забележете приликите в начина, по който се натрупват стойностите на резултата в постфиксния for цикъл върху диапазон.

Ето решението:

sub factorial($n) {
    my $f = 1;
    $f *= $_ for 1..$n;

    return $f;
}

sub e-approx($max = 100) {
    my $e = 1;
    $e += 1 / factorial($_) for 1..$max;

    return $e;
}

say e-approx(10);
say e-approx();

🦋 Намерете програмата във файла the-value-of-e.raku.

Резултат

С 10 и 100 итерации получаваме следните резултати. Освен това, опитайте други стойности на $max.

$ raku exercises/functions/the-value-of-e.raku
2.7182818
2.718281828459045

Навигация по курса

Асоциативни типове данни / Интерполация на хешове   |   Повече за функциите

Тази страница е автоматично преведена с ChatGPT 4.0. Оригинален текст на английски

Преводи на тази страница: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська