有人可以在C中发布您知道帮助的链接,以了解在C中创建用户定义的随机数生成器。我缺乏关于随机数生成器如何工作的基本概念。提供逻辑也有帮助。
答案 0 :(得分:1)
作为伪随机数生成器的起点,请尝试查看linear feedback shift registers
这是c:
中4位LFSR的简单实现char lfsr(char unshifted)
{
char ret = 0;
if( ( unshifted & 0x01 ) ^ ( ( unshifted & 0x02 ) >> 1) )
{
ret = (unshifted >> 1);
ret = (ret | 0x08);
}
else
{
ret = (unshifted >> 1);
}
return ret;
}
因为寄存器具有有限数量的可能状态,所以它最终必须进入重复周期。但是,具有良好选择反馈功能的LFSR可以产生一系列比特,这些比特看起来是随机的,并且周期很长。