Простая задачка. Как определить все возможные анаграммы для слова (слово подается на вход пользователем)?
Например:
апельсин -- спаниель
пасечник -- песчаник, песчинка
Может быть воспользоваться народной мудростью: Если не знаешь как решить задачу, то отсортируй входные данные.
Каждому слову ставим в соответствие слово из этих же букв но в алфавитном порядке. Например мама-аамм. В словаре в котором мы ищем анаграммы делаем аналогичную процедуру.
Применять его следует не к самому целому числу. Вместо этого, нужно создать строку из единиц, где количество единиц соответствует самому числу и уже к этой строке применить регулярное выражение. Если совпадения нет — число простое.
Так как же оно работает? Выглядит как настоящая головоломка, но на самом деле все просто. Проигнорируйте его часть до символа |, поскольку она предназначена просто для выяснения, является ли строка совсем пустой или состоит из одной единицы.
Подвыражение (11+?) совпадает со строками вроде 11, 111, и т.д… Часть \1+ будет искать далее по строке совпадения с результатами поиска первого подвыражения. В первый раз совпадение произойдет по строке «11» и потом поиск строки «11» будет произведен снова, а затем снова до конца строки. Если поиск завершится успешно, число не является простым. Почему? Потому, что будет доказано, что длина строки делится на 2 и, соответственно, само число тоже делится на два. Если совпадения не произойдет, движок регулярных выражений начнет искать строку «111» и ее повторения (таким образом реализуя дальше решето Эратосфена — прим. пер). Если первое подвыражение становится достаточно длинным (n/2) и совпадений по-прежнему не будет обнаружено, число будет являться простым.
Почему? Код совершает вычисления во время компиляции между прочим.
Ну наверно точнее сказать, что во время компиляции компилятор заполняет дыры в коде с темплейтами, а также вычисляет константы.
Будет там не 6,5, а переменные, и он ничего предвычислять не будет.
Вот хорошая задачка для нейросетей. Тот алгоритм, про который идет речь в статье, мне кажется неправильным. Они через цвета ищут кожу. А если это боди-арт? Надо анатомические части распозновать имхо, а потом уже искать на них трусы. Вот прототип кода
Vladimirovich написал(а):
как отличить голую девушку от одетой
Визуально или тактильно?
По аналогии с известным алгоритмом про кошку и кота (споймать и отпустить, если побежал - кот, если побежала - кошка), так и тут- алго_ритмически...
(Я хоть и пенсионер, но остальные органы чувств, кроме упомянутых с учетом интуиции со счетов нельзя сбрасывать). З павагай к алгоритмическому мышлению, учитывающему освещенность, влажность, расстояние, циклы и т.п.
В смысле найти алгоритм, который позволяет обойти всю доску начиная с любого поля.
Ну надо наверно граф сформировать где ребра - ходы коня между полями, и искать Гамильтонов путь.
Задача в теории графов шибко известная, так что должны быть алгоритмы лучшие, чем я придумаю за 5 мин
Ну Гамильтонов путь искать задача неблагодарная (обычно).
Ничего, сейчас компы мощные
Если честно, то я не помню алгоритмов небрутфорсовых для этого, хотя оный еще у Эйлера был.
Вроде самый логичный по человечьи, разбить доску на 4 четверти. Отработать ходы на доске 4х4 а потом связать.
Воспоминание о предложенной когда-то мне задаче послужило для меня недавно поводом к некоторым тонким изысканиям, в которых обыкновенный анализ, как кажется, не имеет никакого применения… Я нашел, наконец, ясный способ находить сколько угодно решений (число их, однако, не бесконечно), не делая проб
Сразу вспомнил, как когда-то в школе на т.н. математической неделе, кажется в физмат классе дружно решали все задачку, как обойти все поля конем, начиная с левого нижнего угла и заканчивая правым верхним, пока не пришел отсутствовавший ученик, кажется перворазрядник и не сказал: не пыжтесь, не найдете.
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать......
Сразу вспомнил, как когда-то в школе на т.н. математической неделе, кажется в физмат классе дружно решали все задачку, как обойти все поля конем, начиная с левого нижнего угла и заканчивая правым верхним, пока не пришел отсутствовавший ученик, кажется перворазрядник и не сказал: не пыжтесь, не найдете.
Интересно, а откуда перворазрядник знал ответ?
Для решения задачи не надо быть шахматистом, надо просто знать правила (конь ходит буквой Г) и не быть дальтоником.