Поиск:

Ответ в темуСоздание новой темы Создание опроса
> агоритм n! 
:(
    Опции темы
valdoo
Дата 28.10.2005, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Помогите найти ефективмый алгоритм подсчота очень больших факториалов.
заранее спасибо
PM MAIL   Вверх
podval
Дата 28.10.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



По теме, но не ответ на поставленный вопрос. smile

В советском калькуляторе "Электроника МК-35", видимо, был очень эффективный алгоритм. Считался практически мгновенно.

Цитата

Очень интересно эти калькуляторы вычисляли факториал - простым перебором.

История отечественных калькуляторов

Вопрос - как именно?
PM WWW ICQ   Вверх
esperant0
Дата 28.10.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Может быть используя приближение Стирлинга smile


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
yaja
Дата 28.10.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(esperant0 @ 28.10.2005, 20:44)
Может быть используя приближение Стирлинга 

НЕт, поскольку она имеет только теоретический интерес, там сходимость очень медленная
smile
PM MAIL   Вверх
esperant0
Дата 28.10.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



В относительной ошибке - сходимость очень быстрая.




--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
jxr
Дата 28.10.2005, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



Создай свой модул (class C++).
Например , что бы работать с числами по 100 цирфам
0...000 ---- 9...999 (100 цифр )
Операции: +,-,* ...
Входяшие и выхожяшие будет STRING тип !!!
думаете может не правилно ... smile
PM MAIL   Вверх
valdoo
Дата 29.10.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



приближение Стирлинга мне неподходит. мне нужен точный пезультат.
С длинной цыфр тоже проблем нет. единственная проблема заключается в том что подщёты праисходят очень медленно.

Это сообщение отредактировал(а) valdoo - 29.10.2005, 13:06
PM MAIL   Вверх
Stream
Дата 29.10.2005, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.10.2005

Репутация: нет
Всего: нет



А если воспользоваться формулой Стирлинга и применить к ней логарифм по основанию 10? smile
PM MAIL   Вверх
yaja
Дата 31.10.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Что-то я подумал smile и пришел к выводу, что факториал никак не посчитать, кроме n! = 1 * 2 * 3... * n
Просто для большинства чисел, его факториал не влезет ни в одну из переменных, поэтому пользуются длинной арифметикой. Дык может существует способ, позволяющий минимизировать чило действий с длинными числами. И именно это спрашивает автор??
Мне сложно представить функцию, равную n! и позволяющую бысто высчитывать свои значени. Собственно мне такая функция известна, но имхо проще перемножить n - 1 чисел
n! = Г(n + 1); Г(s) = интеграл от 0 до + бесконечности ((x^(s - 1)) * exp(-x) * dx) - гамма функция Эйлера (формула Стирлинга выводится из ней)
PM MAIL   Вверх
esperant0
Дата 1.11.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Если уж на то пошло, то есть бесканечное кол-во ф-й дающих факториал.\


Формулу Стирлинга нам доказали в школе, разумеется без Гамма и Бетта ф-й


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Akina
Дата 1.11.2005, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(valdoo @ 28.10.2005, 19:02)
очень больших факториалов

каков верхний порог основания?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
yaja
Дата 1.11.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(esperant0 @ 1.11.2005, 21:04)
Формулу Стирлинга нам доказали в школе, разумеется без Гамма и Бетта ф-й

Вывод формулы Стирлинга без функций Эйлера возможен, но он очень искусственный и не имеет теоретического интереса. А зная функцию Эйлера, формула Стирлинга получается буквально за одну строчку smile
PM MAIL   Вверх
esperant0
Дата 1.11.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Цитата(yaja @ 1.11.2005, 21:34)
Цитата(esperant0 @ 1.11.2005, 21:04)
Формулу Стирлинга нам доказали в школе, разумеется без Гамма и Бетта ф-й

Вывод формулы Стирлинга без функций Эйлера возможен, но он очень искусственный и не имеет теоретического интереса. А зная функцию Эйлера, формула Стирлинга получается буквально за одну строчку smile

Термин исскуственное док-во плохо определен, но я с Вами не согласен


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
yaja
Дата 1.11.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(esperant0 @ 1.11.2005, 21:55)
Термин исскуственное док-во плохо определен

ээ ну мы уже при доказательстве знали формулу Стирлинга (как бы её из потолка взяли). Совсем непонятно кому она пришла в голову(это я шучу smile ) и как? А глядя на функции Эйлера немного все проясняется smile
PM MAIL   Вверх
Guest
Дата 2.11.2005, 13:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Akina @ 1.11.2005, 21:33)
Цитата(valdoo @ 28.10.2005, 19:02)
очень больших факториалов

каков верхний порог основания?

Мне нужны факториалы ~1.000.000 и больше.

Пришлось всё делать попростому n!=1*2*...*(n-1)*n
Занимает мноооого времени smile
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.