首页 > 解决方案 > 计算 xorshift 的第 n 个数

问题描述

我知道 XorShift32 是一个随机函数,它返回一个介于 1 和 2^32-1 之间的值。

uint32_t xorshift32(uint32_t x)
{
    x ^= x << 13;
    x ^= x >> 17;
    x ^= x << 5;
    return x;
}

由于数字是重复的,所以我想知道如何找到特定数字从特定数字开始出现的时间(例如,从 1 开始,307599695 是第 5 个数字)。

有没有不使用for循环的方法?

标签: randomrandom-seed

解决方案


推荐阅读