Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ускорение поиска числа факториала

Ответить
Настройки темы
C/C++ - Ускорение поиска числа факториала

Старожил


Сообщения: 222
Благодарности: 1

Профиль | Отправить 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;
}
В файле input.txt лежит значение факториала N! числа N, а в файле output.txt должно быть записано значение N.
Как ускорить алгоритм расчета?

Отправлено: 13:00, 01-06-2008

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Цитата ivank:
<iostream> - вполне есть в стандарте. »
А может он описан в С++ стандарте, а <iostream.h> в С?
Цитата hasherfrog:
ЕМНИП: <iostream.h> используется для С, <iostream> для С++. >>
Или память всё же изменила hasherfrog?

Отправлено: 05:24, 13-06-2008 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Admiral, нет. В C вообще нет такого понятия, как потоки ввода-вывода. Так что да, у hasherfrog'а изменят память. Со всеми бывает.

-------
http://ivank.ru


Отправлено: 00:54, 14-06-2008 | #32


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


ivank, я никого обвинять не собирался. Дело всё в том что после этой темы стал внимательнее смотреть исходники, форумные сообщения на данный сабж. Самым большим удивлением было увидеть iostream.h в печатной литературе. Автора называть не стану, книга ссылается на стандарт ISO/IEC 14882 (1998). Теперь буду иметь ввиду.

Отправлено: 01:26, 14-06-2008 | #33


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


На крайний случай можно глянуть в драфт стандарта (вторая ссылка): http://www.google.ru/search?q=c%2B%2B+standard Никакого iosteam.h там не упоминается, в отличие от iostream (701 страница). Больше половины нынешней печатной литературы по программированию - мукулатура. К сожалению.

-------
http://ivank.ru


Отправлено: 02:36, 14-06-2008 | #34


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


я не понимаю - если известен предел, по которому будет высчитываться факториал (тут n до 2000), то почему бы сперва не создать алгоритмик, который запишет текстовый файлик со всеми значениями n до 2000, и потом будет просто вестись вборка.. факториал же можно высчитать только для натуральных чисел - поэтому никаких дробей.
да.. числа огромные будут - но таблица все равно будет не больше 10кб..
или тут нужен именно алгоритм?? а то меня учили идти по пути наименьшего сопротивления и без выпендрежа)

Отправлено: 04:01, 14-06-2008 | #35


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


DaRiYs, поскольку вы просите помочь с оптимизацией - уточните условия по максимуму!

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

Использование ассемблера заметных плюсов в скорости выполнения не даст. Примитивный цикл с умножением/делением компилируется довольно эффективно.

Отправлено: 12:39, 14-06-2008 | #36



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ускорение поиска числа факториала

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Простые числа на Си++ 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




 
Переход