HeadlinesBriefing favicon HeadlinesBriefing.com

Windows XP 用户图片选择算法详解

Hacker News •
×

Windows XP 通过 GetTickCount() 初始化种子,使用 RtlRandomEx 函数从默认图片目录随机选择初始用户图片。该算法采用一次遍历的 reservoir sampling 方法(k=1),以避免多次文件系统调用并处理执行期间的目录变化。它遍历文件,以 1/count 的概率选择每个文件,确保均匀随机性。为防止大型目录出现性能问题,设置了 100 张图片的安全限制。Raymond Chen,一位长期的 Windows 工程师和《The Old New Thing》的作者,解释了该方法的效率和正确性,指出其优于双遍历方法,并基于递归概率论。