组合问题

今天我开始看了第四卷的组合问题的开始,组合问题一般是分为五种:

1,存在问题:符合问题的模式一共有多少种。

2,构造问题:如果存在排列X,你怎么快速的找到。

3,枚举问题:多少种不同的排列X。

4,生成问题:如何系统的生成所有的X1,X2,...,Xn。

5,优化问题:给定目标函数f,何种排列可以使f(X)的值最大或者最小。

 

组合问题涉及很大的数据量,举个例子:

对象为2n个数,{1,1,2,2,...,n,n},我们想要把这些数排成一排,使数字k的两次出现恰好相隔k个数。

这个问题成为郎福德对问题,读者可以自己试试有多少对,我列出来:

当n=3 有1。

当n=7有26。

当n=11有17792.

当n=15有39809640.

当n=19有256814891280.

当n=23有3799455942515488.

 

其中,当最后一种情况,如果有一台每秒处理一百万条指令的计算机,需要连续不停的运行1500年。

另外当n=100时,虽然计算机发展的速度很猛,也可能永远不被人知道了。这就是问什么我们得学习组合算法,用来解决大规模问题!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值