矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: girlexplorer

10台相同收音机全部分给5人,每人数量不限,可以0台。共有多少种分法?

[复制链接]
     
发表于 2023-12-28 12:29:21 | 显示全部楼层
我偷懒,去问GPT了。
GPT的答案.jpg

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2023-12-28 12:46:13 | 显示全部楼层
dabfxz 发表于 2023-12-28 12:29
我偷懒,去问GPT了。

文心一言的回答:

我们有10台相同的收音机,需要分给5个人。每个人可以分到0台或者多台,没有数量限制。
我们要找出有多少种不同的分法。
假设第一个人分到 a1 台,第二个人分到 a2 台,以此类推,第五个人分到 a5 台。

因为收音机是相同的,所以我们不需要考虑收音机的顺序。
这个问题实际上是一个组合问题,也就是将10个相同的物品分成5组的问题。
用数学公式表示,这就是一个组合公式:C(n+k-1, k-1),其中 n 是物品数量,k 是组数。

在这个问题中,n=10, k=5。
所以我们需要计算 C(10+5-1, 5-1) = C(14, 4)。
计算结果为:C(14, 4) = 1001
所以,将10台相同的收音机分给5个人,共有 1001 种不同的分法。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2023-12-28 12:48:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-12-28 13:13:01 | 显示全部楼层
AI这么厉害了?
题目稍改一下,看看AI能否得出正确答案:
20台相同收音机全部分给5人,每人至少2台。共有多少种分法?
回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 14:40:12 | 显示全部楼层
假如我们人类自始至终也没能发现  数学里的排列、组合、二项式定理等规律
但是却有了现代化计算机
请用 枚举穷尽  的办法程序计算出答案     该怎么写代码 ?

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 14:41:36 | 显示全部楼层
ChatGPT: gpt-3.5-turbo
20台相同收音机全部分给5人,每人至少2台。共有多少种分法?
这是一个组合问题,可以使用组合公式来求解。

假设5个人分别为A、B、C、D、E。我们可以先将20台收音机分成5组,然后再考虾将这5组分给5个人的情况。

首先,将20台收音机分成5组,可以看作是将20个球(收音机)放入5个盒子(每个人的收音机数量),则有:
C(20+5-1, 5-1) = C(24, 4) = 10,626 种分法。

然后考虑将5组收音机分给5个人的情况。每组至少2台,即假设每组为a、b、c、d、e台收音机,则有:
C(20-2*5+5-1, 5-1) = C(10, 4) = 210 种分法。

所以,总共有10,626 * 210 = 2,231,260 种分法。



Regenerate

模型:
gpt-3.5-turbo

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2023-12-28 14:52:11 | 显示全部楼层
girlexplorer 发表于 2023-12-28 13:13
AI这么厉害了?
题目稍改一下,看看AI能否得出正确答案:
20台相同收音机全部分给5人,每人至少2台。共有 ...

它能给出答案。不知道我们咋去验证答案的正确性

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 15:18:05 | 显示全部楼层
本帖最后由 bg1trk 于 2023-12-28 19:22 编辑
崂山清茶 发表于 2023-12-28 14:40
假如我们人类自始至终也没能发现  数学里的排列、组合、二项式定理等规律
但是却有了现代化计算机
请用  ...



假设是5个人分10台(n=10)收音机,每人可以是0-10台,可以用5个循环嵌套:

5个循环遍历所有人手持收音机0-10台的所有组合,排除收音机总数不足10台的组合,剩余的组合数自加,返回符合要求的组合数。
int radio(int n)
{  
    int sum = 0;  
    int value = 0;  

    for (int i = 0; i < n; i++)
     {  
        for (int j = 0; j < n; j++)
          {  
            for (int k = 0; k < n; k++)
              {  
                for (int l = 0; l < n; l++)
                 {  
                    for (int m = 0; m < n; m++)
                    {  
                       value = i + j + k + l + m;
                       if value == 10
                           (sum ++; ) // 在最内层累加  
                    }  
                }  
            }  
        }  
    }  
    return sum;  
}  

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 15:38:41 | 显示全部楼层
bg1trk 发表于 2023-12-28 15:18
假设是5个人分10台(n=10)收音机,每人可以是0-10台,可以用5个循环嵌套:

5个循环遍历所有人手持 ...

我没有实际验证 或者 分析 你的代码对不对

但是,仅凭直觉  第六感    一眼望去      第一印象是: 你的代码一定有问题

为什么呢,我认为若是不用排列 组合    仅凭原始的罗列穷尽       代码不会这么简单   
=======================================================
当然我的直觉和第六感   也有时候会犯错误,一般它不诓骗我自己。

且待我认真阅读你的代码,证实  或者  证伪结论  哈

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 15:57:33 | 显示全部楼层
本帖最后由 bg1trk 于 2023-12-28 19:23 编辑
崂山清茶 发表于 2023-12-28 15:38
我没有实际验证 或者 分析 你的代码对不对

但是,仅凭直觉  第六感    一眼望去      第一印象是: 你 ...



也不一定对,逻辑是遍历所有人手持收音机0-10台的所有可能性,挑出所有人手中的收音机总数量为10的组合,再累加次数。

大概流程是:
第一次循环,手持收音机数为0、0、0、0、0,不符合要求,摒弃。
第二次循环,手持收音机数为0、0、0、0、1,不符合要求,摒弃。
.....
第十次循环,手持收音机数为0、0、0、0、10,符合要求,+1。


第10*1+1次循环,手持收音机数为0、0、0、1、0,不符合要求,摒弃。
第10*1+2次循环,手持收音机数为0、0、0、1、1,不符合要求,摒弃。
......
第10*1+9次循环,手持收音机数为0、0、0、1、9,符合要求,+1。
第10*1+10次循环,手持收音机数为0、0、0、1、10,不符合要求,摒弃。


第10*2+1次循环,手持收音机数为0、0、0、2、0,不符合要求,摒弃。
第10*2+2次循环,手持收音机数为0、0、0、2、1,不符合要求,摒弃。
......
第10*2+8次循环,手持收音机数为0、0、0、2、8,符合要求,+1。
第10*2+9次循环,手持收音机数为0、0、0、2、9,不符合要求,摒弃。
第10*2+10次循环,手持收音机数为0、0、0、2、10,不符合要求,摒弃。


5个循环嵌套执行完毕,就挑出了所有组合中手持收音机数为10的组合并累加出现的次数,返回累加值。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 16:24:39 | 显示全部楼层
bg1trk 发表于 2023-12-28 15:57
也不一定对,逻辑是遍历所有人手持收音机0-10台的所有可能性,挑出所有人手中的收音机总数量为10的组合 ...

这回看懂了    原来您的思路竟然是这样的高效率    佩服   佩服。

对啊,这样的思路编写:    代码结构清晰   简单
把累加统计的麻烦事都交给机器管理了

高!  实在是高!


评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2023-12-28 17:44:26 来自手机 | 显示全部楼层
girlexplorer 发表于 2023-12-28 13:13
AI这么厉害了?
题目稍改一下,看看AI能否得出正确答案:
20台相同收音机全部分给5人,每人至少2台。共有 ...

干不过AI的,早有人试过了。高考数理化AI全能考满分。AI考语文最差,但也能超过平均考生。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 18:43:28 | 显示全部楼层
bg1trk 发表于 2023-12-28 15:18
假设是5个人分10台(n=10)收音机,每人可以是0-10台,可以用5个循环嵌套:

5个循环遍历所有人手持 ...

C语言不够方便,可以用Matlab写吗?

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 18:55:37 | 显示全部楼层
注意了,有新情况啊
这是GPT的答案:

10台相同收音机全部分给5人,每人数量不限,可以0台。共有多少种分法?能不能写出用Matlab解题的程序呢?
总共有1024种分法,可以通过Matlab来解决这个问题。下面是一个用Matlab解决这个问题的简单程序:

matlab
Copy code
function count = divideRadios()

count = 0;
% 循环遍历所有可能的分法
for person1 = 0:10
    for person2 = 0:10
        for person3 = 0:10
            for person4 = 0:10
                for person5 = 0:10
                    % 检查总数是否等于10
                    if person1 + person2 + person3 + person4 + person5 == 10
                        count = count + 1;
                    end
                end
            end
        end
    end
end

disp(['总共有', num2str(count), '种分法']);
运行这个程序,会得到总共有1024种分法的结果。

评分

2

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2023-12-28 19:26:54 | 显示全部楼层
崂山清茶 发表于 2023-12-28 16:24
这回看懂了    原来您的思路竟然是这样的高效率    佩服   佩服。

对啊,这样的思路编写:    代码结 ...


哪啊,遍历所有可能的组合并逐个判断是最笨的办法,也没仔细考虑到底对不对。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-27 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表