|
我想使用rand () 函数产生随机数。但每次程序运行,生成的随机数都是相同的。 我调试下面这段代码时,变量 W 每次调试都按照完全一样的规律变化。 请问如何才能生成不依赖固定顺序的真随机数? / USER CODE BEGIN 0 / double uniform_rand() { return (double)rand() / ((double)RAND_MAX + 1); } / USER CODE END 0 / int main(void) { / USER CODE BEGIN 2 / srand(time(NULL)); / USER CODE END 2 / while (1) { W = uniform_rand(); } } |
中断服务程序抖动
STM32L562DK探索板——如何启用蓝牙功能?
自己写驱动深入学习与调用Hal库的取舍
关于最近学习C语言回调和钩子函数的想法,以及对HAL库回调函数的困惑
STM32 上同时跑 LWIP 的 TCP 与 UDP 连接
使用 HAL 库通过串口以 ASCII 形式发送整型数据
USB Host 外部中断按键失效
调用HAL_FLASH_OB_Unlock()直接进入 HardFaultHandler
STM32 增加 WiFi + 以太网的低成本方案
NUCLEO G474RE无法运行程序
微信公众号
手机版
你可以使用带RNG外设的随机数发生器,不要使用C语言的Rand函数,它是伪随机数。
其实我一直想的是,这玩意儿为啥就不能做成和printf一样的重定向,将C语言的rand函数重定向到rng外设中。
试试先开启片内RTC,然后用当前的秒数做随机数的“种子”,这样随机数就会更“随机”了。
需要先提供随机数种子