其它·via @mubei

能在多个游戏引擎里挑大梁的随机数生成器,只有三行代码。 要不你再查一查,三行代码怎么可能撑得住? 是真的,连一次乘除法都…

能在多个游戏引擎里挑大梁的随机数生成器,只有三行代码。 要不你再查一查,三行代码怎么可能撑得住? 是真的,连一次乘除法都没用。 整段逻辑,全是底层的移位和异或。

怎么做到的? 2003年,数学家乔治·马萨利亚(George Marsaglia)设计了这个算法,取名异或移位(xorshift)。 原理极度纯粹。 用移位把数据位彻底打乱扩散,再用异或把信息原原本本保留下来。

没有查表,没有任何多余运算。 整套逻辑全在 CPU 寄存器里瞬间跑完。 但这么简单的结构,随机质量真能过关吗? 谁信?

拿去跑各种严苛的标准随机性测试,它全通过了。 不仅测不出破绽,速度还快到几乎没有开销。 后来,多个主流游戏引擎干脆直接把它收编成了默认算法。 三行代码,真的够了。

翻译视频 / X

相关 / RELATED

JSON

导出 / EXPORT

订阅 · SUBSCRIBE

每周一封独立、不受审查的科技与 AI 深度评论与信号,周一发出。

不追踪邮件打开与邮件链接点击,一键退订。 或用 RSS · 详情