Я возможно не прав, но по-моему это не алгоритм Карацубы. Приведенный вами алгоритм не имеет никакой ценности казалось бы — для умножения двух чисел длины N он использует 4 умножения чисел длины N/2. То есть по сути ваш алгоритм работает за N^2. Алгоритм перемножения «влоб» тоже будет иметь такую ассимптотику.
Алгоритм Карацубы имеет такой же первый шаг, но использует следующую оптимизацию: рассмотрим (a+b)*(x+y) = (ay+bx) + ax + by.
Вычислим 3 (!) произведения чисел длины N/2 — (a+b)*(x+y), ax, by. Вычтем из первого второе и третье и получим ay+bx. Подсчитаем T^2(ax)+T(ay+bx)+by.
В яве ropes не используются для хранения строк. Используется просто массив символов из-за чего и получается долгая конкатенация.
Почему не ropes — вероятно потому что более долгое время доступа к элементам и оверхед по памяти.
Бессмысленные комментарии не несут никакой пользы, однако с течением времени могут превращаться в вредные комментарии из-за рассинхронизации этих самых комментариев и кода, так что без них будет лучше чем с ними. Ну и код захламляют как ниже сказано, когда ведь его читаешь невольно читаешь и комментарии (вдруг что полезное?).
Сейчас реализовывая понял еще одно огромное преимущество дерева с неявным ключом: оно полностью immutable. Можно переделать все поля на final вычисляя size сразу (непонятно зачем рекалк нужен) и тогда сразу видно полная immutable этого дерева.
А если соответсвенно сделать лист — получится полностью immutable лист. И очень быстрый. Очень круто.
Ну идея в виде RubyMine для ruby и Idea для java имеет совершенно разные возможности. В большинстве случаем для статически типизорованных языков возможности намного выше.
Просто в очередной раз когда ты видешь почти идеальное автодополнение в ide в той же яве вообще не хочется возвращаться к ruby/python которые могут предложить лишь «чуть лучше текстового редактора».
Я верю что знание, к примеру, матанализа и алгебры важно для программистов. Они качественно повышают уровень абстракции в мозгу. А это очень важные навыки.
Ну и вообще универ (если он нормальный) учит думать, развивает эту способность, не дает мозгах засохнуть.
Лимитированна / не лимитированна это другое. Главное что стоимость мегабайта оперативки намного выше стоимости мегабайта жесткого.
Как и стоимость мегабайта кэша 2 уровня намного больше стоимости мегабайта оперативки.
Как и стоимость мегабайта кэша 1 уровня намного больше стоимости мегабайта кэша 1 уровня (хоть тут наверно какие-то технологические проблемы с большим количеством сверхбыстрой памяти могут возникать).
А разве я не это же сказал?
Сначало делается new String() потом у этого стринга вызывается intern который может вернуть указатель на другой объект, но главное что вызывается это уже после создания того первого экземпляра строки, который правда соберет сборщик мусора.
Алгоритм Карацубы имеет такой же первый шаг, но использует следующую оптимизацию: рассмотрим (a+b)*(x+y) = (ay+bx) + ax + by.
Вычислим 3 (!) произведения чисел длины N/2 — (a+b)*(x+y), ax, by. Вычтем из первого второе и третье и получим ay+bx. Подсчитаем T^2(ax)+T(ay+bx)+by.
Как-то так.
Почему не ropes — вероятно потому что более долгое время доступа к элементам и оверхед по памяти.
А если соответсвенно сделать лист — получится полностью immutable лист. И очень быстрый. Очень круто.
Просто в очередной раз когда ты видешь почти идеальное автодополнение в ide в той же яве вообще не хочется возвращаться к ruby/python которые могут предложить лишь «чуть лучше текстового редактора».
Ну и вообще универ (если он нормальный) учит думать, развивает эту способность, не дает мозгах засохнуть.
Я думаю, реализация ничего не стоят без идеи. Она – всего лишь множитель. Идея стоит миллионов.
Объяснение:
Без реализации = 1
Слабая реализация = 1000
Реализация так себе = 10 000
Хорошая реализация = 100 000
Отличная реализация = 1 000 000
Гениальная реализация = 10 000 000
Ужасная идея = -$1
Слабая идея = $1
Идея ничего = $5
Хорошая идея = $10
Отличная идея = $15
Гениальная идея = $20
Как и стоимость мегабайта кэша 2 уровня намного больше стоимости мегабайта оперативки.
Как и стоимость мегабайта кэша 1 уровня намного больше стоимости мегабайта кэша 1 уровня (хоть тут наверно какие-то технологические проблемы с большим количеством сверхбыстрой памяти могут возникать).
Сначало делается new String() потом у этого стринга вызывается intern который может вернуть указатель на другой объект, но главное что вызывается это уже после создания того первого экземпляра строки, который правда соберет сборщик мусора.
Провайдер — йота, Питер.
Интресно насколько законно это будет? И если остальные данные включая State оставить правильными забанят они или нет?
А вот стоимость одной регистрации получается примерно 15 рублей.
Неплохо на самом деле.
У них можно платить только за месяц работы :-(