看了 2 楼,感觉楼主的问题是,如何把 x 面的均匀色子,变成 y 面的色子。 y>x,明显不可能。 y=x,不需要转换。 x%y==0,很简单。 x%y!=0,从我感觉上来讲,貌似不可能。把条件放宽一点,x 面的色子可以扔无数次,根据概率的加和和乘法原理,无论怎么组合,概率的分母都应该是 x 的 n 次方,x 的 n 次方%y 仍然!=0,所以貌似是无解的。
不信你试试用 3 面的色子,看看能不能产生 1/2 的概率。
qidizi
2018-01-05 16:42:11 +08:00
感谢各位围观,我补充一下, 这个算法的目的是解决这个问题:
奖品被设定成达到 n 人就开奖的形式; 贡献值大的人中奖机会大; 开奖方式够随机公平,能经得起“我们开奖方绝对无法做手脚”推论;
所以我想了上面的方案。
* 每人按先后顺序领号 * 每人的贡献值基数是 1,根据上面的编号做先后顺序,以贡献值为区间组合得到一个连续的区间 1~x,也就是贡献是 10 的人且在第一位,那它的得奖区间为 1~10 ; * 人数达到后,公示 1 天;大家可以拿上面信息存档; * 第三方 7 星彩每期的开球是随机的 0~9 的数字,7 个球,刚好解决随机公正问题,设这个组合数为 y * 最后我们和用户都可以拿到存档区间 x 根据 y 计算出中奖那个数,然后,看它在那个人的中奖区间, * 最后,拥有这个区间的用户得到这个奖品;