Как стать автором
Обновить

Комментарии 6

во второй версии языка был отдельный тип «обычных» целых, которые могли переполняться

Не могли. При переполнении int становился long.

Да, что-то я не подумав сказал, спасибо за замечание.

Очень интересно, спасибо!


Ну и печально, конечно, что всё не так оптимально как могло бы быть. Вот в Haskell вроде тоже есть большие целые произвольной длины, но они гораздо быстрее.

Ну здесь рекомендация простая: нужна математика — не используйте python, но если очень хочется — вот вам numpy.
Это, конечно, не оптимальный вариант, но жить можно, и очень неплохо.

Numpy без целых произвольной длины, только быстрые вычисления с float32/64 и их собратьями (и стандартными целыми).

Касательно именно длинной арифметики, у меня данных нет, к сожалению.
По идее, операции написаны на C, используют в том числе и алгоритм Карацубы, правда, вряд ли создатели интерпретатора задавались целью применить столько же оптимизаций, сколько могут сделать создатели специализированных библиотек, в общем, если у кого есть бенчмарк, будем рады.

Я пока могу судить только по вычислению биномиальных коэфициентов и прочих чисел Фибоначчи — лично меня скорость устраивала. :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации