Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Langton'中的JVM堆大小错误;蚂蚁_Java_Jvm - Fatal编程技术网

Java Langton'中的JVM堆大小错误;蚂蚁

Java Langton'中的JVM堆大小错误;蚂蚁,java,jvm,Java,Jvm,我想做一只兰顿蚂蚁(http://en.wikipedia.org/wiki/Langton我最初想到的是一个简单的实现,只有两种颜色,因此是一个布尔网格,或者是一个布尔2D数组 这里似乎存在一个问题-网格需要在运行时构建-即,用户输入网格长度的值 这意味着我不能接受超过特定值的网格值,因为它会在Java堆上抛出内存不足错误 我最多能做的典型网格是(30000*300000) 我在考虑如何绕过这个问题,使网格至少达到2^32*2^32 有人能提供一些建议来即兴修改算法吗?或者任何其他优化 虽然我

我想做一只兰顿蚂蚁(http://en.wikipedia.org/wiki/Langton我最初想到的是一个简单的实现,只有两种颜色,因此是一个布尔网格,或者是一个布尔2D数组

这里似乎存在一个问题-网格需要在运行时构建-即,用户输入网格长度的值

这意味着我不能接受超过特定值的网格值,因为它会在Java堆上抛出内存不足错误

我最多能做的典型网格是(30000*300000)

我在考虑如何绕过这个问题,使网格至少达到2^32*2^32

有人能提供一些建议来即兴修改算法吗?或者任何其他优化

虽然我的问题只针对一个特定的问题……但我想,解决这个问题的策略可能与许多此类问题相匹配


谢谢

您不需要为此在内存中分配和保存矩阵。您只能在节点列表中维护已访问的位置。节点将具有如下信息:
x
y
坐标(来自虚拟矩阵)和
颜色。
这样,你的蚂蚁只需要知道她在虚拟矩阵中的位置(
x
y
),然后根据蚂蚁所在节点的颜色计算出需要遵循的方向