Pull to refresh
64
0.9
Дмитрий Федорков @Fedorkov

Программист

Send message
В текстовых редакторах порой очень не хватает статического анализа с ворнингами. Не раз я вместо «можно» случайно набирал «модно», а Word при этом молчал как партизан.
Книга классная. Сформулированы многие вещи, которые я понимал лишь глубоко интуитивно.
Язык — это средство выражения мыслей и чувств; поэтому писать, имхо, нужно так, чтобы при беглом чтении у читателя скаладывались именно те мысли и чувства, которые вы хотите передать. Пока что единственный известный мне способ это сделать — писать, перечитывать и исправлять текст до появления чувства завершённости.
Хм, хотя в ленте Хабра такой заголовок действительно выглядит несколько странно. Сократил заголовок.
«Срочная новость» — это перевод оригинального заголовка 2006 года.
Компромисс времени и памяти, любопытно. Правда, для 50 входных чисел это получается 2 подмножества * 225 комбинаций * (8 байтов суммы + 8 байтов маски битов использованных чисел) = 1 ГБ памяти. Но до этих пределов действительно можно считать без свопинга.
По большому счёту, мне эти 3 числа нужны не больше, чем остальные 30. Но я всё равно занимаюсь этим, из спортивного интереса.
Так скажем, ускорив программу в 10 раз, можно будет добавить ещё 3 входных числа без потерь по времени. :)
Но это, к сожалению, только для целых чисел. Задачу я сформулировал в целых числах, но это лишь для простоты примера. Впрочем, все исходные вещественные данные можно умножить, скажем, на 1000 (или на сколько памяти хватит), округлить, и считать уже динамическим программированием за O(nW). В Википедии это называется fully polynomial time approximation scheme. Я про всё это узнал уже после того, как запостил статью, но проблема меня по-прежнему волнует, и поэтому, вполне вероятно, я когда-нибудь напишу статью с анализом этого алгоритма.
12 ...
94

Information

Rating
1,619-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity