*求一个组合问题的最优解*

guardian 2004-01-30 03:27:26
有N个数字,第一次从中随机取出K个数字(忽略先后顺序),第二次随机取出K-1个数字(忽略先后顺序),求第二次取出K-1个数的最少组合数,使得第二次取出的组合中至少有一组(K-1个数字)必然包含在第一次取出的K个数字中。

如有9个数字,第一次随机取出8个数字,第二次取出7个数字进行全组合,使得第二次的组合中有一组7个数字必然包含在第一次取出的8个数字中的最少组合数算法。
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnefuil 2004-01-30
  • 打赏
  • 举报
回复
c(n,k-1)-c(k,k-1)+1次之后确实能够至少有一次找到
但平均值远远小于这个值
BlueSky2008 2004-01-30
  • 打赏
  • 举报
回复
我觉得这个好像跟概率没有什么关系啊。
第2次共有C(N,k-1)个组合,其中包含与第一次的K个数中的有C(k,k-1)个,
所以至少要取C(N,k-1)-C(k,k-1)+1 个
guardian 2004-01-30
  • 打赏
  • 举报
回复
mysword(一怒拔剑)的说法我理解了,最后算出的次数是数学期望是平均数,谢谢!
但是例子中的5种组合,只能随机组合没有半点规则可以利用吗?
gnefuil 2004-01-30
  • 打赏
  • 举报
回复
笔误,最后E=c(n,k-1)/k
gnefuil 2004-01-30
  • 打赏
  • 举报
回复
你的例子中,算出来的概率是2/9
你可以计算数学期望
一次找到的概率为p(1)=k/c(n,k-1)
两次找到的概率为p(2)=(1-k/c(n,k-1)*k/c(n,k-1)
三次找到的概率为p(3)=(1-k/c(n,k-1)^2 *k/c(n,k-1)
.
.
.
数学期望就是E=1*p(1)+2*p(2)+3*p(3)+...+n*p(n)+....
最后算出来数学期望就是E=k/c(n,k-1)
这个指标是平均次数,无法保证最少的,有可能第一次就找到了,有可能好几次之后才能找到
guardian 2004-01-30
  • 打赏
  • 举报
回复
to mysword(一怒拔剑) : 按照k/c(n,k-1)公式,9个数第一次取出8个第二次取出7个,概率为4.5,应该有5种组合就可就可实现。

这个5中组合怎么枚举出来如个用程序实现?
guardian 2004-01-30
  • 打赏
  • 举报
回复
最小组合数的算法啊?就是数学公式。各位大侠写出程序就跟好了,呵呵!
gnefuil 2004-01-30
  • 打赏
  • 举报
回复
先算一下概率,取出特定的k-1个数的概率是1/c(n,k-1)
那么在前面取出来的k个数中,可以分解为c(k,k-1)中k-1个数的组合
所以概率为c(k,k-1)/c(n,k-1)即k/c(n,k-1)
我不太理解你的问题,什么最小组合数的算法啊?不太懂


33,029

社区成员

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

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