|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ускорение поиска числа факториала |
|
C/C++ - Ускорение поиска числа факториала
|
Старожил Сообщения: 222 |
Профиль | Отправить PM | Цитировать Люди помогите сделать бысрый алгоритм нахождения числа из его факториала.
Я писал вот такой код но он оч медленный #include <iostream.h> #include <fstream.h> int faknom(int a) { int i=1; while(a!=i) { a=a/i; i++; }; return i; }; int main() { int Nfak; ifstream fin("input.txt"); fin>>Nfak; fin.close(); ofstream fout("output.txt"); fout<<faknom(Nfak)<<endl; fout.close(); return 0; } Как ускорить алгоритм расчета? |
|
Отправлено: 13:00, 01-06-2008 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать |
Отправлено: 05:24, 13-06-2008 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Admiral, нет. В C вообще нет такого понятия, как потоки ввода-вывода. Так что да, у hasherfrog'а изменят память. Со всеми бывает.
|
------- Отправлено: 00:54, 14-06-2008 | #32 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать ivank, я никого обвинять не собирался. Дело всё в том что после этой темы стал внимательнее смотреть исходники, форумные сообщения на данный сабж. Самым большим удивлением было увидеть iostream.h в печатной литературе. Автора называть не стану, книга ссылается на стандарт ISO/IEC 14882 (1998). Теперь буду иметь ввиду.
|
Отправлено: 01:26, 14-06-2008 | #33 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать На крайний случай можно глянуть в драфт стандарта (вторая ссылка): http://www.google.ru/search?q=c%2B%2B+standard Никакого iosteam.h там не упоминается, в отличие от iostream (701 страница). Больше половины нынешней печатной литературы по программированию - мукулатура. К сожалению.
|
------- Отправлено: 02:36, 14-06-2008 | #34 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать я не понимаю - если известен предел, по которому будет высчитываться факториал (тут n до 2000), то почему бы сперва не создать алгоритмик, который запишет текстовый файлик со всеми значениями n до 2000, и потом будет просто вестись вборка.. факториал же можно высчитать только для натуральных чисел - поэтому никаких дробей.
да.. числа огромные будут - но таблица все равно будет не больше 10кб.. или тут нужен именно алгоритм?? а то меня учили идти по пути наименьшего сопротивления и без выпендрежа) |
Отправлено: 04:01, 14-06-2008 | #35 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать DaRiYs, поскольку вы просите помочь с оптимизацией - уточните условия по максимуму!
В частности - необходимо вычислить один "обратный" факториал или данный алгоритм будет вызываться из цикла? На входе только факториалы - т.е. можно ли использовать приближённую оценку? Использование ассемблера заметных плюсов в скорости выполнения не даст. Примитивный цикл с умножением/делением компилируется довольно эффективно. |
Отправлено: 12:39, 14-06-2008 | #36 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Простые числа на Си++ | nemo555 | Программирование и базы данных | 13 | 13-03-2007 21:24 | |
*Теория* | Числа Фибоначчи | Grub | Программирование и базы данных | 8 | 28-07-2006 14:23 | |
четность числа | elfoflorien | Вебмастеру | 6 | 18-09-2005 20:49 | |
Случайные числа на JavaScript | Dimonweb | Вебмастеру | 2 | 12-08-2004 03:23 | |
суммироват числа | Artashes | Программирование и базы данных | 3 | 30-08-2003 18:31 |
|