使用给定函数查找新函数,该函数生成给定函数输出的两倍

时间:2018-08-11 07:05:14

标签: function probability probability-theory

给出一个以相等的概率生成1到6的数字的函数。通过对给定函数进行运算来找到一个函数,以便它以相等的概率产生从1到12的数字。

我的方法: 我正在维护一个计数变量。如果count是偶数,则我将0加到f()中将6加。但是,f()的调用次数不受限制,因此,我们不能使用count变量。

2 个答案:

答案 0 :(得分:0)

f 以等概率绘制从1到6的整数。现在,您要将其扩展为1到12之间的整数。 因此,引入 g ,它以相等的概率从0到1绘制一个整数。

  

(g \ times 6)+ f

     

应显示所需的行为。

答案 1 :(得分:0)

f6()是以相等的概率从1到6生成值的函数。 我们可以调用f6()两次,并将结果存储在两个单独的变量ab中。

现在,通过使用表达式(a + (b&1)*6),我们可以等概率生成1到12之间的数字。

说明:

ab的范围是1到6。因为f6()产生概率相同的数字。

(b&1)将分别根据b是偶数还是奇数返回01的可能性。

现在,如果b&10,则自(b&1)*6 = 0起,我们的范围是1到6。因此,结果只能是值1、2、3、4、5、6。

如果b&11,则结果只能是值为(b&1)*6 = 6的值7、8、9、10、11、12。