php 1-33个数字_选6个数加起来等于114_有多少组这样的数,想问一道数学题.1到11个数字里面加起来等于30的有几个组合.每次必须是5个数字相加,和值为30的有几个,算法说一下.1...

这篇博客展示了如何利用Python的itertools库来找出1到11之间不重复的5个数字组合,其和值分别为30和29的案例。博主通过遍历所有可能的组合并检查它们的和,找到了32种符合条件的组合,并列举了出来。文章强调了虽然可以进行一些分类讨论以减少计算,但全面的方法仍然是遍历所有组合。
摘要由CSDN通过智能技术生成

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2021/04/02 15:05:40

想问一道数学题.

1到11个数字里面

加起来等于30的有几个组合.

每次必须是5个数字相加,和值为30的有几个,算法说一下.

1--11这11个数字,每5个数字为一组,数字不重复,其和值必须等于30,请问共有多少种组合?

一共 32 种组合,我写代码遍历了一下.所有组合如下:

1 + 2 + 6 + 10 + 11 = 30

1 + 2 + 7 + 9 + 11 = 30

1 + 2 + 8 + 9 + 10 = 30

1 + 3 + 5 + 10 + 11 = 30

1 + 3 + 6 + 9 + 11 = 30

1 + 3 + 7 + 8 + 11 = 30

1 + 3 + 7 + 9 + 10 = 30

1 + 4 + 5 + 9 + 11 = 30

1 + 4 + 6 + 8 + 11 = 30

1 + 4 + 6 + 9 + 10 = 30

1 + 4 + 7 + 8 + 10 = 30

1 + 5 + 6 + 7 + 11 = 30

1 + 5 + 6 + 8 + 10 = 30

1 + 5 + 7 + 8 + 9 = 30

2 + 3 + 4 + 10 + 11 = 30

2 + 3 + 5 + 9 + 11 = 30

2 + 3 + 6 + 8 + 11 = 30

2 + 3 + 6 + 9 + 10 = 30

2 + 3 + 7 + 8 + 10 = 30

2 + 4 + 5 + 8 + 11 = 30

2 + 4 + 5 + 9 + 10 = 30

2 + 4 + 6 + 7 + 11 = 30

2 + 4 + 6 + 8 + 10 = 30

2 + 4 + 7 + 8 + 9 = 30

2 + 5 + 6 + 7 + 10 = 30

2 + 5 + 6 + 8 + 9 = 30

3 + 4 + 5 + 7 + 11 = 30

3 + 4 + 5 + 8 + 10 = 30

3 + 4 + 6 + 7 + 10 = 30

3 + 4 + 6 + 8 + 9 = 30

3 + 5 + 6 + 7 + 9 = 30

4 + 5 + 6 + 7 + 8 = 30

对于 N = 29,也一共有 32 种组合,所有组合如下:

1 + 2 + 5 + 10 + 11 = 29

1 + 2 + 6 + 9 + 11 = 29

1 + 2 + 7 + 8 + 11 = 29

1 + 2 + 7 + 9 + 10 = 29

1 + 3 + 4 + 10 + 11 = 29

1 + 3 + 5 + 9 + 11 = 29

1 + 3 + 6 + 8 + 11 = 29

1 + 3 + 6 + 9 + 10 = 29

1 + 3 + 7 + 8 + 10 = 29

1 + 4 + 5 + 8 + 11 = 29

1 + 4 + 5 + 9 + 10 = 29

1 + 4 + 6 + 7 + 11 = 29

1 + 4 + 6 + 8 + 10 = 29

1 + 4 + 7 + 8 + 9 = 29

1 + 5 + 6 + 7 + 10 = 29

1 + 5 + 6 + 8 + 9 = 29

2 + 3 + 4 + 9 + 11 = 29

2 + 3 + 5 + 8 + 11 = 29

2 + 3 + 5 + 9 + 10 = 29

2 + 3 + 6 + 7 + 11 = 29

2 + 3 + 6 + 8 + 10 = 29

2 + 3 + 7 + 8 + 9 = 29

2 + 4 + 5 + 7 + 11 = 29

2 + 4 + 5 + 8 + 10 = 29

2 + 4 + 6 + 7 + 10 = 29

2 + 4 + 6 + 8 + 9 = 29

2 + 5 + 6 + 7 + 9 = 29

3 + 4 + 5 + 6 + 11 = 29

3 + 4 + 5 + 7 + 10 = 29

3 + 4 + 5 + 8 + 9 = 29

3 + 4 + 6 + 7 + 9 = 29

3 + 5 + 6 + 7 + 8 = 29

目前我没找到啥不用遍历的好方法,做一些简单的分类讨论虽然能节省一点计算,但仍然需要比较多的枚举.

再问: 你是咋算的啊!

再答: 编勒个程。。。代码如下: from itertools import * a = range(1, 12) count = 0 N = 30 for x in combinations(a, 5): if sum(x) == N: print "%d + %d + %d + %d + %d = %d" % (x + (N,)) count += 1 count 用 python 编的,其实就是遍历了从 1 到 11 这些数中取 5 个数的所有组合,把每个组合加起来,如果是 30 就保留,不是 30 就扔掉。。。没啥技术含量的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值