各位数字之和为 17 的七位正整数有多少个?

前几天在 CSDN 提出一个问题:

各位数字之和为17的七位正整数有多少个?

编程枚举的结果是 67353 个。求如何以数学方法解答。
问题的链接
多数回答是借助 ChatGPT 等大模型工具生成的,没有任何帮助。
也有回答是借鉴动态规划算法的思路。机器算法用于手算,也不是我期待的数学方法。


长假里,终于找到一个数学方法,用组合数学的插板法来求解。


对于 m 个小球,有序分成 n 组,允许组为空,其分组方案数为:C(m+n-1,n-1)

即:m 个小球加上 n 个,成为 m+n 个,其中有 m+n-1 个间隔;在这些间隔中选择 n-1 个,插入隔板,将其分为有序的 n 组;每组拿去一个小球,得到所需分组方案。

组合计算的公式: C(a,b) = a! / b! / (a-b)!

所求即为 a 个元素中选择 b 个的组合数量。


第一步,计算不限组内球数的总方案数:

17 个小球分组方案的总数:C(17+7-1,7-1) = 100947;
0 在首位的情形,即:C(17+6-1,6-1) = 26334;
总方案数为:100947-26334 = 74613 个。

第二步,计算需要扣除的组内球数超过 9 的情形:

以某组中 10 个小球为例,其它组的小球总和为 17-10 = 7 个,分成 6 组;这个球数为 10 的组,可以放在 7 个不同的位置上;即:7C(7+6-1,6-1) = 7C(12,5);
同样需要扣除 0 在首位的情形,参照上述分析,这个球数为 10 的组可以放在 6 个不同的位置上;即:6C(7+5-1,5-1) = 6C(11,4);
得到需要扣减的分组内含 10 个小球的方案数为:7C(12,5)-6C(11,4) 个。
对应于组中不同的小球数 10~17 需要扣除的方案数分别为:
10:7C(12,5)-6C(11,4) = 3564;
11:7C(11,5)-6C(10,4) = 1974;
12:7C(10,5)-6C(9,4) = 1008;
13:7C(9,5)-6C(8,4) = 462;
14:7C(8,5)-6C(7,4) = 182;
15:7C(7,5)-6C(6,4) = 57;
16:7C(6,5)-6C(5,4) = 12;
17:7C(5,5)-6C(4,4) = 1;
得到总扣减方案数:3564+1974+1008+462+182+57+12+1 = 7260 个。

第三步,计算总方案数:

74613-7260 = 67353 个。

因此,各位数字之和为 17 的七位正整数有 67353 个。

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值