迷宫生成算法

2024-08-25

本文介绍了三种迷宫生成算法:Aldous Broder 算法、随机深度优先搜索算法和 Wilson 算法。Aldous Broder 算法简单易懂,但效率较低。随机深度优先搜索算法效率较高,但生成的迷宫倾向于有长走廊。Wilson 算法效率和生成效果都比较好,是较为理想的选择。文章还介绍了如何找到迷宫中距离最远的两个点作为起点和终点。

阅读更多
未分类

降低Python代码随机性的方法

2024-07-12

本文介绍了如何通过修改系统调用来降低Python代码的随机性。作者首先解释了Python中随机性的来源,即`os.urandom`和`random.randint`函数,并说明了如何使用`ptrace`系统调用来拦截和修改这些函数的行为。作者提供了一个名为`unrandom`的C程序,该程序可以作为跟踪器附加到Python进程,并在每次调用`getrandom`系统调用时返回零。这将导致`os.urandom`返回全零字节,并使`random.randint`生成确定性的随机数序列。

阅读更多
未分类 ptrace

Lisp 编译器优化

2024-06-01

本文介绍了作者为其 Lisp 编译器添加的一些优化,包括常量折叠与传播、死代码消除等,这些优化可以生成更小、运行速度更快的程序。文章详细介绍了这些优化的实现方法,以及如何通过 AST 变换来优化代码。此外,作者还分享了测试优化效果的经验,并计划在未来添加端到端测试套件。

阅读更多
未分类