矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: girlexplorer

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

[复制链接]
     
发表于 2023-12-28 19:44:58 | 显示全部楼层
本帖最后由 bg1trk 于 2023-12-28 19:48 编辑
dabfxz 发表于 2023-12-28 18:43
C语言不够方便,可以用Matlab写吗?



楼下已经给出代码了,思路与上面用C写的一致,也是5个0-10的循环嵌套,最内层做判断,符合要求的就自加累计,循环结束后给出结果。

试着运行了一下,结果是1001种。

22222222222222222221.png

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

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

程序没毛病,但我在 MATLAB 上运行结果是 1001,

看来 AI 还是不牢靠啊

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:07:11 | 显示全部楼层
dabfxz 发表于 2023-12-28 14:41
ChatGPT: gpt-3.5-turbo
20台相同收音机全部分给5人,每人至少2台。共有多少种分法?
这是一个组合问题, ...

逻辑上不自洽:每人至少2台的分法,会比每人至少0台的还多?

不怀疑 AI 的创造力,但给 AI 查错挺蛋疼

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:08:56 | 显示全部楼层
haolele123 发表于 2023-12-28 14:52
它能给出答案。不知道我们咋去验证答案的正确性

至少目前看来,#21 楼的结论无法自洽

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:15:14 | 显示全部楼层
t3486784401 发表于 2023-12-28 19:59
程序没毛病,但我在 MATLAB 上运行结果是 1001,

看来 AI 还是不牢靠啊

是啊,我运行Matlab也是1001,可是GPT却说1024 。
不知道这是不是中国的GPT问题,如果有人能访问一下外面的GPT来比较就好了。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2023-12-28 20:25:18 来自手机 | 显示全部楼层
15楼可以接受,那些循环嵌套的还是算了,看的眼花

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:31:56 | 显示全部楼层
下面这个问题的结果就复杂了:
“20台相同收音机全部分给5人,每人至少2台。共有多少种分法?”
前面21楼的GPT答案是2,231,260 种分法。
再用Matlab算,是 1.5194e+03。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:32:11 | 显示全部楼层
dabfxz 发表于 2023-12-28 20:15
是啊,我运行Matlab也是1001,可是GPT却说1024 。
不知道这是不是中国的GPT问题,如果有人能访问一下外 ...

相当于一个算力很棒的计算器,但是算对的概率只有 99%.

这就是个短板,短时期内还需好监督。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:32:55 | 显示全部楼层
GPT给出的程序是:
function numOfWays = calculateWays(numRadios, numPeople)
    % 计算分发收音机的方法数量
    % 输入参数:
    %   numRadios - 收音机总数
    %   numPeople - 人数
    % 输出参数:
    %   numOfWays - 可能的分法数量
   
    if numRadios < numPeople * 2
        numOfWays = 0;
        return;
    end
   
    numOfWays = 1;  % 初始化为1,因为每个人至少有2台收音机
   
    for i = 1:numPeople-1
        numOfWays = numOfWays * (numRadios - i*2 - 1) / i;
    end
end

---------------------------------------
numRadios = 20;
numPeople = 5;
numOfWays = calculateWays(numRadios, numPeople);
disp(numOfWays);

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-28 20:36:26 | 显示全部楼层
dabfxz 发表于 2023-12-28 20:32
GPT给出的程序是:
function numOfWays = calculateWays(numRadios, numPeople)
    % 计算分发收音机的 ...

这就是给出 1.5194e+03 结果的那段程序? 最后 0.4 种方法?

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

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

大师怎么凑得这么准,还是 1001 种分法:

2023-12-28_205251.png

  1. long QueryCnt2(void)
  2. {
  3.         // 20台相同收音机全部分给5人,每人至少2台。共有多少种分法?
  4.         long cnt= 0;
  5.         for(int a=2; a<=20; a++)
  6.         for(int b=2; b<=20; b++)
  7.         for(int c=2; c<=20; c++)
  8.         for(int d=2; d<=20; d++)
  9.         for(int e=2; e<=20; e++)
  10.         {
  11.                 if(a+b+c+d+e == 20)
  12.                         cnt++;
  13.         }
  14.         return cnt;
  15. }
复制代码

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-29 14:56:53 来自手机 | 显示全部楼层
俺用穷举的办法:
20台相同收音机每人至少2台,也是1001
每人最少1台的是 3876
每人最少0台的话多达 10626

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2023-12-29 15:56:12 来自手机 | 显示全部楼层
这题很矿坛。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2024-4-28 03:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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