如何用一个1-8随机数生成器制作一个1-7随机数生成器?


我不太懂编程 。但是我能给你一个思路
先在1-8之间随机生成一个 。如果生成的是1-7就输出 。如果生成8 。那就重新再来一次 。这样如果八个数字概率相等的话 。最后生成1-7的概率也是相等的 。大致如图

如何用一个1-8随机数生成器制作一个1-7随机数生成器?

文章插图
1-7七个数字的概率的概率就是1/8+1/64+1/512…=(1/8)(1-1/8?)/(7/8) 。当n趋近于∞时就等于1/7
其他观点:
比如用C来说 。可能没写规范啊 。大概意思就是这么回事
设2个对象
int a=rand(8);
int b=8;
然后用if else 。如果a=b就重新随机 。否则直接print直接输出就行了
其他观点:
【如何用一个1-8随机数生成器制作一个1-7随机数生成器?】rand(7)不行吗?非要rand(8)吗?

    推荐阅读