[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Аватара пользователя
kaster

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение kaster »

amel27, подскажи плз, как перевести полученную строку в десятичное представление? тоже в виде строки, естественно.
Аватара пользователя
Yashied

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение Yashied »

Есть прикольная
UDF
для работы с большими числами. 100! считает моментально.





Код:

Код: Выделить всё

#Include 
$n = '1'
For $i = 1 To 100
    $n = _BigNum_Mul($n, $i)
Next
ConsoleWrite($n & @CR)
Аватара пользователя
kaster

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение kaster »

Yashied, да. прикольная либа. я уж думал писать свою для подобных целей Изображение остановился на сложении длинных чисел. но тут наткнулся на твой пост и решил, что велосипед мне ни к чему Изображение

1000! считает за 6 сек, 2000! за 27.
Аватара пользователя
Yashied

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение Yashied »

Цитата kaster:



...подскажи плз, как перевести полученную строку в десятичное представление?
[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?






Код:

Код: Выделить всё

StringFormat('%0.f', $a[1])
Аватара пользователя
kaster

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение kaster »

Yashied, не совсем понял твой ответ. но и ты наверное не совсем понял мой вопрос, т.к. он относился к посту amel27 в котором он приводил факториал числа в 16-ом представлении. Вот я и хотел чтобы он перевел его каким-то образом в 10-ное. потому как известный мне способ не позволяет это сделать для длинных чисел изза переполнение стека
Аватара пользователя
amel27

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение amel27 »

Цитата kaster:



Вот я и хотел чтобы он перевел его каким-то образом в 10-ное.
[решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?




а разве велосипед еще актуален?.. Изображение



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



З.Ы. кстати, я привел код для демонстрации того, о чем все итак знают (метод "столбика")... Изображение
Аватара пользователя
kaster

Re: [решено] Как обсчитать факториал БОЛЬШИХ чисел... или почему 100!=0 ?

Сообщение kaster »

amel27, да не. не парься. твой код проигрывает по времени нахождения факториала тому, что в либе указанный Yashiedом в 1000 раз Изображение Но там иной принцип. Перевод числа в систему счисления в 10^N.
Ответить

Вернуться в «AutoIt»