gpt4 book ai didi

c++ - 偏置随机数生成器的可能方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:06:39 26 4
gpt4 key购买 nike

我构建了一个单词生成器,它选择一个长度,然后随机选择字母表中的字母来组成单词。

该程序可以运行,但 99% 的输出都是垃圾,因为它没有遵守英语的结构,我得到的带有 x 和 z 的单词和我得到的 e 一样多。

我有什么选择可以使 RNG 产生偏差,使其更频繁地使用普通字母。

我正在使用随时间播种的 STL 中的 rand()。

最佳答案

输出仍然是垃圾,因为偏向随机数生成器不足以构造正确的英语单词。但是偏置 rng 的一种方法是:

  1. 制作一个大英文文本(语料库)中字母出现的直方图。您会得到 500 个“e”、3 个“x”、1 个“q”、450 个“a”、200 个“b”等等。
  2. 将一个区间分成多个范围,每个字母都有一个切片,切片的长度是区间中出现的次数。 a 得到 [0-450],b [450,650],...,q [3500,3501]。
  3. 生成一个介于 0 和区间总长度之间的随机数,并检查它落在何处。 450-650 之间的任何数字都会给您一个 b,但只有 3500 给您一个“q”。

关于c++ - 偏置随机数生成器的可能方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870890/

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