-1

给定一个生成 1 到 5 之间随机数的函数 F,我将如何使用 F 编写一个函数 G 来生成 1 到 7 之间的随机数?

G生成的每个数字的概率应该是相同的。

到目前为止,我已经尝试了 equation G=F + (5*(F/7)),虽然我不确定所有的概率都是一样的。

4

1 回答 1

0

伪代码:

function g()
    repeat
        // result will be equidistributed in 0..24
        result = (f()-1)*5 + (f()-1);
        // wait till we have something below 21, on average this happens 21 out of 25 times in the first pass
        if (result < 21): return 1 + (result % 7)
于 2013-02-20T09:33:40.233 回答