Чтобы экспериментировать, я (давно) реализовал Conway Game of Life (и я знаю этот связанный вопрос!).
Моя реализация работала, сохраняя 2 массива логических значений, представляющих "последнее состояние", и "состояние, которое обновляется" (2 массива меняются местами на каждой итерации). Хотя это достаточно быстро, я часто задавался вопросом, как оптимизировать это.
Одна из идей, например, заключалась бы в прекомпуте на итерации N зон, которые можно было бы изменить на итерации (N + 1) (так что если ячейка не принадлежит к такой зоне, ее даже не считать для модификации на итерации (N + 1)). Я знаю, что это очень расплывчато, и я никогда не занимался деталями...
Есть ли у вас какие-либо идеи (или опыт!) о том, как оптимизировать (для скорости) Итерации игры жизни?