Курс языка программирования Raku / Основы / Создание и вызов функций / Упражнения / Значение 𝑒

Решение: Значение 𝑒

Отказ от ответственности

В 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 4o. Оригинальный текст на английском языке.

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