骰子的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:18:33
骰子一共有六个面,那么每个面向上的几率是一样的六分之一,如果用电脑做一个掷骰子的程序,怎么做到每个面的概率是一样的?因为六分之一等于0.1666667,如果每个都是这个值的话,那么六个一共是1.0000002,超过了1,而如果按0.1666666算的话,六个面是0.9999996,又比一小了。怎么处理这个问题?
我的想法是分7种情况...如果掷出那0.几的概率之后再重新投掷...不知道对不对...谁能解释一下...另外...电脑精确到小数点之后几位?

我一般是1-5都用0.1666667,6的概率是1-5*0.1666667,这样保证总概率是1,误差其实很小的,完全可以忽略。
你这个方法在要求极度精确的系统中是可行的。
不同电脑、不同语言精确到小数点后位数不同的,要具体查一下,高级语言应该都有几十甚至上百位的,也可以自己修改double的内存格式

其实可以不用这么麻烦,你只要随即生成一个数字,然后用他对6取余数再加1就好了