zoukankan      html  css  js  c++  java
  • 浅谈隔板法

    浅谈隔板法

    本篇随笔简单讲解一下排列组合(计数原理)中的隔板法。


    一、隔板法的应用

    现在给你这么一个问题:

    对于N个相同的球,放到M个相同的篮子里,有多少种摆放方案。

    哇,看起来好麻烦的样子。

    首先第一个篮子,有摆1、2、3、...个的可能(先不讨论摆0个)

    第二个也有...

    第二个摆多少,还要和第一个摆剩下的有关

    哇!!这太狗了吧...

    但是完全不需要这样。

    于是我们介绍隔板法。


    二、隔板法的概念

    其实在我看来,隔板法诠释了:换个角度想问题,世界豁然开朗这一价值观。

    你看,对于刚刚的问题,我们可能很难处理。但是如果我们换一种思路呢?

    现在就是把N个球分堆嘛。那我就在这些球中间放几个板,不就起到了分开它们的效果了么!

    也就是说,现在有N个球,往里插入M-1个板子。

    N个球有N-1个空隙。

    所以就变成了(C_{n-1}^{m-1})。这就非常巧妙地解决了问题。

    这就是隔板法。

    也就是“换个角度想问题”。


    后记:

    如果可以有篮子不放,又是另外一种方法,详情见01隔板法

  • 相关阅读:
    聊一聊Flutter的setState()
    Flutter + Android 混合开发
    Flutter防止布局溢出
    Flutter获取远程数据 刷新UI界面
    Flutter日常笔记
    POJ 3299 Humidex
    POJ 1207 The 3n + 1 problem
    POJ 1005 I Think I Need a Houseboat
    POJ 1004 Financial Management
    POJ1012
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14011815.html
Copyright © 2011-2022 走看看