对于我目前参与的一个小组项目,我们必须模拟以下内容:取一个边长为n的正方形。在正方形上均匀分布一定数量的单位圆盘。找到所需的磁盘数量,直到有一个从正方形的左侧延伸到右侧的磁盘的连接组件。然后找到所需的磁盘数量,直到正方形完全被磁盘填满。
它没有明确说明,但我们假设这是在 Matlab 中完成的,因为我们在本课程的其他部分使用它。对于第一个问题,找到从左到右的路径,我编写了两种可行的方法。一个使用邻接表和 Matlab 中的图形工具来查找连接的节点。这种方法足够快,但是对于我们需要做的事情来说占用了太多的内存。另一种方法使用递归搜索算法,不存储邻接信息,但速度太慢。
当我们需要正方形的大小为n=1000和n=10 000时,问题就出现了。我们预测这将需要数千万圈或更多圈,我们根本看不到我们应该如何处理这个问题,因为任何邻接列表或矩阵都会大得离谱,而且不使用似乎需要大量的时间。任何想法和想法表示赞赏,谢谢