Python元胞自动机解决“扩散”模拟

2024-05-17 06:21:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个包含50行和列的嵌套列表(嵌套列表中有50个列表),在嵌套列表中有随机的“1”、“0”和“”。我希望在开始的时候,一个随机的“0”会变成“1”,而“1”会把其他的“0”变成1。另外,在时间步之后,我希望“1”将其周围的所有“0”转换为“1”。我在网上看到元胞自动机是解决这个问题的一种方法,但我不知道如何在不使用numpy的情况下做到这一点。在图中所示的这个例子中,TRUE用“1”表示,FALSE用“0”表示。load_bushfire返回“1”、“0”和“”的嵌套列表,它们是表示地图的像素。没有必要把地图形象化,因为我有一个代码。有什么建议吗? enter image description here


Tags: 方法numpyfalsetrue列表自动机元胞时间
1条回答
网友
1楼 · 发布于 2024-05-17 06:21:52

要迭代元素a[ i ],[ j]周围的所有像素,模式是a[i+k][j+l] for k in [-1, 0, 1] for l in [-1, 0, 1 ] if k or l我想你必须检查边界。在

对于特别复杂的规则,您可能需要两个嵌套列表(矩阵)来进行更公平的模拟。在每一步中,您将根据您拥有的任何规则,基于上一步计算新的嵌套列表。有关示例,请参见https://github.com/mwharrisjr/Game-of-Life。每个新步骤都处理一次。我个人认为你最好用三元逻辑。燃料,无燃料,火(蓝色、白色、红色)

相关问题 更多 >