другая Игра вопроса о Жизни (бесконечная сетка)?

Я полагаю, что VC также поддерживает

#pragma message ("note to self")

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

No действительно, объем предупреждений быстро собирается вырасти, если Вы позволяете им, и Вы не будете в состоянии определить действительно важные (неинициализированные переменные, этот указатель, используемый в конструкторе...).

Вот почему я пытаюсь рассматривать предупреждения как ошибки: большую часть времени компилятор является правильным предупреждением меня, и если он не, я документирую его в коде и предварительно ожидаю

#pragma warning ( push )
#pragma warning ( 4191 : disable )
// violent code, properly documented
#pragma warning ( pop )

, я просто читаю , они имеют warning ( N : suppress ) прагма, также.

16
задан HostileFork 24 September 2011 в 07:14
поделиться

2 ответа

В этой ситуации можно представить живые узлы с некоторым типом разреженной матрицы. Например, если мы сохраняем список пар (LivingNode, Coordinate) вместо массива узлов , каждый из которых либо жив, либо мертв, мы просто меняем Координаты вместо увеличения размера массива. Таким образом, пространство, необходимое для этого, пропорционально количеству живых узлов .

Это решение не работает для состояний, в которых количество живых узлов постоянно увеличивается, но оно очень хорошо работает для планеров.

РЕДАКТИРОВАТЬ: Так что это было не в моей голове. Оказывается, В Википедии есть статья , в которой показано гораздо более продуманное решение. Ну что ж! :) Наслаждайтесь.

7
ответ дан 30 November 2019 в 23:00
поделиться

Википедия объясняет это . Основная идея заключается в том, что «Игра жизни» Конвея демонстрирует локальность, поскольку информация распространяется с медленной скоростью по сравнению с размером паттерна, а максимальная плотность заполненных ячеек составляет около 1/2 ячеек в любом регионе. (Больше убьет клетки из-за перенаселенности.)

Поскольку есть место, вы можете разделить поле на разные секции и смоделировать каждую секцию независимо. Если вы правильно выберете местность, вы часто будете видеть одни и те же закономерности. Вы можете смоделировать их развитие и сохранить результаты в поисковой таблице, чтобы не нужно было моделировать другие экземпляры одного и того же шаблона более одного раза. Объединение смежных паттернов в более крупные «мета паттерны» позволяет вам предварительно вычислить и их, и так далее.

6
ответ дан 30 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: