Chuibaka симулирует
Периодически я люблю делать небольшие и несложные симуляции разной всячины. Это не занимает много времени и в немалой степени меня развлекает. Некоторые идеи возникают сами собой, другие я подсматриваю у блогеров и хочу реализовать их самостоятельно.
На этот раз я сделал симуляцию «счастливого общества», представленного в виде цветных квадратиков.
Правила следующие: каждый квадратик хочет стать счастливым. Для него счастье — это быть в окружении таких же или хотя бы максимально близких по цвету. Черным лучше с черными, зеленым — с зелеными, голубым — с голубыми (всё как в жизни).
Каждый ход создаются случайные пары, и им предлагается поменяться местами. Если уровень счастья в результате повысится, то квадратики меняются. В данной симуляции квадратики добрые: они могут пожертвовать своим удобством ради повышения счастья соседа, но с условием, что общий уровень счастья вырастет. Например, если у одного уровень счастья вырастет на 10 очков, а другой станет на 9 очков несчастнее, то обмен всё равно произойдет.
Также есть настройка, определяющая, насколько далеко распространяется «притязательность» квадратиков. На первом уровне квадратики смотрят только на непосредственных соседей, на втором — на вторую линию соседства и так далее.
Я смоделировал всего 4 уровня, и уже можно заметить разницу.
Чем дальше квадратики смотрят, тем более плавные переходы и более крупные анклавы собираются, тем выше уровень счастья в обществе.
Можно сделать несколько выводов, но я их делать не буду.
Хотя один сделаю. В самом начале весь хаос очень быстро пропадает, уже начинает формироваться какая-то структура, но в идеальное состояние эта система будет приходить очень и очень долго. Так что принцип 80 на 20, к сожалению, в этом случае не работает. Если система стремится к идеалу – работает принцип 99.9999 на 0,0001. И это всего лишь в маленькой сферической модели в вакууме

Вот тут мне интересно стало, как сравнивались цвета? По какой модели (rgb, hsl/hsv и тд), или какой формулой? Т.е. как понять, цвет 0xFF0000 к какому цвету ближе, к 0x00FF00 или 0x0000FF ? Или в этом случае одинаково далеко?