Pull to refresh
87
Karma
0
Rating
Степан @TheHorse

User

Алгоритмы логики бота для игры «Сапёр»

На вскидку, мне кажется что объединять в такие небольшие группы — потеря информации. Группой должно быть множество связанных ячеек. 2 ячейки являются связанными если их соединяет открытая ячейка. ну и так далее. Потом, внутри группы делаем бэктрекинг, выделяем множество подходящих решений (подходящих под информацию с открытых клеток). Ищем ячейки которые являются минами или не минами сразу во всех подходящих множествах ну и собственно закрашиваем их.
Такой метод может помочь, когда нельзя сделать точный выбор из небольших групп. Ну и по прогнозам, должно работать достаточно быстро, даже если в группу будет входить 100 ячеек, хотя казалось бы возможных вариантов — 2^100.

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

Алгоритм генерации судоку

Я бы сложность конкретного экземпляра оценивал минимальной глубиной бэктрекинга (backtracking) необходимого для решения этого экземпляра. Ну и не опирался бы на то, что решение должно быть единственным. Зачем?

Я это к тому, что судоку может быть очень сложным с 30 открытыми ячейками а может быть и элементарным с тем-же количеством открытых ячеек.

Про кофе и про Web, или почему PHP — велосипед

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

Писать нужно тогда, когда есть о чем поведать, когда мысли структурированные и подкреплены чем-то более серьезным.

Про кофе и про Web, или почему PHP — велосипед

Прочитал, добровольно, полностью. Навеяло только одну мысль:

Макаревич:
И лишь только тот, Кому нечего сказать,
Громче всех кричит, Он громче всех кричит.

Три задачи для программистов, которым не нужна математика

Я увидел математику в преобразовании в двоичную систему исчисления. Математика не сложная, но все-же математика.

Три задачи для программистов, которым не нужна математика

> Но ведь это не так?!
Да именно так. Другие науки не являются дочерними по отношению к ней, но без нее они не могу существовать.

Три задачи для программистов, которым не нужна математика

Да, нормален.

Я увидел тут понимание двоичной системы исчисления, дискретную математику. Думаете если бы вы этого всего не знали, то-же самое бы написали?

Простое и очевидное решение. Но не оптимальное.

Три задачи для программистов, которым не нужна математика

Я пару раз видел как людям не хватало математики для пагинации в собственном убер движке/framework/CMS.

Три задачи для программистов, которым не нужна математика

2^30 ~= 1 000 000 000. Вложенный цикл — *30. Короче, на С за считанные секунды осилит.

А давайте я вам расскажу про градиенты!

А нормализация АE куда делась?

Отчет с финала Google Code-In, Калифорния

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

Мартовская Хабравстреча в Киеве

Думаю лучше в одном, тогда будет возможность услышать все.

В C++ единицей инкапсуляции является класс

Говоря о том, что было до strict private, есть 2 нюанса, которые говорят о том, что все-таки не модуль является единицей инкапсуляции:
1. Приватный метод класса можно вызвать из другого модуля (например, посредством перегрузки (override) метода с другой областью видимости)
2. Синтаксически и семантически свойства и методы инкапсулируются в класс.

В C++ единицей инкапсуляции является класс

Вопрос знатокам, что есть единицей инкапсуляции в Delphi? Если бы не то свойство, что приватные свойства класса можно дергать не только из экземпляров этого класса, но и из любого места модуля, в котором он определен, то можно было бы предположить, что единцей инкапсуляции является класс, но похоже что все-таки модуль, что странно, поскольку свойства и методы инапсулируются именно в класс.

unit Unit2;

interface

type
  TSomeClass = Class
  private
    x : integer;
  end;

var
  foo : TSomeClass;

implementation

initialization
  foo := TSomeClass.Create;
  foo.x := 10;
  foo.free;
end.

Delphi 7 спокойно компилирует этот код, и считает что в нем нет ошибок.

QMap vs. QHash: небольшой бенчмарк

Для реализации Hash-контейнеров на основе открытой адресации, количество коллизий не зависит от количества элементов.

Впрочем, 256 элементов — действительно несерьезно для бенчмарка контейнеров.

Десять вещей, которые я терпеть не могу в ООП

Давно мечтаю найти первоисточник того, что добавило абстракция в основные принципы ООП.

P. S. Про automated впервые слышу((

Десять вещей, которые я терпеть не могу в ООП

Нет. Инкапсуляция — объединение внутренностей внутри класса (таким образом, чтобы доступ к этим функциям лежал только через этот класс, и увидеть их можно было только в этом классе). А сокрытие данных — модификаторы доступа к данным (private, protected, public) и прочие механизмы, которые ограничивают доступ (в том числе видимость) к данным.

Десять вещей, которые я терпеть не могу в ООП

Да, если бы не упоминание Дейкстры, то дальше бы даже не читал… Просто слишком много про ООП говорят те, кому нечего сказать.

О высокой зарплате замолвите слово

Могут уволить за регулярные опоздания, например, вне зависимости от проф. навыков.

Information

Rating
Does not participate
Location
Уральск, Уральская обл., Россия
Date of birth
Registered
Activity