@Avery007

Почему возникают неточности при работе с большими числами в Python 3.4.2?

p;rint(factorial(2 * N) / (factorial(N) * factorial(N + 1)))

Выводит неправильный результат от N >= 31, при N=31 погрешность 1, при N = 32 gjuhtiyjcnm 4.
Есть ли способ избавиться от неточности? Или посчитать как-то по-другому?
  • Вопрос задан
  • 605 просмотров
Решения вопроса 1
bobrovskyserg
@bobrovskyserg
Используйте целочисленное деление:
print(factorial(2 * N) // (factorial(N) * factorial(N + 1)))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Alex9
@Alex9
scp wisdom root@brain \n in progress...
Почитайте про то, как вещественные числа хранятся в компьютере и всё станет понятно. Например: habrahabr.ru/post/112953
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы