这道题用程序来计算 求比较精简的代码(PHP 或 Python)

2016-04-19 23:57:16 +08:00
 Patrick95

一匹马车 车上坐着 5 个人,每人背 5 个袋子,每个袋子里有 5 条大猫,每条大猫带着 5 只小猫,每只小猫带着 5 只老鼠当零食。 求一共多少条腿

不算马腿。

1957 次点击
所在节点    问与答
18 条回复
icybee
2016-04-20 00:39:26 +08:00
感觉智商被碾压了。。。
JohnR
2016-04-20 04:22:31 +08:00
310
JohnR
2016-04-20 04:23:35 +08:00
我用的思维导图软件辅助计算的。不知道有错没有
msg7086
2016-04-20 06:37:43 +08:00
pry(main)> [4,4,4,0,2,0].inject{|s,d| (s<<2)+s+d}
=> 15510

不知道对不对。不过这 5 个人背着三千多只老鼠是想要干什么?
fractal314
2016-04-20 07:16:09 +08:00
5*2+(5^3+5^4+5^5)*4=10+500*155=77510
bigtom
2016-04-20 09:04:38 +08:00
sum([pow(5,5-i)*x for (i,x) in enumerate([4,4,4,0,2,0])])

15510
SpicyCat
2016-04-20 09:46:56 +08:00
「每只小猫带着 5 只老鼠当零食」,被萌到了,哈哈哈😹
xuwenmang
2016-04-20 09:58:09 +08:00
变量
人类=5 人
大猫=5 人*5 袋*5 大猫
小猫=5 人*5 袋*5 大猫*5 小猫
老鼠=5 人*5 袋*5 大猫*5 小猫*5 老鼠

算法
人类*2+(大猫+小猫+老鼠)*4

声明:不是程序员,
Patrick95
2016-04-20 11:59:36 +08:00
@msg7086 结果是对的 但是我看不懂这代码 是 ruby 吗
Patrick95
2016-04-20 12:00:29 +08:00
@bigtom 结果是对的 但是用一行来写的话好难理解啊。
Patrick95
2016-04-20 12:01:25 +08:00
@fractal314 差太多啦
-----

@JohnR 310 肯定不会啦
msg7086
2016-04-20 20:55:02 +08:00
@Patrick95 是你说要精简的啊 w
精简当然就 one-liner 了。
Patrick95
2016-04-20 21:06:39 +08:00
@msg7086 精简到都看不懂了=w=
msg7086
2016-04-20 21:09:12 +08:00
@Patrick95 Inject 是个 Reducer ,相当于循环。
s = 0; for d in [4,4,4,0,2,0]: s = s * 5 + d;
这样应该能理解了吧?
yhylord
2016-04-20 22:05:19 +08:00
@msg7086 为什么要拆成位运算呢?瞬间感觉回到某些国产大学 C 语言教材
msg7086
2016-04-20 22:07:28 +08:00
@yhylord (混淆
Patrick95
2016-04-20 22:32:48 +08:00
@msg7086 我这样也理解不能=w= 我不是计算机科班出身 对这个实在苦手 大神能否帮助我理解下这个算法的过程。
Patrick95
2016-04-20 23:28:57 +08:00
@msg7086 我自己搞懂了,多谢菊苣。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/272411

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX