模式返回伪随机数生成器
Pattern returning pseudo random number generator
编辑:
由于很多人的回答不知道我在问什么,我改写了这个问题。
extern unsigned short lfsr();
int foo[65536];
for (int i = 0; i < 65536; i++)
foo[lfsr()] = 1;
// every element of foo has been set to 1.
我想要lfsr()
的源代码,它返回一个伪随机 16 位值,0 到 65535。如果调用 65536 次,它将只返回一次从 0 到 65535 的每个数字,没有重复。如果再次执行此操作,它将返回相同的序列。不是一个很好的随机数生成器,但它有其用途。
我曾经在1984年左右从Dobbs博士的计算机健美操和正畸杂志中获得过这方面的代码。
这似乎与噪音发生器非常相似,但例外是循环重复并且不适用于音频。在 48 kHz 的不到 1.5 秒内渲染相同的 64K 16 位 PCM 样本会明显重复,而我从未从 16 位噪声发生器那里听说过这一点。
注意: 随机播放方法在 1984 年是行不通的,因为数组需要 128K,这将是 Apple][ 或类似计算机上可用内存的两倍多。
答:感谢Jesper Juhl和Jim Mischel将其识别为LFSR,线性反馈移位寄存器以及在哪里可以找到原始文章。
很抱歉原始问题措辞不佳,感谢您的时间。
我相信您正在寻找的是线性反馈移位寄存器。它可以具有您似乎想要的属性,即以看似随机的顺序返回完整序列,而无需重复该范围的元素。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 制作具有平均值的随机数生成器
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 尝试在 c++ 中创建随机数生成器并收到错误
- 存储并重新加载随机数生成器状态
- 作为随机数生成器的争用条件
- 播种随机数生成器以使用分叉的好方法是什么?
- 随机数生成器的性能因平台而异
- 随机数生成器的种子和状态有什么区别?
- RcppShark 随机森林示例引发有关随机数生成器的异常
- C++多个实例的随机数生成器组种子中增强
- C++随机数生成器仅生成 0 - C++ 11
- GSL+OMP:C++中的线程安全随机数生成器
- 贪吃蛇游戏 - 食物瓷砖的随机数生成器
- 随机数生成器在 C++ 用于 skipList.
- RSA 加密和解密期间的随机数生成器要求
- 如何使用 cpp 设置随机数生成器的语法?
- 模式返回伪随机数生成器
- 返回相同值 (C++) 的随机数生成器
- C++随机数生成器,不是随机的,但总是返回相同的数字