【转】24位老人分三桌就餐问题(200分)

zzwu 2014-02-09 10:05:00
加精
退休那年,看到赵慈庚在 <数学通报> 提出一个未曾解决的问题:有24位老人,从76岁到99岁,每岁一人,他们分三桌就餐,每桌8人,要求各桌年龄的和相等,问有多少种分桌法?

当时我考虑过,试图解决,可是两次都失败了。后来再未考虑。今翻看旧日笔记,又想碰碰它,仍未能解决,现在提出来,希望大家来帮助。

【注】这个问题应属于算法问题,但现在在《专题开发》板块中已找不到《算法和数据结构》小块了,所以我只得将问题放在这里,因为原来《算法和数据结构》是和《图形图像》合在一起的,或许很多老手还忘不了这里...
...全文
20802 101 打赏 收藏 转发到动态 举报
写回复
用AI写文章
101 条回复
切换为时间正序
请发表友善的回复…
发表回复
周公挚友 2015-10-28
  • 打赏
  • 举报
回复
看到论坛里面有人发了这个励志的链接,赶紧来膜拜下,真心祝愿这位前辈爷爷身体健康,
暴风城卫兵 2015-07-27
  • 打赏
  • 举报
回复
五年开发,毫无头绪,惭愧惭愧
海逸_2018 2015-07-24
  • 打赏
  • 举报
回复
之乎者前来膜拜
  • 打赏
  • 举报
回复
学习了。高手真多啊 。
莫问初心 2015-04-10
  • 打赏
  • 举报
回复
知乎观光团前来学习 祝爷爷身体健康。我刚出生爷爷就不在了,说起来还是第一次喊人爷爷呢,莫名的伤感~
  • 打赏
  • 举报
回复
引用 18 楼 litaoye 的回复:
自己写了一个搜索的,发现结构跟FM的一模一样,除了变量名有些区别,竟然连函数名都叫Dfs,这要是贴出来真是跳进黄河洗不清呀。给大家解释一下FM程序中的maxassigned,就是保证只有前面的组已经被分配过至少1个元素,才分后面的组才能分。这样就不能一上来将1分至第2组,而后面的2只能分在1组或2组。如果2被分配到了2组,3才能分到3组,如果2分配到1组,3只能分到1组或2组,而不能分到3组。
嗯,刚开始我只想到先假设桌子不同,遍历一遍求出总的结果 再除以6得到桌子相同的结果,看完 maxassigned的使用,想了一下满足条件的结果出现且只出现一次成立,且消耗时间少很多。
netxuning 2015-04-06
  • 打赏
  • 举报
回复
向您学习,祝您身体健康
zhoujk 2014-03-13
  • 打赏
  • 举报
回复
如果按我在第三楼的思路,有12个数据,无序排列,应该的可能性是 12! = 479,001,600
zzwu 2014-03-10
  • 打赏
  • 举报
回复
此题通过计算机已算出了分桌方案数。但这个数是用什么公式表达的问题未给出答案,有兴趣的还可以继续考虑,此贴现在要结贴了。
绿色夹克衫 2014-03-07
  • 打赏
  • 举报
回复
那个解释有些问题,实际上是这样,24 23可以放在一起,如果24和23同时放到了第1组,那么22只能放到第1组或第2组,而不能直接放到第3组。
引用 90 楼 zzwu 的回复:
[quote=引用 88 楼 kuoshuang 的回复:] 这个说法有一点问题,“开始放数字”,开始的时候就如litaoye所说,24号数字只能放在第一个空位,而23号数字只能放在第二个空位,剩下的22个数字则是在三个空位中随便挑的。 再提供一个思路: 首先从24个数字中随机选8个,如果满足和为100,那么继续从16个数字中选出8个,如果满足100,则结果正确。这个复杂度是可以承受的。最后的结果是假设桌子不同的结果
不太明白,24号和23号必须放在两个桌子的话,会漏掉一些可能吧?23和24不能放在一起吗?[/quote] 你的说法有道利,参考我7楼的实际计算结果,前面有许多方案同时包含24和23.[/quote]
zzwu 2014-03-07
  • 打赏
  • 举报
回复
引用 88 楼 kuoshuang 的回复:
这个说法有一点问题,“开始放数字”,开始的时候就如litaoye所说,24号数字只能放在第一个空位,而23号数字只能放在第二个空位,剩下的22个数字则是在三个空位中随便挑的。 再提供一个思路: 首先从24个数字中随机选8个,如果满足和为100,那么继续从16个数字中选出8个,如果满足100,则结果正确。这个复杂度是可以承受的。最后的结果是假设桌子不同的结果
不太明白,24号和23号必须放在两个桌子的话,会漏掉一些可能吧?23和24不能放在一起吗?[/quote] 你的说法有道利,参考我7楼的实际计算结果,前面有许多方案同时包含24和23.
zzwu 2014-03-07
  • 打赏
  • 举报
回复
1-12分3组计算机计算如下:

又:18个数分组前面83楼有误,应按87楼提供的为准,应为4331种方案。
zzwu 2014-03-07
  • 打赏
  • 举报
回复
致74楼,你问: “我身边没有搞计算机相关技术的老学者,我非常想知道当年龄达到一定岁数的时候, 是否还有精力和兴趣去追逐新技术? 又会不会由于新技术淘汰了一些自己曾经喜爱的 老技术,使得自己对新技术产生抵触情绪? 还有还有最想问的,如果研究某个领域很多年, 相信一定会产生某种沉淀,您有没有一些独特的技术细节也好,思路也好,是只能依靠 岁月的堆积才能发现的? 即使去教学也不能掌握的? 我有时候经常思考自己的未来, 所以真的非常非常好奇! 希望得到您的解答!! 谢谢!” 我的状况是: 我曾追逐新技术,一个例子是编程语言和操作系统的不断更换,从DOS编程到Windows编程,从Fortran到Basic,再到C和Java、Pascal和Delphi,但我现在已没有精力去追逐新技术了。 抵触情绪经常要产生,而且也常常不想改变原有老技术,但必须克服这种惰性,否则就会被淘汰。 要靠岁月积累的事物很多,许多想法都要日日夜夜的思索才行。例如我编的MOL4D分子图形软件就是这样。从1984年已经开始,现在还在一点一滴地进行改进。教学是有帮助的,但新的东西教材上往往找不到,要靠自己思索出来。
zhanglixia9 2014-03-06
  • 打赏
  • 举报
回复
1-18,分3组计算机计算如下:(重发清晰一点的图)

zhanglixia9 2014-03-06
  • 打赏
  • 举报
回复
1-18,分3组计算机计算如下:18个数
zhanglixia9 2014-03-06
  • 打赏
  • 举报
回复
继续下去啊,等待看结果。
kuoshuang 2014-03-06
  • 打赏
  • 举报
回复
这个说法有一点问题,“开始放数字”,开始的时候就如litaoye所说,24号数字只能放在第一个空位,而23号数字只能放在第二个空位,剩下的22个数字则是在三个空位中随便挑的。 再提供一个思路: 首先从24个数字中随机选8个,如果满足和为100,那么继续从16个数字中选出8个,如果满足100,则结果正确。这个复杂度是可以承受的。最后的结果是假设桌子不同的结果。[/quote] 不太明白,24号和23号必须放在两个桌子的话,会漏掉一些可能吧?23和24不能放在一起吗?
zzwu 2014-03-05
  • 打赏
  • 举报
回复
结果是13921种分组方法。
zzwu 2014-03-05
  • 打赏
  • 举报
回复
18人分3组靠计算结果见下表:
zzwu 2014-03-05
  • 打赏
  • 举报
回复
引用 81 楼 devilzy2656 的回复:
m = num/2/3 fm = A(3,3)^m(第一个组合未固定顺序的总数) gd = A(3,3); 结果为: n=fm/gd=A(3,3)^m/A(3,3)=A(3,3)^(m-1) 带入公式: 1)num=6; m=6/2/3=1; fm=6^1; gd=6; n=6^0=1; 2)num=12; m=12/2/3=2; n=6^1=1; 3)num=18; m=18/2/3=3; n=6^2=36; 4)num=24; m=24/2/3=4; n=6^3=216; 我是这么觉得的,没做测试…… 好像里面还是少考虑了,排列组合学的不好,忘干净了
你的结果离开实际应有的相差十万百千里!
加载更多回复(77)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧