Вниз
Скачать: 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.028 c
6-1105613406
AlexG
2005-01-13 13:50
2005.03.20
Кто-нибудь использует WinInet?


14-1109746281
Ломброзо
2005-03-02 09:51
2005.03.20
Англоязычная документация


1-1109923161
Oleg_
2005-03-04 10:59
2005.03.20
как правильно снять выделение с combobox?


1-1109927584
DimaK
2005-03-04 12:13
2005.03.20
Помогите разобраться с RichEdit!


1-1109567964
leonidus
2005-02-28 08:19
2005.03.20
Предотвращение зависания программы




   Наверх