我们有一把枪,可以射出不同颜色的小画球。我们想计算按特定顺序射出一定数量的特定颜色的小球的概率。

在开始射击之前,将小球混合起来,使每个小球都有相同的概率被选中射击。每次射击后都要重复这个动作。

例如,枪里总共有18个球。9个黄色,4个红色和5个蓝色。就像我们下面的这几组。

我们想知道这组球(balls_set)出现以下连续4次射击事件的概率:

但是下面这个事件,对于同样的球_集来说,5次投篮的这个事件是不可能的:

这里的新是GN,GN意味着绿色。在上面给出的集合中没有绿色的球。

你将得到一个无序的、具有不同颜色的球的集合和一个期望的事件。balls_set有颜色名称的全称(第一个字母为大写字母),是一个数组。事件也是一个数组,但有相应的颜色缩写(见下面的表格)。你应该将所需事件的概率输出为一个不可还原的分数,其分子和分母是一个数组,[num den](num和den应该是同素数)。

而上述情况下,当概率为0时,该函数将输出一个带有 "不可能 "字样的数组。

你应该记住,概率非常低、非常接近0的事件是不可能的,但概率等于0的事件是不可能的。 下表显示了对应的缩写和所有可能的球的颜色,可用于该卡塔。

词典ABBREVIATIONS(在Ruby中为$ABBREVIATIONS)已经为你预装,以加快你的解决方案的创建。随机测试的特点。

球的长度(球的总量)在20和100000之间 根据球的总量决定事件的数量 在测试的例子中,有更多的案例。 该枪有数量可观的各色子弹。