Vernal96: экспоненциальная зависимость - от количества цифр, которые нужно найти. У каждой следующей - от 1 до 8 вариантов. Но в судоку всего 81 цифра, так что это, конечно, не страшно при нынешних мощностях.
Vernal96: открою вам один секрет судоку: цифры не имеют значения. Если поменять местами все 9 с 1, головомка останется ровно так же однозначно решаемой. Так что при двух цифрах на поле можно вообще сгенерить ЛЮБУЮ готовую судоку и заменить соответствующие цифры.
Если они одинаковы, а в готовой - нет (или наоборот), то ее можно повернуть, отзеркалить, переставить тройки столбцов или строк - и получить нужное попадание.
Vernal96: ну, тогда, может быть, и имеет смысл перебор с возвратом.
Хотя я не представляю, зачем это может быть нужно. Время-то в таком переборе растет по экспоненте, а у вас исходных данных - чуть.
Быстрее может оказаться пятьсот раз подряд нагенерить дополнительных случайных цифр в надежде наткнуться на тот набор, который даст единственное решение.
Vernal96: судоку с парой цифр имеет несколько решений. Если вам нужно именно создавать их, то стоит идти от противного - создать непротиворечивый ответ и убирать из него цифры, пока решение получается однозначным.
Ну, или поискать в интернете исходники программ, которые это делают уже лет пятнадцать...
Александр К: Скажите это Яндекс.Недвижимости, например.
Они таки не стали городить универсальный парсер Ёкселя и ПоверПойнта.
В результате их система осталась и вменяемой, и гибкой.
Александр К: ну, я же не о том, чтобы тупо сконвертировать таблицы в другой формат. А о том, что сама идея подготовки данных в виде тупых таблиц, без семантики - это тупиковый путь и неизбежный оверхед.
Нужно устранить дистанцию между сбором данных и их обработкой - это именно она вынуждает городить костыли. Если же эти таблицы изначально будут заполняться на самом сайте, а не в офисном пакете - проблема исчезает в принципе.
Ну, а без этого IN в выборке с GROUP BY встречаются эти id с другими value? Есть подозрение, что дело именно в группировке. Может быть, стоит разбить на подзапросы - и группировать уже готовое сведение.
Вообще-то аккуратнее сделать юзерские страницы с префиксом /user/, а не делать исключения для всех прочих. Если сайт будет развиваться, он будет весь состоять из исключений, как русский язык. В то время, как юзерская страничка - вполне однозначная абстракция, которую логично держать по совершенно однозначному пути.
Вообще, это не очень хороший совет. Особенно - если ставите не себе. Можно поиметь очень увлекательное расследование причин нигде не обсуждавшихся глюков. Оно вам надо?
Вообще-то человек, разбирающийся в плюсах, method() = 0 поймет совершенно на автомате, а вот над method() abstract зависнет и собьется с рабочего ритма.
Так что за подобные дефайны из команд выгоняют без объяснений, а тех, кого жалко выгнать - просто больно бьют по рукам до вразумления.
РНР, может быть, и пофиг. Но если потом вдруг часть логики захочется вынести в AJAX или вовсе JS, то у сайта на cp1251 камасутра с кодировками практически гарантирована.
Сижу в офисе. Дорога от дома - 15 минут пешком. Не курю. Обедаю за полчаса. Отдельный кабинет, особенно с коллегами трещать не приходится.
Дресс-кода - и того нет.
Что же меня все время отвлекает от реальной работы?!