这道题用程序来计算 求比较精简的代码(PHP 或 Python) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Patrick95
V2EX    问与答

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

  •  1
     
  •   Patrick95 2016-04-19 23:57:16 +08:00 2554 次点击
    这是一个创建于 3511 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    不算马腿。

    18 条回复    2016-04-20 23:28:57 +08:00
    icybee
        1
    icybee  
       2016-04-20 00:39:26 +08:00
    感觉智商被碾压了。。。
    JohnR
        2
    JohnR  
       2016-04-20 04:22:31 +08:00
    310
    JohnR
        3
    JohnR  
       2016-04-20 04:23:35 +08:00
    我用的思维导图软件辅助计算的。不知道有错没有
    msg7086
        4
    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
        5
    fractal314  
       2016-04-20 07:16:09 +08:00 via Android
    5*2+(5^3+5^4+5^5)*4=10+500*155=77510
    bigtom
        6
    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
        7
    SpicyCat      2016-04-20 09:46:56 +08:00
    「每只小猫带着 5 只老鼠当零食」,被萌到了,哈哈哈
    xuwenmang
        8
    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
        9
    Patrick95  
    OP
       2016-04-20 11:59:36 +08:00
    @msg7086 结果是对的 但是我看不懂这代码 是 ruby 吗
    Patrick95
        10
    Patrick95  
    OP
       2016-04-20 12:00:29 +08:00
    @bigtom 结果是对的 但是用一行来写的话好难理解啊。
    Patrick95
        11
    Patrick95  
    OP
       2016-04-20 12:01:25 +08:00
    @fractal314 差太多啦
    -----

    @JohnR 310 肯定不会啦
    msg7086
        12
    msg7086  
       2016-04-20 20:55:02 +08:00
    @Patrick95 是你说要精简的啊 w
    精简当然就 one-liner 了。
    Patrick95
        13
    Patrick95  
    OP
       2016-04-20 21:06:39 +08:00
    @msg7086 精简到都看不懂了=w=
    msg7086
        14
    msg7086  
       2016-04-20 21:09:12 +08:00   1
    @Patrick95 Inject 是个 Reducer ,相当于循环。
    s = 0; for d in [4,,4,0,2,0]: s = s * 5 + d;
    这样应该能理解了吧?
    yhylord
        15
    yhylord  
       2016-04-20 22:05:19 +08:00 via Android
    @msg7086 为什么要拆成位运算呢?瞬间感觉回到某些国产大学 C 语言教材
    msg7086
        16
    msg7086  
       2016-04-20 22:07:28 +08:00
    @yhylord (混淆
    Patrick95
        17
    Patrick95  
    OP
       2016-04-20 22:32:48 +08:00
    @msg7086 我这样也理解不能=w= 我不是计算机科班出身 对这个实在苦手 大神能否帮助我理解下这个算法的过程。
    Patrick95
        18
    Patrick95  
    OP
       2016-04-20 23:28:57 +08:00
    @msg7086 我自己搞懂了,多谢菊苣。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:16 PVG 16:16 LAX 00:16 JFK 03:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86