Курс языка программирования Raku / Основы / Основы функций / Создание и вызов функций / Exercises / Значение 𝑒
Решение: Значение 𝑒
Отказ от ответственности
В 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