Folia
← 返回头版

Windows XP用户头像选择算法揭秘

Windows XP在初始账户创建时采用了特定的随机算法来为用户分配头像。1系统使用RtlRandomEx随机数生成器,并以GetTickCount()的当前值作为初始种子。1

在头像选择的具体实现上,Windows XP采用了单遍水库采样算法从默认图片目录中随机挑选。1这种算法的工作原理是:第n张图片被选中的概率为1/n,若未被选中则需从前n-1张图片中递归选择。1为了防止Default Pictures目录中存在大量文件时出现异常行为,代码最多采样100张图片。1

相比采用两遍计数的方法,单遍算法具有明显优势。1它能够减少文件系统调用次数,同时避免了代码运行期间目录文件数动态变化所带来的复杂性问题。1


评论