[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
-
kaster
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
amel27, подскажи плз, как перевести полученную строку в десятичное представление? тоже в виде строки, естественно.
-
Yashied
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Есть прикольная
Код:
UDF
для работы с большими числами. 100! считает моментально.Код:
Код: Выделить всё
#Include
$n = '1'
For $i = 1 To 100
$n = _BigNum_Mul($n, $i)
Next
ConsoleWrite($n & @CR)-
kaster
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Yashied, да. прикольная либа. я уж думал писать свою для подобных целей
остановился на сложении длинных чисел. но тут наткнулся на твой пост и решил, что велосипед мне ни к чему 
1000! считает за 6 сек, 2000! за 27.
остановился на сложении длинных чисел. но тут наткнулся на твой пост и решил, что велосипед мне ни к чему 
1000! считает за 6 сек, 2000! за 27.
-
Yashied
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Цитата kaster:
...подскажи плз, как перевести полученную строку в десятичное представление?
Код:
...подскажи плз, как перевести полученную строку в десятичное представление?
[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Код:
Код: Выделить всё
StringFormat('%0.f', $a[1])-
kaster
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Yashied, не совсем понял твой ответ. но и ты наверное не совсем понял мой вопрос, т.к. он относился к посту amel27 в котором он приводил факториал числа в 16-ом представлении. Вот я и хотел чтобы он перевел его каким-то образом в 10-ное. потому как известный мне способ не позволяет это сделать для длинных чисел изза переполнение стека
-
amel27
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
Цитата kaster:
Вот я и хотел чтобы он перевел его каким-то образом в 10-ное.
а разве велосипед еще актуален?..
гм... на самом деле я не вижу подводных камней (кроме скорости обработки), это же целочисленное деление - при помощи умножения получаем "длинные" степени числа 10 в двоичном представлении, потом вычитанием со сдвигом находим частное и остаток... в любом случае, раньше выходных покодить не получится - на работе загруз
З.Ы. кстати, я привел код для демонстрации того, о чем все итак знают (метод "столбика")...
Вот я и хотел чтобы он перевел его каким-то образом в 10-ное.
[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
а разве велосипед еще актуален?..

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

-
kaster
Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?
amel27, да не. не парься. твой код проигрывает по времени нахождения факториала тому, что в либе указанный Yashiedом в 1000 раз
Но там иной принцип. Перевод числа в систему счисления в 10^N.
Но там иной принцип. Перевод числа в систему счисления в 10^N.