Рубрика «Занимательные задачки» - 18

The problem statement

I was surfing the Internet the other day and a rather curious thing caught my mind: the Mendocino motor. It’s an extremely low-friction bearing rotor: the original one had a glass cylinder hanging on two needles, but the modern ones use magnetic suspension. It’s a brushless engine: the rotor has solar batteries attached to it, which generate current for the coils wrapped around the rotor. The rotor spins in a fixed magnetic field, the solar batteries getting exposed to the light source one after the other. It’s a rather elegant solution that’s very possible to recreate at home.

Here’s the video that explains how it works (in Russian):

But this video had another curiosity even stronger than the engine itself. In the video description Dmitry Korzhevsky writes: “You CAN’T replace the side support with a magnet! Don’t ask me about this anymore!”

Читать полностью »

Решив попробовать свои силы на зарубежном рынке, я начал отправлять резюме в различные конторы. Даже не с целью найти работу, а просто для расширения кругозора. Выбор пал на вакансии «Java Developer». Промышленного опыта работы с языком у меня нет, только личный опыт, сертификаты с Oracle Certification Center, книги и.т.д. Честно признаться, на последнем месте работы за полтора года ничего кроме «форов» и «ифов» я не писал (но это совсем уже другая история) поэтому решил, почему бы собственно и нет.

Пропустив историю поиска и разговоров с работодателями, перейду к сути. Одна компания К из города Г написала, что заинтересованы в проведении собеседования со мной после того как я решу задачу.

После того как я решил и отправил им решение, К ответила, что после код ревью решили не рассматривать мою заявку более. Это был удар по моей самооценке. Я конечно понимаю, что язык новый, и вообще всякое бывает, но надеялся хотя бы на отзыв о моем решении. Плюс задача-то простая на самом деле… Надеюсь, вам будем интересна задача.
Читать полностью »

image

Теория ходов

Математика апокалипсиса: теория игр и карибский ядерный кризис - 2«Мы сыграли в гляделки, и, по-моему, противник моргнул», — сказал государственный секретарь США Дин Раск на пике кубинского ракетного кризиса в октябре 1962 года. Он имел в виду сигналы, которые подавал Советский Союз, желая разрешить самую опасную ядерную конфронтацию между двумя сверхдержавами, которую многие аналитики интерпретировали как классический пример игры в ядерного «цыплёнка» (на русском аналог этой игры называется «ястребы и голуби»).

Игра в «цыплёнка» обычно используется для моделирования конфликтов, в которых каждый из игроков взял курс на столкновение. Игроками могут быть водители, приближающиеся друг к другу на узкой дороге, каждый из который имеет выбор — свернуть, чтобы избежать столкновения, или не сворачивать. В рассказе «Бунтарь без причины», который позже был переделан в фильм с участием Джеймса Дина, водителями были два подростка, но они ехали не друг на друга, а к обрыву. Цель игры была в том, чтобы не нажать на тормоза первым и не превратиться таким образом в «цыплёнка», и в то же время не свалиться с обрыва.

Хотя с виду карибский ракетный кризис похож на игру в «цыплёнка», на самом деле он плохо моделируется этой игрой. Другая игра более точно описывает действия лидеров США и Советского Союза, но даже для этой игры стандартная теория игр не полностью описывает доступные им варианты выбора.

С другой стороны, воспроизводит или предсказывает прошлое действий лидеров «теория ходов» (theory of moves), основанная на теории игр, но радикально меняющая стандартные правила игры. Что ещё более важно, эта теория проливает свет на динамику игры, основываясь на предположении, что игроки думают не только о непосредственных последствиях их действий, но и об их влиянии на игру в будущем.
Читать полностью »

Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.

Речь в этой главе пойдёт о статистике, о погоде и даже о философии. Не пугайтесь, совсем чуть-чуть. Не более того, что можно использовать для tabletalk в приличном обществе.

Теория счастья. Статистика, как научный способ чего-либо не знать - 1

Читать полностью »

Доброе время суток, читатель. Возможно, вы уже читали мои предыдущие статьи, и знаете, что я занимаюсь написанием собственной ОС. Сегодня мы поговорим, и рассмотрим несложный и достаточно быстрый алгоритм для управления памятью — менеджер памяти — критически важная часть ОС, ведь быстрая, надежная и нерастратная работа с памятью залог хорошей ОС.
Искал я несложные и адекватные идеи для менеджера и в рунете, и на англоязычных сайтах — всё никак не мог найти никаких хороших статей про адекватный, работающий не за O(N) аллокатор. Что же, сегодня мы рассмотрим более хорошую идею для менеджера памяти, продолжение помещаю под кат.
Читать полностью »

image

Вы просто сидите за своим столом, занимаясь своими делами, пытаясь выполнить какую-то работу. Затем, как это неизбежно происходит, вы сталкиваетесь с незначительным препятствием: ваш код выдает загадочное сообщение об ошибке.

«Нет проблем», как вы думаете. Это не ваше первое родео. Таким образом, вы копируете и вставляете дословно сообщение об ошибке в Google и смотрите, что вы получаете.

Неудача.

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

И вот начинается творческий процесс поиска в Google. Вы пробуете несколько комбинаций ошибки + контекст, в котором вы ее используете. Вы пытаетесь указать название используемой вами библиотеки. Вы знаете, что становитесь ближе…
Читать полностью »

Привет, Мир!

Август 2018

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

Как я марс спасал или небольшой квест на питоне - 1

Поэтому в этой статье речь пойдет о том, как я играл решал этот квест.

Читать полностью »

Эй, фулстеки, давайте тренировать навыки. Предлагаю разминать извилины, как мне кажется, это интересно делать используя иную, непривычную, парадигму. Большинство разработчиков имеют развитой скилл алгоритмизации — задача превращается в кирпичики, которые нужно соединить, продумать последовательность ходов, которая приводит к желаемому заключению.
Вот тут, неделю назад, был упомянут Пролог, хотелось бы ответить, что язык Пролог подходит для решения задачек. Я уже затрагивал эту тему, и приводил несколько доступных мне решений случайных задач с сайта с заданиями на алгоритмы, хотелось бы показать, что любое сложное решение доступно изложению на декларативном языке, да и работать оно может не медленнее (ну-у, может, заметно не очень медленнее).
Взяться за представления следующей задачки долго не получалось, и вот уже получено первое решение, демонстрирую задачу и узнаю, на сколько оно сильно медленно.
Пролог интересен тем, что можно сотворить дедуктивную программу, которая показывает множество решений и может даже ограничивать его, но не дает способ перебора,
алгоритм будет выработан решателем интерпретатором.
Так вот, задача такова:

  1. Trapping Rain Water II
    Given an m x n matrix of positive integers representing the height of each unit cell in a 2D elevation map, compute the volume of water it is able to trap after raining.
    Note:
    Both m and n are less than 110. The height of each unit cell is greater than 0 and is less than 20,000.
    Example:
    image
    Given the following 3x6 height map:
    [
    [1,4,3,1,3,2],
    [3,2,1,3,2,4],
    [2,3,3,2,3,1]
    ]
    Return 4.

Читать полностью »

Полит-электротехника. Моделирование социально-политических процессов электрическими цепями - 1

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

Попробуем провести заимствование и посмотреть на политические процессы «глазами» и законами электротехники, а затем применить для моделирования политических процессов известные симуляторы электрических схем. Будущие «Закон Ома / Киргофа для цифровой политической цепи» — будут отличаться от своих прототипов собственной метамоделью, интерпретирующей законы общества в соответствующие законы природы, которые существуют объективно, т.е. независимо от представлений человека о них.

С политикой пока всё иначе: даже древнегреческий этап становления " науки о политике" — не пройден (начальный этап оцифровки политики).

Полит-электротехника — одно из направлений цифровизации политики, когда на помощь имитационному моделированию социально-политических процессов приходит схемотехника, т.е. использование обычных визуальных симуляторов электрических цепей при моделировании социально-политических процессов (событий, кризисов, катастроф).

Подход продемонстрирован на упрощенной модели общества потребления, а в качестве симулятора электронных схем использован falstad.
Читать полностью »

Привет. Этот пост — поздравление с наступающим Новым годом.

Тут не будет попыток пошутить, подвести итоги-2018 или пожелать всем сразу всего нужного, а будет открытка-загадка про технологии. Вот она.

$ ls -l -home-avitotech-new_year - 1

Мы спрятали здесь 48 самых разных технологий, языков программирования, инструментов, фреймворков, которые применяются в разработке и поддержке веб-сервисов. Предлагаем вам их отгадать. Для этого под катом есть эта же картинка в большом разрешении и подсказки.
Сувениры тоже есть.

Enjoy!

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js