Что делать дураку

Я очень хреново играю в игры, которые требуют построения глубокого дерева решений. Например, в шахматы. Даже на небольшой сложности практически любая шахматная программа меня нагибает. Вот почему-то мне это не даётся, и никогда не давалось. Больше скажу — мне настолько неприятно пытаться заставить мой мозг учиться это делать, что скорее всего, я никогда этому искусству и научусь.

То же самое касается решения каких-то математических головоломок. Каким-то хитрым образом сложить вместе цифры, чтобы получить что-то нужное у меня просто не получается. Какие-нибудь судоку, например. Ненавижу их.

Но зато я могу написать алгоритм, который любую из подобных задач решает за доли секунды. Любые самые зубодробительные судоку я могу решить за 0.24 секунды (засекал, программа на Джаве). Интересно даже, что те судоку, что считаются наиболее сложными для человека, программа решает быстрее, чем те, которые считаются простыми. Видимо, что просто для человека, сложно для компьютера, и наоборот.

Натолкнулся на подобную задачку у avva. Берём четыре заданных числа. Можно переставлять их как хочется. Из инструментов — все четыре действия арифметики и скобки. Сумма должна получиться 24.

Простая задачка:

2,3,3,6

2 * 3 * 3 + 6 = 24

Сложная задачка:

1, 3, 4, 6

6 / (1 – 3/4) = 6/(1/4) = 6*4 = 24

Вы думаете, я руками решал? Да ну нахер такое, ненавижу.

Это менее 20 строчек на Питоне (на чём же ещё, если надо быстро):

from itertools import permutations

all_numbers = ['1','3','4','6']
all_actions = ['*','/','+','-']
all_parens = [['','','','','',''],['(','',')','','',''],['','(','','',')',''],['','','','(','',')'],['(','','','',')',''],['','(','','','',')'],['(','',')','(','',')']]

numbers = list(permutations(all_numbers))

for number in numbers:
	for i in range(0,len(all_actions)):
		for j in range(0,len(all_actions)):
			for k in range(0,len(all_actions)):
				for parens in all_parens:
					try:
						if (eval(parens[0] + number[0] + all_actions[i] + parens[1] + number[1] + parens[2] + all_actions[j] + parens[3] + number[2] + parens[4] + all_actions[k] + number[3] + parens[5]) == 24):
							print(parens[0] + number[0] + all_actions[i] + parens[1] + number[1] + parens[2] + all_actions[j] + parens[3] + number[2] + parens[4] + all_actions[k] + number[3] + parens[5])
							quit()	
					except ZeroDivisionError as e:
						print(e)

Не получилось только как-то алгоритмизировать создание скобок. Скобки, они, блин, хитрые. ()(), например, не палиндром. А ())( — палиндром. Поэтому в лоб написал все возможные варианты, благо, их немного.

Что делать дураку? Писать алгоритмы!!!

Рабочее

По работе иногда пересекаюсь с сисадмином из другой конторы, с которой мы вместе строим облачный продукт. Парень хороший, работящий. Что характерно — индеец-маскоги. Фамилия у индейцев часто индейское имя какого-нибудь прадедушки. У него фамилия — Хокай (Hawk Eye), т.е. “Ястребиный глаз”.

Пикантность ситуации в том, что он… слепой 🙂 “Слепой”, кстати, не значит, что он не видит нихрена. Просто он видит недостаточно хорошо, чтобы, например, водить автомобиль. Но он вполне может читать текст на экране, если он крупный и высококонтрастный.

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

И ещё про Тор

Вот уж интересно. Не успел написать о том, что кто-то активно деанонимизирует пользователей сети Тор, как пришла интересная новость из России: Роскомнадзор начал блокировку ресурсов Тор.

Таких совпадений не бывает, блин. Значит, либо Роскомнадзор пытается защитить россиян от деанонимизации, либо наоборот — это они и занимаются этой самой деанонимизацией.

Запасаемся попкорном. Будет интересно.

Интересное про Тор

Если кто не знает, Тор — это распределённая сеть для обмена данными в сетях Интернет и Onion. Её основой являются прокси-серверы (nodes), через которые пересылаются данные пользователей. Так как данные пересылаются между туевой хучей этих узлов (и при этом шифруются), откуда конкретно пришёл отдельный запрос, выяснить невозможно, что даёт пользователю анонимность.

Изначально её придумали по военному заказу в США, как предполагаю — для создания второго независимого “интернета внутри интернета”, ховать трафик внутри сетей “недружественных стран”. Параллельным эффектом стало создание скрытых вебсайтов .onion (dark web), которые с удовольствием оседлали преступники для нелегальной продажи наркотиков, оружия, проституции, и прочих радостей жизни. Один из таких сайтов — Silk Road — с большой помпой накрыли ФБР и Европол.

Как можно взять за соответствующие места граждан, которые так неплохо шифруются? Ну, создателей Шелкового Пути взяли на ошибке, но в целом трафик сети Тор можно деанонимизировать, если взять под контроль достаточное количество прокси-серверов, и использовать всяческую бигдату, чтобы набрать достаточный статистический материал для анализа мета-данных.

И, походу, кто-то этим и занимается. В сети Тор обнаружены сотни прокси-серверов, под единым контролем. Их достаточно, чтобы шанс зайти в сеть через один из них составлял 16%, 35% — что твой трафик пойдёт через один из маршрутизаторов, и 5% — что ты выйдешь наружу через один из них.

И версия, что кто-то задонатил эти сотни серверов ради Свободы… как-то сомнительна. Скорее всего, кто-то ловит крупную рыбу. Россия, кстати, входит в тройку стран с наибольшим количеством пользователей сети Тор.

Крайне интересное развитие событий.

Утащено у Шнайера.

Однокомнатная квартира в грузовике

Очень прикольный дом на колёсах. Один из самых продуманных, на мой взгляд. И что классно — он незаметный. Увидишь на улице, подумаешь, что какие-то работяги куда-то что-то везут. В деревне, конечно, наплевать, а в городе очень может пригодиться — не привлекает к себе ненужного внимания.

На охоту ездить на таком 🙂 Правда, на охоту обычно надо полноприводной.

Сделано в Японии

Субарик проехал знаковый километраж, вернее, миляж.


Менял я на нём немногое. Выхлоп, и теперь мне предстоит заменить ремень ГРМ и передние амортизаторы. Но по сути своей, и выхлоп, и ремень, и амортизаторы — это, братцы-кролики, просто расходники.

До таких длинных миль у меня доезжали три автомобиля: Тойота Камри, вот теперь Субарик-Лесник, и Форд Ф-150.

Не знаю, где собиралась Камри 1996 года, а Лесник сделан в Японии. Нравятся мне японские автомобили.

Ну, а прочее барахло типа Джи-Эм или Хундая до таких миль просто у меня не доживало, превращалось назад в тыкву. Либо конкретно требовало постоянного ремонта и теряло свои потребительские качества (Хундай), либо в них ломалась что-то по серьёзному: дрыгатель у Камаро, трансмиссия у Бьюика, гидроусилитель.

Но так как у нас на дворе, слава богам, капитализм, а не социализм, то у нас есть свобода выбора и возможность голосовать трудовым долларом: вот такие товары нам нравятся, а другие засуньте себе туда, где не светит солнце.

Ну, а если мне захочется когда-нибудь выпендриться и купить что-то подороже-попредставительней, я возьму Лексус-трёхлетку. Все детские проблемы в нём уже будут решены, он уже потеряет 50% стоимости, но будет ещё долго радовать. Например, Lexus NX.

Был в музее

Были на прошлых выходных в музее космонавтики в городе Хантсвилле, где раньше работал Вернер фон Браун. Всякого крутого было столько, что глаза разбегаются. Даже нехилый базальтовый булыжник с самой Луны. Вот этим булыжником бы по башке безграмотных придурков, верящих в “мы не были на Луне”, отоварить.

Боюсь только, что не поможет.

Больше всего меня впечатлил гиганский двигатель F1 от первой ступени Сатурна-5. Огромнейшая дура, в четыре моих роста. А сопло — из нержавеющей стали, с рёбрышками, собрано деликатнейшей аргоновой сваркой. И всё руками — 1960е же, блин. Сколько труда в этих двигателях — подумать жутко. А их в первой ступени пять штук. И ракет было множество.

В-общем, мне очень понравилось.