Вниз
Скачать: CL | DM;

Математики, вопрос для вас   Найти похожие ветки 

← →
Vasya.ru ©   (2005-03-04 10:44) [0]

есть формула ((N + K - 1)! - N!) / K!, (0 < N, K < 1000000000). Собственно вопрос в том, как это можно рассчитать для разных наборов N, K, пользуясь только стандартными средствами TP, не используя длинную арифметику?


← →
Думкин ©   (2005-03-04 10:49) [1]

N=999999999 K=2 И как не используя длинную?


← →
TUser ©   (2005-03-04 11:02) [2]

По Стирлингу ее преобразовать, наверное


← →
Alx2 ©   (2005-03-04 11:03) [3]

TUser ©   (04.03.05 11:02) [2]
Вот это очень мешает: (N + K - 1)! - N!


← →
Alx2 ©   (2005-03-04 11:04) [4]

TUser ©   (04.03.05 11:02) [2]
Т.е. преобразовать-то можно, но для приемлемой точности аппроксимации на K и N лягут сильные ограничения


← →
Думкин ©   (2005-03-04 11:05) [5]

> [2] TUser ©   (04.03.05 11:02)

В моем случае будет:

999999999!*999999999/2 как это согласовать со словами:

> пользуясь только стандартными средствами TP, не используя длинную арифметику?


?


← →
MBo ©   (2005-03-04 11:07) [6]

в общем случае, конечно, в целых числах не выйдет.
Преобразуем так, чтобы не считать совсем уж офигенные
числа:
N!/K! * ((N+K-1)!/N! - 1)

для N>K

nk:=1;
for i:=k+1 to n do
 nk:=nk*i;

nk1:=1;
for i:=n+1 to n+k-1 do
 nk1:=nk1*i;

Result:=nk*(nk1-1);


← →
Alex Konshin ©   (2005-03-04 11:23) [7]

a!/b! можно сократить.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
6-1106248906
zt50
2005-01-20 22:21
2005.03.20
Динамические IP


3-1108705826
Layner
2005-02-18 08:50
2005.03.20
Как передать параметр в ХП MSSQL


14-1109921326
Оля
2005-03-04 10:28
2005.03.20
Установка IE6


14-1109455157
Vasya.ru
2005-02-27 00:59
2005.03.20
Воскресные задачки


4-1107503226
Danko
2005-02-04 10:47
2005.03.20
Как узнать какие параметры у функции, процедуре в DLL?




   Наверх