scholar_vit: (knot)
scholar_vit ([personal profile] scholar_vit) wrote2016-11-26 09:58 am
Entry tags:

Программистское: Махатма Ганди и ядерный апокалипсис

Прочитал интересную статью о баге в игре Civilization. В первой версии этой игры, если среди AI был Махатма Ганди и игра доходила до поздней стадии (с атомными бомбами), то Индия устраивала ядерный апокалипсис.

Причина оказалась следующая. У каждого AI был задан уровень агрессии, на который отвели один байт. У непротивленца Ганди этот уровень был равен единице. На поздней стадии игры цивилизации переходили к демократии, и при этом уровень агрессии понижался на два пункта. Но так как переменная была unsigned, попытка вычесть 2 из 1 давала 256-1=255. После чего гиперагрессивный Ганди взрывал к чертовой бабушке планету.

Баг нашли и исправили, но по традиции во многих версиях игры Ганди в определенных ситуациях (например, при поражении на переговорах) сходит с ума и начинает кидаться атомными бомбами. Этакое пасхальное яйцо для старых игроков.

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

[identity profile] 3mer.livejournal.com 2016-11-26 03:15 pm (UTC)(link)
Ну, да. Есть же генетичечкие алгоритмы оптимизации, которые играют со случайными числами.
Да и вся эволюция на случайной изменчивости.
Так что случайное не случайно.
Это хитрый план )

[identity profile] kray-zemli.livejournal.com 2016-11-26 05:14 pm (UTC)(link)
Нет ли здесь ошибки в наших моделях? Любой сложный процесс выглядит случайным при наблюдении со стороны.

[identity profile] 3mer.livejournal.com 2016-11-27 01:06 pm (UTC)(link)
на самом деле наши в общем модели случайны.
Моделей и теоретиков тьма.
И решений для одной и той же проблемы тьма.
Исключение электростатика - там одно единственное решение, как ни решай.