|
|
  |
Как рекуррентно посчитать 1/X?, Нужен алгоритм |
|
|
|
Aug 30 2005, 08:12
|
Местный
  
Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765

|
Цитата(vitus_strom @ Aug 30 2005, 09:29) Предварительно посчитать для каждой точки а потом сложить в кэш и умножать сколько влезет Да никакой памяти и времени не хватит на предварительный расчет.
|
|
|
|
|
Aug 30 2005, 11:29
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288

|
А прямое вычисление почему не пойдет. 3десь три операции- сложение,умножение,деление. Умножение можно заменить на сложение- прибавлением к предыдущему значению конст. d. Вот два такта. Деление,понятно, позатратней будет
|
|
|
|
|
Aug 30 2005, 15:09
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288

|
Тогда можно использовать следующий алгоритм, только точность его невелика. Призводная от ln(A+nd) =1/(A+nd). Т.е. необходимо посчитать производную ln в точке n. Лучшая точность будет, если известны значения функции в соседних точках слева и справа (n-1, n+1). Но по-условию известны только предыдущие значения. Значит можно взять только один вариант- определять производную по 2-м предыдущим точкам (n-2, n-1). Конечно, точность может оказаться маленькой и ошибка будет накапливаться. Но это будет зависеть от вас. Можно, например, затабулировать с десяток первых значений, а считать начиная с 11-ой точки.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|