打印升序ASCII,强盗


13

这是强盗的线索。警察的线索在这里

在警察线程中,任务是创建一个程序,该程序以升序输出可打印的ASCII字符。强盗的任务是解开用于产生此输出的警察代码。

破解的代码不必相同,只要它具有相同的长度并且任何显示的字符都位于正确的位置即可。语言也必须相同(版本号可以不同)。当然,输出必须相同。警察无法在其代码中使用注释,但强盗可以自由使用它们。

强盗线程的获胜者将是到2016年1月7日破解提交数量最多的用户。如果出现平局,则破解合并代码最长的提交内容的用户将获胜。

提交的格式应为:

语言,nn个字符(包括答案​​链接),缔约方会议的用户名

码:

alphaprinter

输出量

abcdefghijklmnopqrstuvwxyz

可选说明和注释。

排行榜:

阿德南(Adnan)惨败!

Adnan: 7
Pietu1998: 3
Mitch Schwartz: 2
Quintopia: 2
Martin Büttner: 2
cat: 1
Dennis: 1
insertusernamehere: 1
isaacg: 1
jimmy23013: 1
MegaTom: 1
plannapus: 1
user81655: 1

Answers:


7

Python 2,76个字符,wnnmaw

代码,带有以下混淆版本:

print "BKT]f"#__h______________________v_____________,___)_________)_______)
print __________h______________________v_____________,___)_________)_______)

这输出BKT]f。不是预期的版本,那肯定是哈哈。

在这里测试


1
nea的

1
这将教您发布一种程序,该程序的输出比使用某种语言的程序的输出短,print除非您在字符串必须位于的确切位置显示了字符。
quintopia,2015年





4

JavaScript(ES6),17个字符,尼尔

当OP发布函数时,以下是使用函数的解决方案:

()=>xxx=11000+233
__=____=_________

匿名函数的调用方式如下:

(()=>xxx=11000+233)();

一开始我有一个更荒谬的解决方案:

xx=yyyy=z=11230+3
__=____=_________

在控制台中运行时,它将打印数字11233


2
忍者是我。我知道了fx=asdf=> "11233"
Conor O'Brien 2015年

@CᴏɴᴏʀO'Bʀɪᴇɴ想到了,我必须对此保持戒心。:D
insertusername此处为2015年

1
好吧,用您最快的西方武器向您致敬。+1
科纳·奥布莱恩

-1(无字符串):P
ev3commander

1
@CᴏɴᴏʀO'Bʀɪᴇɴ的版本似乎是唯一一个返回字符串的函数的版本。
尼尔

4

PHP,28个字符,Niet the Dark Absol

我为此任务找到了多个版本:

原始版本:

<?=@implode(range('a','z'));

我的版本:

<?=join('',range('a', 'z'));

23个字符的版本:

<?=join('',range(a,z));

26个字符的版本:

<?=implode('',range(a,z));

当然,您可以添加几个空格以达到28个字符的标记。

在这里测试


当,你击败了我:P我能做的最短:<?=join(range(a,z));
LegionMammal978

您了解我-也许我应该通过将函数名称的字母之一作为显示的字符来使其更具限制性...无论如何,为了记录<?=@implode(range('a','z'));
在外

4

Jolf,27个字符,CᴏɴᴏʀO'Bʀɪᴇɴ

经过几个小时的反复试验,我明白了哈哈:

on-pl'u'Wa-n"vwxyz"`--'01_2

包括混淆的代码:

on-pl'u'Wa-n"vwxyz"`--'01_2
________W___________--_____
                         |

在这里尝试(单步运行似乎是处理警报的唯一方法)


说明

我遇到的第一件事是while循环的位置。我似乎没有把它放在正确的地方哈哈。正确处理之后,我注意到的第二件事是下划线的位置。我以为我快明白了,直到我被下划线(ggCᴏɴᴏʀO'Bʀɪᴇɴ)卡住了。

这是代码的完整说明:

on-pl'u'Wa-n"vwxyz"`--'01_2

o                           # assign
 n                          # n / standard variable
   pl                       # pl = "abcdefghijklmnopqrstuvwxyz"
  -  'u                     # pl - "u" = "abcdefghijklmnopqrstvwxyz"
       'W                   # a string in the middle doing nothing
          -n"vwxyz"         # n - "vwxyz"
         a                  # alert(
                   `        # is an extra semicolon
                     -'01   # "0" - 1
                    -    _2 # ("0" - 1) - negative 2

用伪代码:

n = minus("abcdefghijklmnopqrstuvwxyz", "u");
"W";
alert(minus(n,"vwxyz"));
;
minus(minus("0", 1), negative(2));

我有兴趣看看实际的解决方案是什么:)


1
上帝的圣洁母亲不是我想要的,而是干得不错!我在答案上贴了实际代码。
Conor O'Brien 2015年




4

Python 3,58字节,Mathias Ettinger

import string;print(''.join(sorted(string.printable))[5:])

基本使用字符串模块。


我没有看到您在我之前破解过这个,我尝试使用string但没有想到使用sorted(因为我忘记了它的存在)。我不知道我是否应该坚持不懈,因为它与相同的方法相差无几,但可以奏效。

2
@cat我不知道Stewie Griffin对此有何看法,但无论如何,我还是给了+1,并认为保持答案是有意义的,因为它与我的答案不同。
米奇·施瓦兹

4

05AB1E,13个字符,阿德南

代码(和空白代码):

1TD*<F3<*}bRJ
__D____<_____

输出:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

说明:

1                       Push 1
 TD*<                   Push 99
     F   }              For loop
      3<*               multiply top of stack by 3-1 (e.g. double it)
          b             convert to list of binary digits (note we have just computed 2^99)
           R            reverse it
            J           join it into a string.
                        (top of stack implicitly printed)

哇!惊人的工作:)
阿德南(Adnan)2015年


3

JavaScript(ES6),60个字符,在此处插入用户名

码:

e=e=>{try{a}catch(e){return[...e.toString()].sort().join``}}
e_e_______a__a____e___e________e__o___________o______o______

输出(在Chrome中):

    :ERacddeeeeeeffiinnnoorrrrst

我马上就知道了,因为我将要做同样的事情!xD


不错-一个字一个字。:D
insertusername此处为2015年

1
@insertusernamehere您可以做得[...e+'']短一些。一开始就把我甩了。;)
user81655 2015年

什么是return[...e.toString()]真正做到?我只知道一个可爱的JS ...

3
@cat它将错误消息的每个字母放入一个数组中。它需要这样做,因为它sort仅适用于数组,而不适用于字符串。
user81655 2015年


3

Malbolge,254个字符,弗雷德里克

混淆版本:

_____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ __

我的版本:

('&%: ^"!65 4Xzyx w4-Qs rpo'K mlk"' ~Dfdc ba}v< ::8[Z XnVlq }0/mO ,*MbK JH^6# 4`C|0 ?U=Sw uPsaq L4on2 Mjjh, ged)c '<$$p ]!};Y WiVxS eRQ>= ).K]l Ij"Fh gfedc b,=;z L\q%H X3E2C /ng-k N*KJI 8%6#D ~2^Ai >g<<d tUr`6 oJ"!1 /|{CU f)d>b <A_^! \};Yj yUxTS dtsr` ML

这将输出:

`AB\cd`

您可以在这里尝试。



2

05AB1E,Adnan,7个字符

代码和空白代码:

576T*uH
___T___

输出:

22368

说明:

576       Push this number.
   T      Push ten.
    *     Multiply. (5760)
     u    Convert to string.
      H   Interpret as a hex number and push decimal (22368) (implicit output).

我几乎肯定这不是原始程序,但要感谢Adnan提供的一点信息(u命令)。


我认为这是原始程序哈哈。做得好:)
阿德南(Adnan)2015年

2

这个答案是无效的,不应计入我的分数(不是我无论如何都接近获胜),因为我没有看到它已经被破解。

Python 3,58个字符,Mathias Ettinger

代码,原始代码如下:

x=range(95);  print(''.join((chr(i+32) for i in x  )    ))
______________print(_______(_______________________)_____)

显然不是预期的解决方案,它是:

import string;print(''.join(sorted(string.printable))[5:])

输出:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(请注意前导空格。)

一个有趣的东西:花了我一段时间才弄清楚如何genexpr正常工作。:)


1

Pyth,17个字符,卢克

代码(带空白代码):

S`u]G6*T`t"#X0231
___________#____1

输出:

""''''''''''''''''''''0000000000111111111122222222223333333333XXXXXXXXXX[[[[[[]]]]]]

在线尝试。

很好玩 我使用#过滤器运算符多次将其提高到18个字节,但是后来我发现我可以将其从字符串中丢弃。如果删除t,则#结果可能是该输出的最短Pyth代码。

基本上:

  • "#X0231 使字符串 #X0231
  • t"#X0231删除#X0231
  • `t"#X0231 获取字符串表示形式: 'X0231'
  • *T`t"#X0231乘以10:'X0231''X0231''X0231'
  • u]G6*T`t"#X0231 将其包装成数组6次
  • `u]G6*T`t"#X0231获取字符串表示形式:[[[[[['X0231''X0231']]]]]]
  • S`u]G6*T`t"#X0231 对其进行排序以获取输出

非常好!与我所做的完全不同。
路加福音



0

Python 2,62个字符,RikerW

混淆版本:

______________________________________________________________
         | |   ||                  |  |  ||

我的版本:

print "ab_c_de___".replace("_","")#___________________________

这只是删除所有下划线和输出abcde

在这里试过

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.