Lobsters | 原文链接 | 2026-09-11 收录

Windows XP 用什么算法挑你的初始头像?

来源: devblogs.microsoft.com — 2026-09-09

概述

Raymond Chen 回答了「Windows XP 首次创建账户时如何随机挑头像」这个问题:随机源是 RtlRandomEx,种子来自当时的 GetTickCount()。算法是单趟随机选择——遍历默认头像目录时,对第 n 个候选以 1/n 的概率替换当前胜出者,这实际上是 k=1 的蓄水池抽样特例。相比「先数一遍总数、再随机取第 n 个」的两趟做法,单趟实现既减少了文件系统调用,也不会因为目录内容在运行中变化而出错。代码最后还有一道保险:采样满 100 张图就停止,避免有人在默认头像目录里塞进一百万张图导致病态行为。

核心要点

金句

这个算法的巧妙之处在于:在 n 个候选中,最后一项被选中的概率是 1/n。
返回 Lobsters 首页