beldmit: (Программизм)
[personal profile] beldmit
Помните задачку, встреченную мной впервые у Перельмана - про самое большое число, записываемое тремя девятками, 999?

Если подумать, то представление этого числа как строки - это всего-то 300 Мб. Наверняка его получится вычислить на современных компьютерах "в лоб" за разумное время. Осталось понять, какие языки поддерживают соответствующие типы данных.

Date: 2009-10-19 10:28 am (UTC)
From: [identity profile] sysprg.livejournal.com
Из общедоступного быстрее всего (по времени счета :)) это можно сделать с помощью GNU MP Bignum Library (C, C++) (лучше собрать ее под 64-битную машинку).

Date: 2009-10-19 12:34 pm (UTC)
From: [identity profile] beldmit.livejournal.com
А можно обосновать?

Date: 2009-10-19 06:33 pm (UTC)
From: [identity profile] sysprg.livejournal.com
Она по факту самая быстрая (использует Toom-Cook и FFT алгоритмы умножения, сильно оптимизирована как в целом, так и под конкретные платформы) и я не знаю более быстрой библиотеки для общего случая, а не для специфических расчетов.

Date: 2009-10-19 02:51 pm (UTC)
From: [identity profile] slobin.livejournal.com
Тем более что большинство языков, у которые не боятся проблем с лицензией (эта библиотека именно GPL, не LGPL, и потому заразна), именно через неё длинную арифметику и реализуют. ;-)

... Интересно, а что же случилось с той чайкой? ...

w00t?

Date: 2009-10-19 07:36 pm (UTC)
ext_659502: (Default)
From: [identity profile] some41.livejournal.com
GMP is distributed under the GNU LGPL
http://gmplib.org/

Re: w00t?

Date: 2009-10-19 07:43 pm (UTC)
From: [identity profile] slobin.livejournal.com
Гм. И правда. Тогда совсем хорошо. ;-)

... Audio vocem de mirabili futuro ...

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 7th, 2026 12:13 pm
Powered by Dreamwidth Studios