其他分享
首页 > 其他分享> > c – 偏置随机数发生器的可能方法是什么?

c – 偏置随机数发生器的可能方法是什么?

作者:互联网

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

该程序有效,但99%的输出是垃圾,因为它没有观察英语的结构,我正在用x和z得到尽可能多的单词.

我可以选择偏置RNG,以便更频繁地使用普通字母.

我正在使用stl播种的rand().

解决方法:

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

>制作大型英文文本(语料库)中字母出现的直方图.你会得到500’e’,3’x’,1’q’,450’a’,200’b’之类的东西.
>将间隔划分为每个字母获得切片的范围,切片的长度是间隔中出现的数量. a得到[0-450],b [450,650],…,q [3500,3501].
>生成介于0和间隔总长度之间的随机数,并检查其落地位置. 450-650之内的任何数字都会给你一个b,但只有3500给你一个’q’.

标签:c,prng
来源: https://codeday.me/bug/20190726/1542204.html