gpt4 book ai didi

language-agnostic - 代码高尔夫 : Decision Tree

转载 作者:行者123 更新时间:2023-12-03 13:02:17 25 4
gpt4 key购买 nike

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。








在 Google Code Jam 2009 中,Round 1B ,有一个叫做决策树的问题,它可以提供相当有创意的解决方案。

发布您的最短解决方案;假设您不只是为了解决这个问题而创建一种新语言,我会以半频率将 Accepted Answer 更新为当前最短的条目。 :-P

目前排名:

  • 107 Perl
  • 121 PostScript (binary)
  • 132 Ruby
  • 154 Arc
  • 160 PostScript (ASCII85)
  • 170 PostScript
  • 192 Python
  • 196 JavaScript
  • 199 Common Lisp
  • 212 LilyPond
  • 273 Scheme
  • 280 R
  • 281 sed w/ bc
  • 312 Haskell
  • 314 PHP
  • 339 m4 w/ bc
  • 346 C
  • 381 Fortran
  • 462 Java
  • 718 OCaml
  • 759 F#
  • 1554 sed
  • C++暂时不合格
  • 最佳答案

    sed 1554 个字符(纯)/281 个(含 bc)

    是的,认真的。

    用法:sed -r -f thisfile.sed < input.in > output.out
    (适用于 GNU sed)

    1d
    / /!{x
    s/^$/Case #Y:/
    :i
    s/9Y/Y0/
    ti
    s/#Y/#0Y/
    s/:/:0123456789/
    s/(.)Y(.*):[0-9]*\1(.).*/\3\2Y:/
    x
    G
    s/.*\n|Y//gp
    z
    :p
    N
    /[()]/s/ |\n//g
    y/()/JK/
    tp
    H
    d}
    G
    s/\n[^J]*/ %/
    s/[^JK]*$//
    :c
    s/J1?([.-9]+)(.*)K/\2@\1/
    /%@/by
    :b
    /J/s/T//
    s/J([^JK]*)K/TC\1B/
    tb
    / (.+) .*%\1C/{s/%[^C]*/%/
    s/T.*B//
    by}
    s/%.*T/%/
    :y
    y/CB/JK/
    tc
    s/.\.0*\b//g
    :r
    /@.*@/{s/\w*@\w*$/C&B/
    s/C(\w)(.*B)/\1C\2~/
    s/"[^"]*/&0/g
    :t
    s/(\w)(C.*)(\w)B(.*~)/\1\2B\3\4\1\3/
    T
    s/~(10|2[01]|3[0-2]|4[0-3]|5[0-4]|6[0-5]|7[0-6]|8[0-7]|9.)/&Q/
    s/(.)(.)Q/\2\1/
    s/~0\w/`00/
    s/~1\B/`0/
    s/~22/`04/
    s/~23/`06/
    s/~24/`08/
    s/~33/`09/
    s/~25/`10/
    s/~26|~34/`12/
    s/~27/`14/
    s/~28|~44/`16/
    s/~29|~36/`18/
    s/~35/`15/
    s/~45/`20/
    s/~37/`21/
    s/~38|~46/`24/
    s/~55/`25/
    s/~39/`27/
    s/~47/`28/
    s/~56/`30/
    s/~48/`32/
    s/~57/`35/
    s/~49|~66/`36/
    s/~58/`40/
    s/~67/`42/
    s/~59/`45/
    s/~68/`48/
    s/~77/`49/
    s/~69/`54/
    s/~78/`56/
    s/~79/`63/
    s/~88/`64/
    s/~89/`72/
    s/~99/`81/
    s/`(.)(.)/~\1'\2/
    bt
    :
    s/(~.)'/\1/
    s/..'/K&/
    /K/bk
    :v
    s/=(,?.)'/\1/
    s/,/1'/
    t
    s/B(.*)~/\1B"/
    tr
    s/"(\w*)0/A\1/g
    /A.*A/{s/A[^A]*$/J&K/
    :k
    s/([^A])(J.*)([^A])K/\2K\1\3/
    s/K(10|2[01]|3[0-2]|4[0-3]|5[0-4]|6[0-5]|7[0-6]|8[^9]|9.)/&Q/
    s/(.)(.)Q/\2\1/
    s/K0/=/
    s/K11/=2/
    s/K12/=3/
    s/K13|K22/=4/
    s/K14|K23/=5/
    s/K15|K24|K33/=6/
    s/K16|K25|K34/=7/
    s/K(17|26|35|44)/=8/
    s/K(18|27|36|45)/=9/
    s/K(19|28|37|46|55)/W0/
    s/K(29|38|47|56)/W1/
    s/K(39|48|57|66)/W2/
    s/K49|K58|K67/W3/
    s/K59|K68|K77/W4/
    s/K69|K78/W5/
    s/K79|K88/W6/
    s/K89/W7/
    s/K99/W8/
    s/W/=,/
    /'/bv
    s/\b=/K:/
    tk
    s/[:JK]A?//g
    s/,/,0123456789GF/
    s/(.),.*\1(.).*F/\2/
    s/G/,0/
    tk}
    /A.*A/bv}
    s/\w*C.*A//
    tr
    s/.*@/./

    此解决方案省略了小数点前的前导零,并且不处理答案为 1.00 的情况。幸运的是,GCJ 法官接受了缺少零的情况,并且没有任何案例的答案是 1.00。

    要包含前导零,请将最后一行更改为 s/.*@/0./ ;要处理 1.00 案例,请附加 s/^$/1/ 行。

    这是一个将乘法外包给 bc 的解决方案:
    1d
    / /!{x
    s/\n.*//
    s/.*/echo 0&+1|bc/e
    x
    g
    s/.*/Case #&:/p
    :p
    N
    /[()]/s/ |\n//g
    y/()/JK/
    tp
    H
    d}
    G
    s/\n[^J]*/ %/
    s/[^JK]*$//
    :c
    s/J([.-9]+)(.*)K/\2*\1/
    /%\*/s/.*%.(.*)/echo \1|bc -l/e
    :b
    /J/s/T//
    s/J([^JK]*)K/TC\1B/
    tb
    / (.+) .*%\1C/{s/%[^C]*/%/
    s/T.*B//
    b}
    s/%.*T/%/
    :
    y/CB/JK/
    tc

    关于language-agnostic - 代码高尔夫 : Decision Tree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1433263/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com