오름차순 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

답변:


7

Python 2, 76 자, wnnmaw

코드가 난독 화 된 버전은 다음과 같습니다.

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

이 출력 BKT]f됩니다. 의도 된 버전이 아니라, 하하입니다.

여기에서 테스트


1
Sneaky comments :)
wnnmaw

1
print문자열이 앉을 위치에 문자를 정확히 표시하지 않으면 언어로 프로그램 길이보다 짧은 프로그램을 게시하는 방법 을 알려줍니다.
quintopia

7

Brainfuck, 48 바이트, Adnan

++++[>++++[>++++<-]<-]+++[>++++++++<-]>++[>+.<-]

64와 26을 생성하는 것은 매우 간단합니다.

++++[>++++[>++++<-]<-]>>+

65를 얻는 방법이므로 다음과 같은 일을 시도 할 수 있습니다.

++++[>++++[>++++<-]<-]>>+[>+++++>++<<-----]>>[<.+>-]

그것이 막 다른 골목임을 알기 전에.


Ahhh, well done :)
Adnan




4

JavaScript (ES6), 17 자, Neil

OP가 함수를 게시함에 따라 함수를 사용하는 솔루션이 있습니다.

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

익명 함수는 다음과 같이 호출 할 수 있습니다.

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

내가 처음에 가지고있는 더 우스운 해결책 :

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

콘솔에서 실행하면 숫자가 인쇄됩니다 11233.


2
닌자 내가 얻었다fx=asdf=> "11233"
코너 오브라이언

@ CᴏɴᴏʀO'Bʀɪᴇɴ 생각, 나는 이것에 빨리해야했다. : D
insertusernamehere

1
서쪽에서 가장 빠른 총으로 +1
Conor O'Brien

문자열이없는 경우 -1 : P
ev3commander

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ의 버전은 문자열을 반환하는 함수 인 유일한 것 같습니다.
Neil

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 자 표시를 얻을 수 있습니다.

여기에서 테스트


Dang, 당신은 나를 이겼다 : P 내가 할 수있는 가장 짧은 :<?=join(range(a,z));
LegionMammal978

당신은 저를 얻었습니다. 어쩌면 나는 기능 이름의 문자 중 하나를 공개 문자로 넣어서 더 제한적으로 만들어야했을 것입니다 ... 어쨌든, 기록을 위해 원본은 다음과 같습니다.<?=@implode(range('a','z'));
Niet the Dark Absol

4

Jolf, 27 자, Cᴏɴᴏʀ O'Bʀɪᴇɴ

몇 시간의 시행 착오 끝에 하하를 얻었습니다.

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

난독 처리 된 코드 포함 :

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

여기에서 시도 하십시오 ( 단계 실행 은 경고를 사용하는 유일한 것 같습니다)


설명

내가 붙어있는 첫 번째 것은 while 루프의 배치였습니다. 나는 올바른 장소에 그것을 보이지 않는 것 같았다. 올바르게 얻은 후 두 번째로 밑줄을 배치했습니다. 나는 밑줄에 낄 때까지 거의 그것을 얻었다 고 생각했다.

코드에 대한 자세한 설명은 다음과 같습니다.

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




4

Python 3, 58 바이트, Mathias Ettinger

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

문자열 모듈 의 기본 사용 .


나는 당신이 내 앞에 이것을 깨뜨린 것을 string보지 못했지만 사용을 시도했지만 사용을 생각하지 않았습니다 sorted(존재하는 것을 잊었 기 때문에). 균열이 같은 방법 근처에 있지만 작동하지 않기 때문에 균열을 내버려 두어야할지 모르겠습니다.
cat

2
@cat Stewie Griffin의 의견이 무엇인지 모르겠지만 어쨌든 나는 +1을 주었고 내 대답과 같지 않기 때문에 답을 지키는 것이 합리적이라고 생각합니다.
Mitch Schwartz

4

05AB1E, 13 자, Adnan

코드 (공백 코드) :

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


3

JavaScript (ES6), 60 자, insertusername 여기

암호:

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
insertusernamehere

1
@insertusername 여기 [...e+'']조금 더 짧게 만들었습니다. 그것은 처음에 나를 버렸다. ;)
user81655

return[...e.toString()]실제로 무엇을 합니까? 나는 lil JS 만 알고있다.
cat

3
@cat 오류 메시지의 각 문자를 배열에 넣습니다. sort문자열이 아닌 배열에서만 작동 하기 때문에이 작업 을 수행해야합니다 .
user81655


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, 7 자 Adnan

코드 및 공백 코드 :

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은이를 가능하게 한 정보를 제공해 준 Adnan에게 감사를 표했다 ( u명령).


나는 이것이 원래 프로그램 haha라고 생각합니다. 잘 했어요 :)
Adnan

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

피 이스, 17 자, 루크

코드 (공백 코드 포함) :

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

산출:

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

온라인으로 사용해보십시오.

재미있었습니다. #필터 연산자로 18 바이트를 여러 번 사용 했지만 문자열에서 버릴 수 있다고 생각했습니다. 를 제거 t하면# 결과는 아마도 해당 출력에 대한 가장 짧은 Pyth 코드 일 것입니다.

원래:

  • "#X0231 문자열을 만든다 #X0231
  • t"#X0231를 제거합니다 #:X0231
  • `t"#X0231 문자열 표현을 가져옵니다. 'X0231'
  • *T`t"#X023110을 곱합니다 : 'X0231''X0231''X0231'
  • u]G6*T`t"#X0231 배열로 6 번 감싼다
  • `u]G6*T`t"#X0231문자열 표현을 얻는다 : [[[[[['X0231''X0231']]]]]]
  • S`u]G6*T`t"#X0231 출력을 얻기 위해 정렬

아주 좋아요! 그리고 내가 한 것과는 아주 다릅니다.
Luke



0

Python 2, 62 자, RikerW

난독 화 된 버전 :

______________________________________________________________
         | |   ||                  |  |  ||

내 버전 :

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

이것은 단순히 모든 밑줄과 출력을 제거합니다 abcde .

여기에서 시도

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.