社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 银行
  • 4914阅读
  • 3回复
bbschat 离线

级别: 江湖新秀


显示用户信息 

倒序阅读   只看楼主      楼主   发表于: 2008-04-23
更多操作

来道Google招聘题

找出符合下面这种模式的算式,当然数字不能以0开头

WWWDOT - GOOGLE = DOTCOM

小提示:答案有2个,M 和 E 可以互换。

我机器要跑半个小时才能出答案,有点郁闷。
看看有没有更好的解决方案。
jmouse 离线

级别: 新手上路


显示用户信息 

只看该作者      沙发   发表于: 2008-04-24
这类题目应该先手工分析一下吧。
WWWDOT
DOTCOM
------------------
GOOGLE
第二列w-o-->o
第三列w-t-->o
第五列o-o-->l
这里面应该可以总结出不少东西,把不可能的排除掉,剩下的就算是穷举,也能秒杀了吧。
bbschat 离线

级别: 江湖新秀


显示用户信息 

只看该作者      板凳   发表于: 2008-04-30
手工分析到底的话可以全部解出,不需要计算机了。
我觉得针对类似这种字符转数字的模式,
能不能写出通用的计算机求解方法是蛮有意义的一件事。
至于喜欢用笔在纸上思考解题的又是另外一种乐趣了。
alanxujian 离线

级别: 新手上路

显示用户信息 

只看该作者      地板   发表于: 2008-12-30
我的解法,时间还行吧。

不知道为什么,运行时会有“warning: default `to_a' will be obsolete”这个提示W=[9,8,7,6,5,4,3,2,1,0]

W.each do |w|
(W-w.to_a).each do |d|
(W-w.to_a-d.to_a).each do |g|
next if w- g != d and w - 1 - g != d
(W-w.to_a-d.to_a-g.to_a).each do |o|
next if w - o != o and w- 1 - o != o and w+10-o != o and w+10-1-o != o
(W-w.to_a-d.to_a-g.to_a-o.to_a).each do |t|
next if w - o != t and w- 1 - o != t and w+10-o != t and w+10-1-o != t
(W-w.to_a-d.to_a-g.to_a-o.to_a-t.to_a).each do |l|
next if o - l != o and o- 1 - l != o and o+10-l != o and o+10-1-l != o
(W-w.to_a-d.to_a-g.to_a-o.to_a-t.to_a-l.to_a).each do |e|
(W-w.to_a-d.to_a-g.to_a-o.to_a-t.to_a-l.to_a-e.to_a).each do |c|
next if d - g != c and d- 1 - g != c and d+10- g != c and d+10-1- g != c
(W-w.to_a-d.to_a-g.to_a-o.to_a-t.to_a-l.to_a-e.to_a-c.to_a).each do |m|
next if t - e !=m and t +10 - e != m
if w*100000+w*10000+w*1000+d*100+o*10+t-(g*100000+o*10000+o*1000+g*100+l*10+e)==d*100000+o*10000+t*1000+c*100+o*10+m
puts \"Found\"
puts \"#{w*100000+w*10000+w*1000+d*100+o*10+t}-#{g*100000+o*10000+o*1000+g*100+l*10+e}\"
#sleep 10
end
end
end
end
end
end
end
end
end
end
描述
快速回复

如果您在写长篇帖子又不马上发表,建议存为草稿
认证码:

 回复后跳转到最后一页