免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: DNFCF
打印 上一主题 下一主题

[算法] 变态的算法题 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2011-05-18 10:50 |显示全部楼层
本帖最后由 KBTiller 于 2011-05-18 11:16 编辑

回复 81# koolcoy


    9^21不需要那么多。位数为21应该可以减去两支

论坛徽章:
0
32 [报告]
发表于 2011-05-19 09:26 |显示全部楼层
只要是提供组合数的解法
各种方案的解空间是一样大的

但是
for(n9 = 1 ; n9 <= 21 ; n9++)
    for(n8 = 0 ; n8 <= 21 - n9 ; n8++)
    ……
方案对所谓的“剪枝”可能更好写

论坛徽章:
0
33 [报告]
发表于 2011-05-19 09:52 |显示全部楼层
本帖最后由 KBTiller 于 2011-05-19 09:57 编辑

回复 90# koolcoy


    怎么会呢?21位数的各种组合的数目是一定的。这个值可以精确求出,14139189
    当然,我也赞同嵌套的层数越少越好。但组合的总数目是一样的

论坛徽章:
0
34 [报告]
发表于 2011-05-19 09:53 |显示全部楼层
回复 90# koolcoy


    “如果按各个数位上的数字来枚举的话”,按照10楼得那种枚举方法,总数并不多

论坛徽章:
0
35 [报告]
发表于 2011-05-19 10:13 |显示全部楼层
不,10楼的算法提到了“顺序符合”,即“有序”,这个很重要
123XXXX和321XXXX不可能都出现

论坛徽章:
0
36 [报告]
发表于 2011-05-19 10:53 |显示全部楼层
回复 95# koolcoy


    “123XXXX不满足条件,怎么知道321XXXX是否满足条件呢?”
   和你那种是一样的
   用123XXXX计算出各位数字N次方的和并统计各数字出现的次数
   然后检查“各位数字N次方的和”的各个数字出现的次数与“123XXXX“的“各数字出现的次数”是否一致

论坛徽章:
0
37 [报告]
发表于 2011-05-19 10:55 |显示全部楼层
回复 95# koolcoy


   
对于21位的数字,俺已经突破1.4秒了


    可喜可贺!(不过不知道硬件环境是否一致)
    我后面也准备改进一下,看看能提高多少
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP