Схема / Номер Дрейкета Эйлера
Я пытаюсь реализовать число Эйлера в схеме drracket, также известной как Схема. Я нашел решение с помощью функции поиска, но это сложный путь.
(define (fakultät n)
(cond
[(= n 0) 0]
[(= n 1) 1]
[else (* (fakultät (- n 1)) n)]))
(define (e n)
(cond
[(= n 0) 1]
[(= n 1) 2.72]
[else (+ (/ 1 (fakultät n )) (e(- n 1)))]))
Сначала я определил факториал, а затем я определил функцию e. результат как-то не верен
1 ответ
Sidenote Вы должны действительно предоставить более подробную информацию в своем вопросе, например, что было входным и фактическим выходом (и обычно ожидаемый результат, но в этом случае это отчасти понятно)
Я думаю, что ошибка заключается в линии
[(= n 1) 2.72]
Я не уверен, откуда ты взял эту строку. Мое единственное предположение состоит в том, что это пережиток какой-то другой реализации, основанной на некотором приближенном методе. e
примерно 2.718...
так 2.72
один больше, чем правильный ответ, и вы собираетесь добавить к нему еще несколько 1/n!
,
Если вы удалите эту строку, код, кажется, работает нормально, как вы можете видеть здесь