免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
91 [报告]
发表于 2011-05-19 09:53 |只看该作者
回复 90# koolcoy


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

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
92 [报告]
发表于 2011-05-19 10:09 |只看该作者
两种算法的组合数是不一样的,这两种算法有着本质的区别。
如果按照“各个数位上的数字来枚举”的话,即10楼的算法,数字 123XXXX和321XXXX是两种不同的情况,需要计算两次。
如果按照“1出现的次数为n1,2出现的次数n2,3出现的次数为n3...”这种方法来枚举的话123XXXX和321XXXX是同一种情况,只需要计算一次。

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

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
94 [报告]
发表于 2011-05-19 10:40 |只看该作者
回复 94# KBTiller

但是有个问题,按照10楼得算法,当你验证后发现123XXXX不满足条件,怎么知道321XXXX是否满足条件呢?如果不知道的话,那么你就还要验证321XXXX是否满足条件。也就是说对于123XXXX和321XXXX这两个数字你需要验证两次。但是按照我的那种算法,如果发现123XXXX不满足条件后,我就可以肯定321XXXX不满足条件。

ps: 对于21位的数字,俺已经突破1.4秒了{:3_203:}

论坛徽章:
0
95 [报告]
发表于 2011-05-19 10:53 |只看该作者
回复 95# koolcoy


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

论坛徽章:
0
96 [报告]
发表于 2011-05-19 10:55 |只看该作者
回复 95# koolcoy


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


    可喜可贺!(不过不知道硬件环境是否一致)
    我后面也准备改进一下,看看能提高多少

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
97 [报告]
发表于 2011-05-19 11:09 |只看该作者
回复 97# KBTiller

Pentium(R) Dual-Core  CPU  E5700  @ 3.00GHz 32位cygwin

论坛徽章:
0
98 [报告]
发表于 2011-06-15 20:28 |只看该作者
128468643043731391252
449177399146038697307
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP