Некоторые формулы и функции ocaml - новичок - PullRequest
0 голосов
/ 22 октября 2019

Итак, я должен исправить рекурсивную функцию, которая будет считать количество «1» в любом заданном числе. Для этой части мне удалось создать функцию, которая преобразует десятичную в двоичную форму:

if dec = 0 then 0
else dec mod 2 + 10 *f(dec/2)
;;

, но я не знаю, как заставить программу проверять каждую цифру и даже подсчитывать нужные.

И я должен исправить функцию, которая должна вычислить сумму ряда 1 / (n!). Опять же, я пытался часами, но лучшее, что я мог сделать, было:

if n <= 1. then 1.
else 1./.(n*.e(n-.1.)) +. (e(n-.1.))
;;

, который не работает должным образом, потому что я предполагаю, что формула не верна.

Может кто-нибудьПомоги мне? ; -;Пожалуйста, я хочу понять, как это работает.

1 Ответ

0 голосов
/ 22 октября 2019

По первому вопросу вы, вероятно, захотите создать список битов в первый раз, а не целое число. Это должно упростить дальнейшие манипуляции с битами.

Для второго вопроса вы должны сначала написать отдельную факториальную функцию и использовать ее в своем определении e. В настоящее время вы смешиваете вычисление суммы и факториальное вычисление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...