Все мы знаем, что число Эйлера , обозначенное через e степенью некоторой переменной x, может быть аппроксимировано с использованием расширения Маклаурина :
Принимая x равным 1, мы получаем
Вызов
Напишите программу на любом языке, который аппроксимирует число Эйлера с помощью ввода N и вычисляет ряд для N-го члена. Обратите внимание, что первый член имеет знаменатель 0 !, а не 1 !, т.е. N = 1 соответствует 1/0 !.
счет
Программа с наименьшим количеством байтов выигрывает.
code-golf
math
number
approximation
Мяу микс
источник
источник
N
результаты будут такими же, если использовать число с плавающей запятой конечной точности. Является ли это поведение приемлемым или результат должен постепенно становиться более точным по мереN
приближения к бесконечности?Ответы:
Желе , 5 байт
Попробуйте онлайн!
Как это устроено
источник
Ḷ
, что делает [0, п) диапазона. ^ v ^;Wistful-C - 336 байт
Моя первая настоящая задумчивая программа! На самом деле я немного играл в гольф, используя
someday
вместо того,wait for
потому что первый имел более короткую длину.источник
<stdio.h>
someday i were N...
вместоsomeday i will be N...
?Pyth,
76 байтовПопробуй это здесь.
Спасибо FryAmTheEggman за байт!
источник
TI-84 BASIC,
121514TI является языком токенов ( байты считаются с помощью токенов , а не отдельных символов).
источник
Ans
не является допустимым форматом ввода, поэтому допустима только 15-байтовая версия.Ans
здесь всегда был формат ввода по умолчанию здесь, в PPCG (посмотрите мои старые ответы TI), и больше людей с этим согласны, чем не согласны, поэтому не пытайтесь изменить свой ответ.Юлия,
282721 байтЭто анонимная функция, которая принимает целое число и возвращает число с плавающей точкой. Чтобы вызвать его, присвойте его переменной.
Подход довольно прост. Мы
sum
1 разделены на гамма-функцию, оцененную в каждом из 1 - n . Это использует свойство n ! = Γ ( n +1).Попробуйте онлайн!
Благодаря Деннису сэкономлено 1 байт, а Глену O - 6!
источник
@(n)sum(1./factorial(0:n))
Python, 36 байт
Python 2:
Python 3:
источник
or
вместоand
:f=lambda n,i=1:i>=n or 1+f(n,i+1)/i
.постоянный ток, 43 байта
Это довольно прямой перевод серии. Я пытался быть умнее, но это привело к увеличению длины кода.
объяснение
Простая факторная функция, для n> 0
Выполнить факториал для n, ..., 1; инвертировать и суммировать
Заполните стек 1; принять ввод и установить соответствующую точность
Если input был 0 или 1, мы можем просто передать его, иначе вычислить частичную сумму.
Распечатайте результат.
Результаты теста
Первые 100 расширений:
Используя 1000 терминов:
источник
J, 10 байт
Прямой подход.
объяснение
источник
1#.%@!@i.
CJam, 11
или
Попробуйте онлайн: первая версия и вторая версия
Объяснение:
r~
= читать и оцениватьm!
= факториалW#
= повысить до степени -1 (W
= -1):+
= сумма массиваПервая версия создает массив [0… N-1] и применяет факториал и обратный ко всем его элементам; 2-я версия делает факториал и инверсию для каждого числа, затем помещает их в массив.
источник
JavaScript ES6,
44 4240Безымянная функция сейчас.
Спасибо за сохранение 2 байтов @AlexA и спасибо @LeakyNun за еще 2 байта!
источник
n=>{for(k=s=m=1;m<n;s+=k/=m++);return s}
MATL,
117 байт4 байта сохранены благодаря рекомендации @ Luis использовать
gamma
(Yg
)Попробуйте онлайн
объяснение
источник
]
1i:Yg/s
для 7 байтовMATL , 6 байтов
Это вычисляет сумму, используя гипергеометрическую функцию 1 F 1 ( a ; b ; z ):
Работает в Octave и онлайн-компиляторе, но не в Matlab, из- за различий в определении гипергеометрической функции (которая будет исправлена).
Попробуйте онлайн!
объяснение
источник
C 249 байтов
Ungolfed:
Принимает число в качестве аргумента для определения количества итераций.
источник
int
раньшеmain
иreturn 0
. Кроме того, если вы заменяетеNULL
на0
, вам не нужны включения.argc
иargv
может быть сокращен до однобуквенных переменных. Если вы любите играть в гольф на Си, вам могут пригодиться советы по игре в гольф на Си .#include <stdio.h>
к (13 байт)
Возможно переполнение для
N>20
источник
05AB1E, 6 байтов
Разъяснения
Попробуйте онлайн
источник
L<!zO
.Пайк, 10 байт
Попробуй это здесь!
Или 8 байтов, если power = 1
Попробуй это здесь!
источник
JavaScript (ES6), 28 байт
источник
Дьялог АПЛ , 6 байтов
+/
сумма÷
обратных!
величин факториалов⍳
чисел от 0 до⎕
числового вводаПредполагается
⎕IO←0
, что по умолчанию на многих системах.TryAPL !
источник
Haskell, 37 байт
Не самый короткий, но, возможно, самый красивый.
Также любезно предоставлено Laikoni , вот решение, которое на 2 байта короче:
источник
50
. Чтобы добавить заголовок, используйте:## Language, <xxx> bytes
.f n=
или\n->
получить правильное представление функции. Тем не менее, мы также можем сохранить несколько байтов:(\x->1/x)
может быть сокращен до раздела(1/)
, так[1,2..]
же, как[1..]
иmap(...)$
может быть(...)<$>
. Вместе 36 байтов: попробуйте онлайн!((scanl(+)0$(1/)<$>scanl(*)1[1..])!!)
выглядит хорошо.\n->
для создания функция.APL (Dyalog Unicode) , 5 байтов
Попробуйте онлайн!
Используя трюк со смешанной базой, нашёл ответ на другой вызов . Использует
⎕IO←0
.Как это устроено
источник
1÷(n-1)!
, как цифра? Не могли бы вы перевести это на J, чтобы уточнить?На самом деле, 6 байтов
Попробуйте онлайн!
Объяснение:
источник
Брахилог , 18 байт
объяснение
источник
Клен, 18
Использование:
источник
C 69 байтов
Идео это!
источник
Ява с десятифутовым лазерным полюсом ,
238236 байтИмеет намного лучшее сопротивление переполнению, чем большинство других ответов. Для 100 условий результат
источник
Юлия, 28 байт
объяснение
gamma(k+1)
равноfactorial(k)
для положительных целочисленных входных данных и обобщает его для всех значений, кроме неотрицательных целых чисел. Это сохраняет один байт, так почему бы не использовать его?источник
MATLAB / Octave, 22 байта
Создает анонимную функцию с именем,
ans
которая может быть вызвана с помощьюans(N)
.Это решение вычисляется
gamma(x)
для каждого элемента в массиве [1 ... N], который равенfactorial(x-1)
. Затем мы берем инверсию каждого элемента и суммируем все элементы.Демо онлайн
источник
Perl 5, 37 байт
Не победитель, но приятный и понятный
Выходы для входов от 0 до 10:
источник
R, 17 байт
Довольно просто, хотя проблемы с числовой точностью неизбежно возникают в определенный момент времени.
источник
WolframAlpha , 12 байт
источник