首页 > 解决方案 > 如何为 LLVM 随机数生成器动态设置种子?

问题描述

根据 doc llvm random number generator,它说

种子应该通过传递 -rng-seed= 选项来设置。

所以这是一个静态参数?

我可以有类似 C 的东西srand(seed)吗?那是使用运行时值来初始化 LLVM 中的随机数生成器?

标签: llvmllvm-c++-api

解决方案


AFAIK,没有其他选择,-rng-seed如果你想设置种子,你需要使用该选项。种子值在编译单元中是全局静态的,因此它将始终被命令行选项覆盖。

也许您可以使用/dev/urandom上面的命令行选项模拟随机种子生成(特别是如果您将传递调用包装在脚本中):

head -100 /dev/urandom | cksum | awk '{print $1}'

这将允许您保持为调试目的生成相同的伪随机序列的灵活性,而无需重新编译。


推荐阅读