Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.142.128] |
|
Сообщ.
#1
,
|
|
|
для написания программы требуется вручную сократить выражение вида:
1/2! + 2/3! + 3/4! + 4/5! + ... + 1006/1007! |
Сообщ.
#2
,
|
|
|
достаточно вручную сложить несколько первых членов, чтобы уловить закономерность
|
Сообщ.
#3
,
|
|
|
Каждый член представляется в виде (k-1)/k! = 1/(k-1)! - 1/k!
После подстановки в ряд получается, что члены со знаками плюс и минус сокращаются, и в итоге остается 1 - 1/1007! = 1 Добавлено PS: Только не стоит пытаться вычислять 1007!, особенно в целых числах - гарантированно переполнение уже на 12! (при использовании lohgint). И в вещественных вычислять итерационно 1/1007! не имеет смысла, т.к. это микроскопическая величина, которая из-за ограниченного диапазона и точности представления вещественных чисел обратиться в ноль. Если нужно обоснование, то рассуждаем так: точность представления мантиссы в формате extended составляет 1/264 ~10-19. Поскольку считается факториал 3-х значного числа, то уже произведение 19/3 ~ 7 последних членов от 1001 до 10007 даст обратную величину, меньшую 10-19, которая при сложении с единицей будет просто отброшена, и в результате получится "ровно" 1 |