Для расчета nCr [т.е. n ! / ( r ! * ( n-r )! ) ], написанный ниже код.
Перл-код:
($i,$j)=(1000,100);
print fact($i)/(fact($j)*(fact($i-$j)));
sub fact{
return 1 if $_[0]<=1;
return $_[0]*fact($_[0]-1);
}
который выдает результат как "-NaN", но,
тот же логический код в python дает правильный результат.
Код Python:
def fact(x):
if x <= 1:
return 1
return x*f(x-1)
v,y = 1000,100
print fact(v)/(fact(y)*fact(v-y))
Пожалуйста, дайте мне знать, какие изменения я должен внести в код Perl, чтобы заставить его работать с большими числами. (А также я пытался использовать "bigint", но не сработало )
Изменить:
Спасибо всем за ответ.
Извините, я пропустил ; и -1.
Я думаю, что bigint зависит от конфигурации машины
-NaN
. Он даже не компилируется - person ikegami   schedule 19.06.2015