- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在用完全确定性的 python 进行调度模拟。所以,当我有相同的输入和参数时,我总是得到相同的输出。
现在我想随机化模拟的初始启动状态并比较两个(或更多)不同模拟参数的输出。为了比较“相同的随机初始起始状态”,我想为 random.seed()
设置一个初始值,对于不同调度程序的所有比较,该值应该保持不变。此外,我想查看一个调度程序在不同初始状态下的行为,因此我必须更改 random.seed()
。当然,我必须为所有调度程序执行此操作。
现在我的问题是,种子对随机生成器的“随机性”有什么影响?例如,我选择 1 号种子还是 100 号种子有关系吗?而且因为我想为同一个调度程序使用不同的种子并将其与其他调度程序进行比较,我可以简单地使用例如种子 1 到 10 还是我的种子必须“更随机”?
为了澄清,我使用随机生成器在不同的核心上分配初始任务,并将输出与“我的最优(确定性)初始分配”进行比较。我想用我选择的种子获得广泛的不同分布。
最佳答案
尽管您选择的种子在理论上并不重要,但在实践中可能很重要。
random.seed(integer_seed)
如何避免这个问题,但如果两个 Mersenne Twister 状态只有一位不同,它们产生的两个序列将相互关联,需要 millions of numbers来消除这种相关性。许多其他 PRNG 也会出现类似的问题,尤其是线性 PRNG。为了降低相关伪随机数的风险,您可以使用 PRNG 算法,例如 SFC 和其他所谓的“基于计数器的”PRNG(Salmon 等人,“Parallel Random Numbers: As Easy as 1, 2, 3", 2011),支持伪随机数的独立“流”。 (但是请注意,PCG has a flawed notion of "streams"。)还有其他策略,我在“Seeding Multiple Processes”中对此进行了更多解释。另见 this question .
此外,如果您使用的是 NumPy(这是一个流行的用于科学工作的 Python 库),请注意 NumPy 1.17 引入了一个 new pseudorandom number generation system ;它使用所谓的位生成器,例如PCG,以及随机生成器,例如新的numpy.random.Generator
。这是 proposal to change the PRNG policy 的结果. NumPy 文档包含有关 seeding PRNGs in parallel 的详细信息.
关于python - 设置 random.seed() 以重新创建模拟行为和选择种子的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59263562/
2017 年 7 月 19 日更新 在这里找到解决方案:https://stackoverflow.com/a/10021912/5729266 如果您不想读到最后,请快速得出结论。 我之前的代码中随
golang 文档说 Seed, unlike the Rand.Seed method, is safe for concurrent use. rand.Seed 实际上是来自math/rand
我正在尝试重现我之前运行的模拟,以便在文本文件中记录当前日期时间的种子,然后使用记录的日期时间种子来获取与之前获得的相同的值 但是,我不确定为什么得出的值与我在之前的模拟中运行的值不相似。 这是我尝试
rake db:seed 每当您修改种子数据时,重新运行种子数据是否会删除现有种子数据并重新创建或仅添加新记录? 最佳答案 当您运行时 rake db:seed , db/seeds.rb 仅包含在
是否可以在 Laravel 5 中使用以下内容为相关表做种? php artisan db:seed 我有两张 table users id first name projects
我正在尝试为一组足球队和足球位置播种,奇怪的是,rails 根本没有这样做。 rake db:seed --trace ** Invoke db:seed (first_time) ** Execut
我正在寻找网络。我发现这个话题https://iamtrask.github.io/2015/07/12/basic-python-network/ 一切顺利,但我无法理解那部分: # seed ra
在Python的numpy库中,np.random.seed方法可以接受两种不同类型的参数:int和array_like[int] . 它们有什么区别?如:np.random.seed(2) 和np.
我正在使用 scikit-learn 和 numpy,我想设置全局种子,以便我的工作可重现。 我应该使用 numpy.random.seed 还是 random.seed? 从评论中的链接,我了解到它
出于某种原因,当我尝试通过 heroku 执行此操作时,我的 db:seed 无法正常工作。当我在本地执行时,它工作正常。 paul@paul-laptop:~/rails_projects/fogl
我正在尝试同步转换我的图像和 mask 标签,但随机增强以不同方式应用于两个生成器(当我将两个图像保存到一个目录时证明)。 我试过了 在我的库堆栈中播种所有生成器 禁用随机播放和多处理 确保图像和蒙版
我想在特定行之后结束set.seed()的范围,以便对其余代码进行真正的随机化处理。这是一个我想让set.seed()用于“ rnorm”(第4行)而不是“ nrow”(第9行)的示例 set.see
想知道你是否可以帮助我: 我有一个名为initializeAll的方法: public final void initializeAll() { //other stuff........ rand
我有一行代码使用高精度时钟的纳秒抓取来为 mersenne twister 伪随机数生成器播种。类似这样的事情: rng.seed(duration_cast(high_resolution_cloc
我正在浏览一些关于 ASP.NET MVC 的教程(here 和 here),并决定自己尝试一些东西。现在,我有三个表,Resume、Descriptions、SubDescriptions。这是三者
我正在使用 random.seed() 来尝试保持 random.sample() 与我从列表中采样更多值相同,并且在某些时候数字会发生变化......我认为那个seed() 函数的目的是保持数字相同
我正在研究中等规模的数据集,比如从具有 100,000 个观察值的大型数据集中采样的 9000 个观察值。 我可以使用以下 set.seed() 函数来保证每次都获得完全相同的子集吗? set.see
我在 Laravel 中有一个 Seeder public function run() { $user = App\Admin::create([ '
在确信学习和使用 Angular.js 后,我打算启动一个具体的 Web UI 应用程序,以便启动经验学习轮。 (该应用程序将是某种个人计划、待办事项列表、提醒、番茄工作法导向等等......) On
在启动程序之前,我多次看到 R 中的 set.seed 函数。我知道它基本上用于随机数生成。有什么具体需要设置吗? 最佳答案 需求是对可重现结果的可能渴望,例如,这可能来自尝试调试程序,或者当然来自尝
我是一名优秀的程序员,十分优秀!