gpt4 book ai didi

algorithm - 超简单的伪随机数生成算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:41 25 4
gpt4 key购买 nike

我需要一种用于资源极其有限的微 Controller 的算法。将获得一个 16 位真随机种子,之后我需要周期性的 1 位随机值。限制将是大约 4-6 字节的 RAM 和 50 字节左右的程序内存。指令周期也很关键,处理器没有乘法指令或 native 浮点功能等(它是 PIC16F54)。由于程序简单,有时随机位样本之间的指令计数可能相同。唯一的优点是随机程度并不重要。

最佳答案

一个非常快速的谷歌搜索出现了 this 8 位 PRNG,仅需要 2 个字节的 RAM,并具有良好的随机性(请参阅 snigelen 的最后一篇文章)。

代码如下:

uint8_t rnd(void) {
static uint8_t s=0xaa,a=0;
s^=s<<3;
s^=s>>5;
s^=a++>>2;
return s;
}

通过设置sa 为高字节和低字节,以16 位数字作为种子。您可以通过逐渐移出 8 位结果(更长的周期)或只取低位(更快)来一次生成一位。

关于algorithm - 超简单的伪随机数生成算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com