zoukankan      html  css  js  c++  java
  • 普通母函数的理解


    title: 普通母函数的理解
    tags: [acm,母函数]

    • 问题?

      有1克的砝码3枚、2克的砝码2枚、3克的砝码4枚 ,能称出哪几种重量?每种重量各有几种可能方案?

      解决这个问题之前先看一个简单的问题,,,,,

      有四个位置,每个位置只能放一个0或者换一个1,问一共能组成多少种不同的排列?

      这个问题很简单每个位置有2中选择,并且有四个位置那么就是2*2*2*2=24;但是其中的2是怎么来的呢?每个位置要么选择0或者选择1,0是一种选择,1是另一种选择,那么就是(1+1)*(1+1)*(1+1)*(1+1)=24,

      上面的问题和这个是不是有点相似呢,

      1克的砝码有三枚,可以选择1个,2个或者3个或者0个,对应的质量可选的有 1、2、3、0

      2克的砝码有两枚,可以选择1个,2个或者0个,对应的质量可选的有 2、4、0

      3克的砝码有三枚,可以选择1个,2个或者3个或者0个,对应的质量可选的有 3、6、9、0

      设x代表砝码 (这里的x并没有实际意义) x^i 代表目前所选了质量为i的砝码的组合

      对于1克的砝码可选的质量 有个表达:(x^0 + x^1 + x^2 + x^3 )

      对于2克的砝码可选的质量 有个表达:(x^0 + x^2 + x^4 )

      对于3克的砝码可选的质量 有个表达:(x^0 + x^3 + x^6 + x^9 )

      然后把每种质量的砝码的选择方案相乘: (x^0 + x^1 + x^2 + x^3 )*(x^0 + x^2 + x^4 )*(x^0 + x^3 + x^6 + x^9 )=(a1xb1+a2xb2+...+anx^bn) 最终的表达式的实际含义:a1X^b1 选择b1质量的方案有a1种,选择b2质量的方案有a2种,选择b3质量的方案有a3种。这个最终的表达式是我们需要的,我们可以从这个表达式中找出我们选择某种质量的方案数。

      那么重点来了,如何用代码展开这种表达式并保存下来。。。。不难发现这个表达式中对我们有用信息只有系数和次方数

      具体怎么用代码展开这个多项式请看找单词

  • 相关阅读:
    java.sql.SQLException: 数据大小超出此类型的最大值
    日志收集系统 ELK
    centos下mysql 数据库安装、调试
    Log4j应用
    使用webuploader实现大文件断点续传(前端部分)
    es6学习 -- 解构赋值
    es6学习 -- let和const
    关于禁止页面滚动的实践(禁止滚轮事件)
    匿名函数与闭包
    JS高级学习总结--面向对象
  • 原文地址:https://www.cnblogs.com/dccmmtop/p/6710384.html
Copyright © 2011-2022 走看看