нахождение длины факториала в десятичной записи

математика информатика комбинаторика

Т.е. дан n! (n>500) оценить длину записи этого значения в десятичной записи.

Примечание:
Неверно поставил вопрос. n>>500 (например 70 000 000) Как найти длину факториала, НЕ считая сам факториал, и вообще не считая число, лишь его длину.

Примечание:
В общем логарифмирую формулу Стерлинга по 10-му основанию и получаю приблизительный ответ.

Примечание:
L(n!)=1+int[0.5*lg(2*pi*n)+n*lg(n)-n/ln(10)+остаток],где остаток последний множитель ряда Стирлинга

Примечание:
*десятичный логарифм множителя
Ответы:
Если число N содержит k цифр, то
k = int (lg (N)) + 1. (здесь int - это целая часть числа, lg - десятичный логарифм)
То есть, если N - однозначное, N < 10, то  0 < lg (N) < 1, int (lg (N)) = 0, k = 0 + 1 = 1
Если же N, например, 10-значное, то int (lg (N)) = 9, k = 9 + 1 = 10
Математически это найти довольно трудно. Проверим, что 10! - 7-значное.
lg (10!) = lg (1*2*3*4*5) + lg (6*7) + lg (8*9) + lg 10 = lg 120 + lg 42 + lg 72 + 1
int(lg 120) + int(lg 42) + int(lg 72) + 1 = 2 + 1 + 1 + 1 = 6, k = 6 + 1 = 7
А вот с числом 500! придется повозиться! Для примера найду 20!
lg (10!) = 6, lg (11*12*...*20) = lg (11*12*13*14) + lg (15*16*17) + lg (18*19*20) = 4 + 3 + 3 = 10
Уже неправильно, потому что точная сумма равна 11,8, то есть 1 разряд мы уже потеряли.
А вот программированием - элементарно на любом языке. Если нет функции lg, можно воспользоваться ln: lg (N) = ln (N) / ln (10)


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.