for x in range(7654321, 0, -2):
for p in range(3, int(x ** .5), 2):
if not x % p: break
else:
if "1234567".startswith(''.join(sorted(str(x)))): exit(print(x))
Крохоборствуя на пробелах и выкинув корень, можно выжать 140 символов, влезть в рамки изначального ограничения твиттера. Но зачем?
Без затей смотрим на скопипащеный quicksort. Ага, имеем т.н. помойный вариант, характеризующийся требованиями по доп. памяти всегдаO(N), а отнюдь не
O(log2(N))
Как такое могло произойти? Увы, такое случается сплошь и рядом.
Кстати, я не имею ничего против помойный быстрой сортировки, у неё есть достоинство - её легко может воспроизвести неопытный новичек, рискующий в честной реализации не справиться с границами, индексами и т.п. Как автор этой публикации, например.
Гильза выполняет несколько функций, с которыми у безгильзового патрона плоховато:
гильза прочная, пороховая шашка — нет
гильзовый патрон герметичен — базгильзовый нет
безгильзовый можно залакировать чем-то водоупорным — но эта дрянь будет засирать патронник
гильза, как не странно, служит теплоизоляцией — а пороховая шашка может самовоспламениться в раскалённом патроннике
Кстати, пункт 3 случается и с гильзовым патроном — стальная лакированая гильза при интенсивной стрельбе оставляет лак в патронике, оружие клинит. Зачем усугублять?
update
Спасибо SantrY за «другую статью» — узнал много нового.
Это код, который демонстрирует, что коллизий эта формула не создаёт и все точки заполняются. Мне на него хватило памяти, вам, слава богу, тоже.
В Wolfenstein 3D точки выводятся прямо в фреймбуфер, а я вот вывел в переменную screen. Ну просто чтобы вывести куда-то, убедиться, что коллизий нет, ну и вас убедить. Не убедил?
А вот если бы я тоже выводил в фреймбуфер игры Wolfenstein 3D, это бы мне ничего по памяти не стоило, кроме фреймбуфера, который всё равно нужен, и он есть, и вот он:
push 0A000h ; начало видеобуфера
А контекст, так он прямо в первых двух строчках комента. Не читали?
идея псевдослучайной заливки экрана с наименьшими коллизиями потрясает
Есть идея посильнее, без коллизий:
N, a, b, i = 64000, 34781, 33937, 0
screen = [True] * N
for _ in range(N):
i = (i * a + b) % N
if screen[i]:
screen[i] = False
else:
print(f'опс, второй раз в ту же точку')
break
else:
print(f'все {N} точек закрашены за {N} ходов')
что там с псевдослучайностью?
Откуда взялись a и b? Подобрал, таких пар много.
рендеринг
from PIL import Image
n, N, a, b, i = 200, 64000, 34781, 33937, 0
img = Image.new('1', (320, 200), color='black')
for step in range(n + 1): # 201 кадр анимации
for _ in range(N // n):
i = (i * a + b) % N
img.putpixel(divmod(i, 200), 1)
img.save(f'{step:>03}.gif', 'gif')
Кто-нибудь понимает смысл иллюстрации? Эти частицы вправду имеют цветные контуры, иногда — синие, иногда — красные? А формой напоминают головки снарядов?
ps.
В оригинальной статье есть графики и диаграммы, но этого безумия там нет.
Хорошо оплачиваемую работу делают чуваки с опытом трудоустройства на хорошооплачиваемую работу. Это естественно, никаких обид. Работодатели — те же мартышки, процент гениев среди них не зашкаливает.
А презрение к «академическим знаниям» — синдром недоучки. «Зелен виноград, знаю из живого общения».
Но если вернуться в 60-е годы прошлого столетия, то можно увидеть полный монохром, будто черно-белыми фотографиями вдохновлялись: черный пластик или ткань (если повезло — кожа) и серебристый матовый металл.
В детстве развлекался ремонтом фотоаппаратов «Смена» всяких версий, чаще всего «Смена-7», но попадались и какие-то раритеты с карболитовыми корпусами.
Кто вовсе не в теме — гугли в гугле, а так скажу, что смены характеризовались двумя особенностями:
Неубиваемый, выдающийся центральный затвор, просто сказка, наследник немецких compur'ов,
Унылый, омерзительный объектив «триплет», про который ходили слухи, что это — окуляр для танка, ну и вот сюда приспособили )
И вот что я скажу: попадись мне в руки смена сейчас — прямиком послал бы в помойку. Это примерно как лапти вязать и в них ходить — экологично, наверное, но удел полных фриков.
Да и Зоркие, к концу жизненного цикла напрочь выжатые из экониши более дешевыми и набёжными ФЭДами, не вызывают никакого трепета — никакого.
С каких пор 4й семестр начинается в ноябре?
Вот 5 строк, без сторонних библиотек:
Крохоборствуя на пробелах и выкинув корень, можно выжать 140 символов, влезть в рамки изначального ограничения твиттера. Но зачем?
O(n^2) == экспоненциально? Однако.
Кирпичи настигнут 1/e от популяции, что довольно очевидно.
Без затей смотрим на скопипащеный quicksort. Ага, имеем т.н. помойный вариант, характеризующийся требованиями по доп. памяти всегда O(N), а отнюдь не
Как такое могло произойти? Увы, такое случается сплошь и рядом.
Кстати, я не имею ничего против помойный быстрой сортировки, у неё есть достоинство - её легко может воспроизвести неопытный новичек, рискующий в честной реализации не справиться с границами, индексами и т.п. Как автор этой публикации, например.
Кстати, пункт 3 случается и с гильзовым патроном — стальная лакированая гильза при интенсивной стрельбе оставляет лак в патронике, оружие клинит. Зачем усугублять?
update
Спасибо SantrY за «другую статью» — узнал много нового.
Для тех, кто не в курсе: новички часто так пишут, не знаю почему. Это — антипаттерн, нормальное использование print Использование антипаттерна в качестве иллюстрации — такое себе.
Это код, который демонстрирует, что коллизий эта формула не создаёт и все точки заполняются. Мне на него хватило памяти, вам, слава богу, тоже.
В Wolfenstein 3D точки выводятся прямо в фреймбуфер, а я вот вывел в переменную screen. Ну просто чтобы вывести куда-то, убедиться, что коллизий нет, ну и вас убедить. Не убедил?
А вот если бы я тоже выводил в фреймбуфер игры Wolfenstein 3D, это бы мне ничего по памяти не стоило, кроме фреймбуфера, который всё равно нужен, и он есть, и вот он:
А контекст, так он прямо в первых двух строчках комента. Не читали?
Есть идея посильнее, без коллизий:
Откуда взялись a и b? Подобрал, таких пар много.
Кто-нибудь понимает смысл иллюстрации? Эти частицы вправду имеют цветные контуры, иногда — синие, иногда — красные? А формой напоминают головки снарядов?
ps.
В оригинальной статье есть графики и диаграммы, но этого безумия там нет.
А презрение к «академическим знаниям» — синдром недоучки. «Зелен виноград, знаю из живого общения».
Ага, а соединялись эти детали conductor'ом.
ps
А можно и не увидеть.
Кто вовсе не в теме — гугли в гугле, а так скажу, что смены характеризовались двумя особенностями:
Неубиваемый, выдающийся центральный затвор, просто сказка, наследник немецких compur'ов,
Унылый, омерзительный объектив «триплет», про который ходили слухи, что это — окуляр для танка, ну и вот сюда приспособили )
И вот что я скажу: попадись мне в руки смена сейчас — прямиком послал бы в помойку. Это примерно как лапти вязать и в них ходить — экологично, наверное, но удел полных фриков.
Да и Зоркие, к концу жизненного цикла напрочь выжатые из экониши более дешевыми и набёжными ФЭДами, не вызывают никакого трепета — никакого.