Рубрика «алгоритм» - 11

Введение

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

Доброго времени суток, Хабровчане!
В последнее время проблемы века стали очень популярными. Ими интересуется каждый себя уважающий математик. Сегодня Вашему вниманию хочу представить одну из проблем века, а именно — Проблема четырех красок и ее решение.

Проблема четырёх красок предложенна в 1852 году Фрэнсисом Гутри

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

Стоит отметить две необходимые характеристики этой карты:

  • Граница между любыми двумя областями является непрерывной линией.
  • Каждая область является односвязной.

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

image

Единственным принятым доказательством, является выведенное из идей Альфреда Кэмпе в 1880 году (его изначальное доказательство увидело свет в 1879 году[1]), что любую карту можно раскрасить в 5 цветов.

Почти сорок лет назад, в 1976 году, в Иллинойском университете, Кеннет Аппель и Вольфганг Хакен предоставили доказательство. В качестве доказателства послужила компьютерная симуляция, которая перебирала все возможные конфигурации карт и выявила минимальное количество цветов равных четырем. Алгоритм симуляции пытались многократно упростить, чтобы проверить доказательство, но к сожелению, безуспешно. Эти события вызвали сомнения у многих математиков, тем более, что описание симуляции занимало аж 741 страницу.
Читать полностью »

Для решения одной, как я считаю, амбициозной задачи, связанной с проведением футбольного турнира, мне необходимо было использовать процедуру формирования соревновательных пар, т.е. провести жеребьевку. Но произвести ее нужно не обычным «человеческим» способом, а автоматизировано. Поискав готовые решения аналогичной задачи, нашел только формирование корзин участников при наличии сеянных и несеянных команд (Пример), что меня не устроило и не решало поставленной задачи. В итоге проанализировав процедуру обычной однокруговой жеребьевки, сформировал следующий алгоритм и условия:
Входные условия жеребьевки:

  1. Имеется N команд – участников.
  2. Каждая команда за первый круг сыграет N-1 матчей.
  3. Команда N ни в каком из туров не может сыграть сама с собой.
  4. В каждом туре соперники образуют уникальные, не повторяющиеся ранее пары.
  5. Если в каком-то из туров команда N играет с командой M, то соответственно в этом же туре команда M играет с командой N.

Сопоставив процесс формирования случайных пар соперников процедуре заполнения двумерного массива DrawTable[i, j] случайными величинами, получил следующее (язык C#, .Net 4.0):
Читать полностью »

Иерархический поиск пути
Для разработки небольшой компьютерной игры зачастую применяются базовые алгоритмы поиска пути (алгоритм Дейкстры, А*), которых вполне достаточно для игрового поля не слишком больших размеров. Однако как же решить задачу о поиске пути на громадных игровых пространствах в играх жанра RTS или RPG? Ведь в виду значительного потребления памяти и ресурсов процессора базовые алгоритмы не подходят. О решении этой проблемы (а также нескольких других) и пойдет речь дальше в статье.
Читать полностью »

Симуляция жизни в системе Darwinbots. II. Симуляция и простейший бот
Приветствую вас еще раз, дорогие читатели!
Эта статья выкладывается в разгар сессии, так что я могу пропасть из комментариев.

1. Первое знакомство

2. Симуляция и простейший бот

Сегодня разберёмся с настройками симуляции и посмотрим на простейшего бота (или робота, как вам будет удобно). Нет, я не буду досконально рассматривать интерфейс программы – это будет вашим домашним заданием:-) И да, само понятие «генетический алгоритм» четко расписано в Википедии, поэтому опустим это объяснение.
Читать полностью »

Сказал как-то раз Евклид, что параллельные линии не пересекаются. И назвал он это пятым постулатом. Жалко, что не вторым.

В этой статье я бы хотел перейти от сферических котов Шредингера в резонаторах Гельмгольца к чему-то более практичному, тем более, что Хабр интересуют физические реализации и применение квантовых компьютеров.

Тут я решил рассказать про составные системы и описать алгоритм Дойча.

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

Привет!
Симуляция жизни в системе Darwinbots. Часть первая
Недавно сдал курсовую работу по генетическим алгоритмам в программе Darwinbots и решил, что это будет интересно сообществу. Тем более, что в данный момент сообщество проекта довольно мало. Статьи будут наполовину переводом документации, а наполовину своими исследованиями программы.
Читать полностью »

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

До цикла

while ($codecount < $deco_len) {

все более менее понятно и довольно просто.
Все символы преобразовываются в свои десятичные представления Юникода, передаются посимвольно в массив $decoded, вначале ставим «xn--», затем ставим все символы ascii по порядку исключая все не ascii и в конце добавляем "-". И все это в том случае если наши символы имеют интернациональные символы. Я не рассматриваю все дополнительные проверки, т.к. подразумевается, что мы вне всяких сомнений рассматирваем строку, где хотя бы один из символов не входит в ascii, соответственно все, что у нас есть для кодирования строки описано выше.

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

Так как я работаю в картографическом сервисе, то недавно я сделал для себя открытие, что все координаты в Китае смещенны по секретному алгоритму. Я собрал немного интересных историй и информации об этом факте.

GPS и карты: смещённые координаты в Китае
Есть только граница Китая в этом мире © heremaps.cn

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

Данная короткая заметка будет полезна людям занимающимся автоматизацией инженерных систем(ИС) зданий и сооружений. Я заметил, что на сайте есть люди знающие о компании «Болид» и ее интегрированной системах охраны – «Орион». Но буквально совсем недавно я узнал. Что ИСО «Орион» это не их единственная разработка. Оказывается товарищи из славного города Королёва разработали свою SCADA и контроллер для автоматизации ИС здания. О них вам в вкратце и хотел бы рассказать в данной заметке.Читать полностью »


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