|
我想使用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(); } } |
STM32F407VGT6 开发板Beak at address "0x0" with no debug information our outside
BootLoader 与 DFU 模式的区别
调度器原子变量相关问题
运行到 WRITE_REG (FLASH->OPTKEYR, FLASH_OPTKEY1)跳转 HardFaultHandler
STM32F417IG 单端外部时钟旁路HSE Bypass问题
STM32L4A6 SDMMC 无法使用 1.8V IO 驱动 microSD 卡
STM32L4P5xx 系统内 Bootloader:RAM3 能否用作栈指针内存?
在 STM32CubeIDE 中生成 ioc 配置文件
CAN 总线多节点环境下进行固件升级
在 Bootloader 运行期间保持 GPIO 引脚电平状态不变
微信公众号
手机版
你可以使用带RNG外设的随机数发生器,不要使用C语言的Rand函数,它是伪随机数。
其实我一直想的是,这玩意儿为啥就不能做成和printf一样的重定向,将C语言的rand函数重定向到rng外设中。
试试先开启片内RTC,然后用当前的秒数做随机数的“种子”,这样随机数就会更“随机”了。
需要先提供随机数种子