经典算法题:排列组合-有放回地取不同颜色的小球

有6种不同颜色的球,分别记为1,2,3,4,5,6,每种球有无数个。现在取5个球,求在以下的条件下: 1、5种不同颜色, 2、4种不同颜色的球, 3、3种不同颜色的球, 4、2种不同颜色的球, 它们的概率。

解答:排列用C,组合用A。

既然题目说是无数个,就相当于有放回的取6个不同颜色的球

因此,如果任意取5个球,每取一个球都有6种可能,所有可能情况是6^5=7776,充当分母.

1. 5种颜色不相同:C65A55=720

首先6种颜色里面取出5种不同颜色,总共有C65种可能。然后再进行任意组合A55

2. 4种颜色不相同:C64C41A55/2!=3600

首先6种颜色里面取出4种不同颜色,总共有C64种可能。然后还剩1个球从这4种颜色里面选取C41。然后再进行任意排列组合A55。此时注意:5个球里面有2个球颜色是相同的,这两个相同颜色的球是不能进行排列的,它们无论谁在左边,谁在右边都只能能算一种情况,因此需要除以A22

3. 3种颜色不相同:C63[C31A55/(3!)+C32A55/(2!*2!)]=3000

首先6种颜色里面取出3种不同颜色,总共有C63种可能。然后还剩2个球从这3种颜色里面选取,需要分两种情况考虑:(1)剩下的2个球颜色相同,即从3种颜色里面选取1种颜色C31,此时5个球里面必然有3个球是同色的,它们排列组合也会有重复,需要除以A33;(2)剩下的2个球颜色不同,即从3种颜色里面选取2种颜色C32,此时5个球里面必然有两组2个相同颜色的球,它们排列组合也会有重复,需要除以A22*A22;

4. 2种颜色不相同:C62[C21A55/(4!)+C21A55/(3!*2!)]=450

首先6种颜色里面取出2种不同颜色,总共有C62种可能。然后还剩3个球从这2种颜色里面选取,需要分两种情况考虑:(1)剩下的3个球颜色相同,即从2种颜色里面选取1种颜色C21,此时5个球里面必然有4个球是同色的,它们排列组合也会有重复,需要除以A44;(2)剩下的2个球颜色相同+1个不同颜色,这种组合也只有两种可能记为C21,此时5个球里面必然有一组3个相同颜色的球和一组2个颜色相同的球,同理需要除以A33*A22.

5.1种颜色不相同:C61[A55/5!]=6 (比较简单,不用解释)

算完在草稿纸上验算一下有没有算漏掉:A5+A4+A3+A2+A1=7779=6^5,说明准确无误,
再算概率:
P5=A5/7776
P4=A4/7776 ......


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
k-means聚类算法是一种常用的无监督学习算法,用于将数据集划分为k个不同的簇。其参数包括k和max_iterations。 k代表聚类的数目,即要将数据集划分为多少个簇。在使用k-means算法之前,需要明确需要将数据划分为多少个簇。选择合适的簇数是一项重要任务,它直接影响到算法的性能和结果的准确性。根据实际问的要求和数据的特征,可以通过调参或者利用先验知识来确定k的值。常用的确定簇数的方法有手肘法、轮廓系数和gap statistic等。 max_iterations是算法的最大迭代次数。k-means算法通过迭代的方式不断优化簇中心的位置,以获得更好的聚类效果。每一次迭代中,算法会计每个样本点与各个簇中心的距离,将样本点划分到距离最近的簇中心所对应的簇中,并更新簇中心的位置。迭代直到达到最大迭代次数或者满足了早停条件,即簇中心的位置不再改变。 k-means算法的过程可以简述为以下几个步骤: 1. 随机选择k个样本作为初始的簇中心。 2. 计每个样本点与各个簇中心的距离,将样本点划分到距离最近的簇中心对应的簇中。 3. 更新簇中心的位置,取簇中所有样本点的均值作为新的簇中心。 4. 重复步骤2和3,直到达到最大迭代次数或者满足早停条件。 5. 返回最后的簇划分结果。 总之,k-means聚类算法通过定义k个簇中心并迭代优化簇中心的位置,将数据集划分为k个不同的簇。通过调整k和最大迭代次数,可以控制聚类的精细度和算法的运行时间。它是一种简单而高效的聚类算法,在各个领域都有广泛的应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值