Схема / Номер Дрейкета Эйлера

Я пытаюсь реализовать число Эйлера в схеме 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!,

Если вы удалите эту строку, код, кажется, работает нормально, как вы можете видеть здесь

Другие вопросы по тегам