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

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

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

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

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

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

2,3,3,6

2 * 3 * 3 + 6 = 24

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

1, 3, 4, 6

6 / (1 — 34) = 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е же, блин. Сколь­ко тру­да в этих дви­га­те­лях — поду­мать жут­ко. А их в пер­вой сту­пе­ни пять штук. И ракет было мно­же­ство.

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