假设我有一个非均匀的函数,可以生成 A 集合中的元素。我有一个集合 B,其中包含 A 集合中每个元素生成的概率。是否有办法使非均匀伪随机函数表现得像均匀伪随机函数。
假设我有一个非均匀的函数,可以生成 A 集合中的元素。我有一个集合 B,其中包含 A 集合中每个元素生成的概率。是否有办法使非均匀伪随机函数表现得像均匀伪随机函数。
让我建议一个简单的算法,您不需要知道选择A中每个元素(问题中的B集合)的概率。 我假设A中的每个元素都有已知的顺序(例如,每个元素都是一个数字)。
该算法分为两部分。 第一部分是生成无偏随机位的算法。 我们将其称为“RandomBit()”(Morina等人,2019)。
这可行的原因是从A中抽取的独立对在统计上是相同的(Montes Gutiérrez 2014,De Schuymer等人2003); 有关详细信息,请参阅我的有关随机性提取的说明附录。
下面是一个在[0,1]范围内生成均匀随机数的算法。你所要做的就是“并置足够多的随机二进制数字”(von Neumann 1951):加上RandomBit()/2 + RandomBit()/4 + RandomBit()/8 + ....
如果你的非均匀分布是正态分布,请参考Cross Validated上的以下问题,了解更多技巧:https://stats.stackexchange.com/questions/117689
参考文献: