Обновить
-18
Илья Никульшин@ilyanik

Пользователь

16
Подписчики
Отправить сообщение
А вы как-то оптимизировали/сортировали структуру, содержащую серединки?

Я только что посмотрел — на «случайный» доступ к этой огромной структуре тратится 70-80% всего времени, в разы больше чем на всю математику.
Здорово!

Но, если я не ошибаюсь, ваше ускорение не применимо в случае взаимно простых оснований.
Так вы профильтровали 5*10^13 краев, или сразу сгенерировали 5^14?
Но краев-то 5*10^13 (для ширины 44). Только на их генерацию должно было уйти много часов, даже при скорости генерации 10^9 в секунду.
Ну, с шириной краев и середины я тоже «играл», тем более, что потом всё равно кончается память. Но дальше вы по краям тоже ведь не просто проходите…
Мне кажется, вам надо принять эстафету «Вперед, на поиски палиндромов» :)

Потому что ваш алгоритм уже быстрее O(N1/4)
Круто! А как же 5 лет?
А, из-за того, что 10 делится на 2?

Да, распределение по корзинам получается очень неравномерное. Но из-за равномерного выбора каждой из 2^19 корзин, в среднем выходит 1.9: на каждую корзину с ~122 элементами 63 пустых.
Эээ..., а почему 2^13 корзин? :)

Это же мой алгоритм, у меня 2^19? Откуда вы вообще взяли число 13?
Например, первого палиндрома края я проверяю 5 корзин:

100000_000000000000_000001 = 1010100101101000000_1011000111111000010100101011110110100000000000000000000001
100001_000000000000_100001 = 1010100101101000100_0010101000100101111111111010011101111001011000011010100001
Ширина края — 19. Т.е. 1000000 палиндромов-серединок распределяются по 2^19 корзин (в среднем по 1.9 в каждой корзине).
Палиндромы-края изменяются от 100000хххххххххххх000001 до 999999хххххххххххх9999999, и для каждого палиндрома-края проверяется всего несколько корзин.
Ширина края — 19. Т.е. 1000000 палиндромов-серединок распределяются по 2^19 корзин (в среднем по 1.9 в каждой корзине).
Палиндромы-края изменяются от 100000хххххххххххх000001 до 999999хххххххххххх9999999, и для каждого палиндрома-края проверяется всего несколько корзин.
Это не строгое доказательство, а попытка объяснить реальные результаты :)

Например, для ширины в 24 десятичных знака, и следовательно 900000 элементов А, проверено 3958921 палиндромов, в среднем по 4.4 различных b на каждый a.
Я брал BASE0 > BASE1, но не думаю, что это принципиально.

80 первых членов я нахожу за 3.5 секунды.
Почему 520? Только первая цифра десятичного палиндрома нечетная, на остальные ограничений нет.
Исправил на «Безусловно, заметная часть моего преимущества была вызвана переходом с PHP на C++, но все равно я удовлетворенно потирал руки» :)
В Европе даже премиальное авто дешевле такси с водителем. В Женеве, помню за 10 минут ночной поездки хотели около 2500 рублей. Я даже на последнюю ночь перебрался в гостиницу у аэропорта.

Человеческий глаз устроен так, что видит очень много новых машин премиальных марок. А вдесятеро больше унылых, старых и дешевых машин, не заезжающих в туристические места — не видит.

Когда я бываю в России (Санкт-Петербурге), мне кажется, что там чуть половина машин — премиальные марки. Но статистика утверждает, что среди первых 10 марок по продажам, премиальных марок нет.
И все равно, 90% продаж — это не премиальные марки. А относительно новые машины — менее 25% от всего автопарка.

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

Но, блин, таких людей МАЛО. МЕНЬШИНСТВО. А большинство ездит на таких машинах, на которые без слез взглянуть жалко.
Доживете — узнаете :)

Информация

В рейтинге
Не участвует
Откуда
Герцлия, Тель-Авив, Израиль
Дата рождения
Зарегистрирован
Активность