gpt4 book ai didi

c - C中迷宫生成算法中随机性的微妙缺乏

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:02 24 4
gpt4 key购买 nike

这涉及到我只能推测是某人用于生成随机迷宫的代码中的缺陷。 The code有点长,但其中大部分是注释掉的选项和/或不特别关注随机化。

我从链接 dllu 得到了 2001x2001 迷宫并保存为 png here .由此,我创建了 this .为了得到蓝色图案,我开始从迷宫的左下角开始填充死胡同。根据他使用的回溯算法,那是迷宫开始生成的点:所以如果你沿着由此产生的死胡同的踪迹前进,你就可以系统地填满迷宫那一侧的所有死胡同。换句话说,中央蓝色 block 表示从左下角开始的总可访问区域,直到 2678 x 1086 的唯一边界像素。

但是有一些立即异常的东西,因为蓝色的“分形”似乎在重复。事实上,by overlaying one part of the fractal, rotated and mirrored,你可以看到形状完全对应。此叠加层的另一个异常将一个大陆的一部分映射到另一个大陆上,but strangely only a sliver of the landmass this time .显然,这些并不是唯一的自动对应。

但除了死胡同的形状之外,当你放大时,墙壁的实际图案会重复。最奇怪的是,重复并不准确,但可能只有 50-60% 的墙壁对应。区域的缩放和对比样本:

Bright regions indicate isomorphism, dark regions indicate lack of isomorphism

长话短说,代码中是什么导致了这种模糊的随机性缺乏?

最佳答案

标准库函数 rand 的实现通常很糟糕,而您的代码正在执行 rand()%4 这会加剧问题,因为糟糕的实现往往甚至 较低位的随机性较少。尝试用不同的随机数生成器替换 rand

关于c - C中迷宫生成算法中随机性的微妙缺乏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29224196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com