zoukankan      html  css  js  c++  java
  • 插板法

    https://baijiahao.baidu.com/s?id=1583148539639670534&wfr=spider&for=pc(文章原出处)

    三道题,诠释“插板法”精髓。(核心是可以将求n个数和为m的方案数转化为m+n个物体分成n堆,每堆至少一个的问题,从而使用插板法)

    【1】、10个相同的糖果,分给3个孩子A、B、C,每个孩子至少一个,有多少种不同的分法?

    【2】、10个相同的糖果,分给3个孩子A、B、C,有多少种不同的分法?

    【3】、10个相同的糖果,分给3个孩子A、B、C,每个孩子至少2个,有多少种不同的分法?

    【4】、10个相同的糖果,分给3个孩子A、B、C,A至少一个,B至少2个,C可以没有,有多少种不同的分法?

    ======先思考再看答案哦=========

    【答案在此】

    插板法的应用主要在于,相同元素,非空分组。

    通俗点讲就是一些相同的东西,进行分组,每组至少为1个的情况。

    【1】、10个糖果9个空,分成三组插两块板,第一块板有9中插法,第二块板有8种插法,第一第二块板没有顺序要求,所以共有9×8÷(2×1)=36(种)分法。

    【2】、与第一题不同,这里没有限制孩子获得的数量,意味着有些孩子可以分到0个。那么这时候就不能直接用插板法了,必须转化成每个孩子至少得到1个。怎么转化呢?

    很简单,分这10个糖果之前就给每个小朋友1个糖果,这样就保证分的时候每个小朋友至少分一个了,就可以用插板法了,只不过这时的题就变成了“10+3=13个相同的糖果,分给3个孩子A、B、C,每个孩子至少一个,有多少种不同的分法?”.

    13个糖果12个空,分成三组插两块板,第一块板有12中插法,第二块板有11种插法,第一第二块板没有顺序要求,所以共有12×11÷(2×1)=66(种)分法。

    【3】.不能直接插板,将至少三个转化成至少一个,咋转化?先给每人1个,剩下的至少没人一个就搞定啦!题目变为“10-1×3=7个相同的糖果,分给3个孩子A、B、C,每个孩子至少一个,有多少种不同的分法?”

    7个糖果6个空,分成三组插两块板,第一块板有6中插法,第二块板有5种插法,第一第二块板没有顺序要求,所以共有6×5÷(2×1)=15(种)分法。

    【4】、此题综合了这几类题型,还是转化:A满足不用管;B至少2个,需要先分掉1个;C可以不分,那就借一个给他。 10-1+1=10,题目变成第一小题了,答案还是36.

    【练一题】一个三位数,各位数字均不为0,且数字和是9,请问这样的数有多少个?(可以为0又怎样?)

  • 相关阅读:
    2020学习 04 python 爬取某政府网站信件
    2020学习03
    2020学习02
    阅读笔记--《一线架构师实践指南》--Pre-architecture阶段
    重构“信息领域热词分析”,实现六种质量属性战术
    pycharm错误:Error updating package list: connect timed out解决
    python连接mysql数据库——编码问题
    阅读笔记--《大型网站技术架构》—02架构
    python查询MySQL数据库的表以及所有字段
    python连接mysql数据库——版本问题
  • 原文地址:https://www.cnblogs.com/MekakuCityActor/p/8611427.html
Copyright © 2011-2022 走看看