Как у меня могут быть случайные движения в моей модели клеточного автомата? Например, если элементов в ячейке намного больше, чем две или более соседних ячеек, я бы хотел случайным образом выбрать несколько соседей, чтобы дать некоторые элементы. Я перепробовал все коды, которые мне приходили в голову, но моя проблема в том, что в Mathematica я должен быть уверен, что один и тот же элемент живет из клетки и переходит в другую. Я думал об этом, используя условия, но я не уверен, как это сделать. Может кто-нибудь, пожалуйста, помогите мне?
Редактировать: код, который я использовал до сих пор
Мой настоящий код очень сложен, поэтому я постараюсь рассказать вам, что я сделал с более простым клеточным автоматом. Я хотел преуспеть в движениях в районе Мур. Каждая клетка в моем клеточном автомате имеет более одного человека (или ни одного). Я хочу делать случайные движения между моими клетками. Я не мог этого сделать, поэтому я попробовал следующий код, и в своем сотовом автомате я использовал его, как вы можете видеть ниже.
w[i_, j_] :=
If[(i - 4) > j, -1, If[(i - 4) == j, 0, If[(j - 4) > i, 1, 0]]];
dogs[p, p1, p2,p3,p4,p5,p6,p7,p8]:=newp &[
newp = w[p, p1] + w[p, p2] + w[p, p3] + w[p, p4] + w[p, p5] +
w[p, p6] + w[p, p7] + w[p, p8]]
Этот код выполняет движения, но это не совсем то, что я хочу, потому что если в ячейке 0 индивидуумов и все 5 ее соседей, то в конце у нее 8 и 4 соседей, но я этого не хочу, Я не хочу, чтобы в камере с меньшим количеством людей было больше, чем у ее соседей. Я хочу, чтобы у всех них были близкие ценности и все еще были движения. Я не знаю, как это сделать в Mathematica.