哈希碰撞概率:从生日悖论到近似计算

2025-06-25
哈希碰撞概率:从生日悖论到近似计算

这篇文章深入探讨了哈希碰撞的概率问题。哈希函数将任意复杂输入映射到单个数字,但存在哈希碰撞(不同输入映射到相同数字)的风险。文章从生日悖论入手,解释了计算哈希碰撞概率的精确公式和三种近似方法:指数近似、简化近似和更简化近似。通过比较,指数近似在大多数情况下表现最佳,而其他两种方法更适合快速估算。文章还提供了支持近似方法的数学证明。

阅读更多
开发

Common Lisp 的实时编码图形编程:无需重启的Boids算法实现

2025-04-23
Common Lisp 的实时编码图形编程:无需重启的Boids算法实现

本文介绍了如何在 Common Lisp 中使用实时编码技术开发图形程序,以 Boids 算法为例。Common Lisp 强大的重新编译功能允许在程序运行时修改代码并立即生效,无需重启。作者使用 Sketch 图形框架,逐步实现了 Boids 算法,并展示了实时编码带来的高效开发体验。通过修改代码并实时查看效果,作者完成了 Boids 算法的核心部分,包括避让、凝聚和对齐三个规则,最终实现了一个可以跟随鼠标的 Boids 模拟。实时编码极大地提高了开发效率和互动性。

阅读更多

在生命游戏中寻找蒙娜丽莎

2024-05-17
在生命游戏中寻找蒙娜丽莎

本文探讨了如何使用SAT求解器在生命游戏中寻找能够演化成特定图像的状态。作者首先解释了生命游戏的规则,并说明了如何将黑白图像加载为生命状态。然后,作者详细介绍了如何构建布尔方程来表示目标状态的父状态必须满足的条件,并使用SAT求解器来寻找解决方案。作者还讨论了该方法的局限性,例如存在伊甸园状态,以及随着细胞数量的增加,问题的复杂性也会增加。最后,作者展示了一些实验结果,包括蒙娜丽莎、花朵、玛丽莲·梦露和史蒂夫·布西密等图像的父状态。

阅读更多