난독 화 된 Hello World


123

"Hello World"텍스트를 표시하는 가장 짧은 난독 화 된 프로그램을 작성하십시오.

난독 화 된 프로그램으로 간주 되려면 다음 요구 사항 중 두 가지 이상을 충족해야합니다 .

  • 문자를 포함하지 않습니다 : h, l, w그리고 d어떤 경우에
  • : 문자를 포함하지 않는 e, o, r, 0, 그리고 1어떤 경우에
  • 문자를 포함하지 않습니다 : 2또는7

입력 :
없음

산출:
Hello World


6
내 생각 import허용되지 않습니다 파이썬에서.
Alexandru

26
이 규칙이 언어 키워드에도 적용됩니까?
hallvabo

8
대소 문자를 구분하지 않습니까?
oenone

20
누군가 2와 7이 허용되지 않는 이유를 설명 할 수 있습니까? 왜 그들이 왜 선택되었는지 알지 못해서 궁금합니다.
Thomas Eding

4
@trinithis와 다른 것들, ASCII 문자 72는 제가이 "H"두 가지를 선택한 이유입니다
Kevin Brown

답변:


51

GolfScript, 17 자

'· š““?? ߨ ????“›'{~} %

이 제출을 테스트 할 때 파일을 UTF-8이 아닌 일반 바이너리로 저장하십시오. 파일을 다시 만드는 데 문제가 있습니까? 다음은 16 진수 덤프입니다.

00000000  27 b7 9a 93 93 90 df a8  90 8d 93 9b 27 7b 7e 7d  |'...........'{~}|
00000010  25                                                |%|

1
이 솔루션이 확실한 해결책이라고 생각하고 싶지만이 항목의 작동 방식에 대해 잘 모를 경우 다음 스포일러를 읽을 수 있습니다. chat.stackexchange.com/transcript/message/442257#442257 :-)
Chris Jester -Young

12
ISO-8859-1이 아니며 실제로 Windows-1252입니다.
Konrad Borowski

@GlitchMr : 실제로 제출물에 Windows-1252 외부의 문자도 포함되어 있다고 확신합니다. ;-)
Chris Jester-Young

@xfix 실제로 Windows-1252도 아닙니다. Windows-1252에 ISO-8859-1보다 더 유효한 문자가 있지만 항목에 0x8D 및 0x90과 같은 문자가 포함되어 있지만 Windows-1252에서도 유효하지 않습니다.
Chris Jester-Young

충분하지만 Windows-1252에서는 일부 문자가 허용되지 않습니다.
Konrad Borowski

171

명백한 대답은 어떤 종류의 변화를 사용하기 때문에 Acme :: EyeDrops를 사용하여 무언가를 게시 해야한다고 생각하지만 여분의 힘으로 내 것이 좀 더 재미 있어야한다고 생각했습니다.

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

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

                            ';'.('`'|',').
                        ('`'|'!').('['^    '('
                    ).('['^'/').(('{')^        '['
                 ).('`'|')').("\`"|    (          '&'
              )).'\\'.'$'.('`'|"\*").                '='
            .'='.'\\'.'@'.('`'|"\#").                  (((
          '\\'))).'}'.('['^'+').('['^  (                 ')'
         )).('`'|')').('`'|'.').('['^   (                 '/'
       )).'\\'.'"'.'\\'.'\\'.('`'      |+                   '.'
      ).'\\'.'"'.('!'^'+').'"'.'}'.   ')'                    );(
     $:)='.'^'~';$~='@'|'(';$^=')'^                           '['
    ;$/='`'|'.';$,='('^'}';$\="\`"|                            '!'
   ;$:=')'^'}';$~='*'|'`';$^=('+')^                             '_'
   ;($/)    ='&'|'@';$,='['&'~';$\                              =((
  "\,"))^    '|';$:  ='.'^'~'; $~                                =((
  '@'))|     "\(";    $^=')'^                                    '['
 ;($/)=      '`'|       '.';$,                                    =((
 '(')        )^+         '}';$\                                   =((
'`')          )|          "\!";      (           (                 $:)
)=')'         ^+        (   (         (                   (        '}'
))));          (           (          (                            $~)
))=(                    (   (    (        (                        '*'
))))                     )   |  ((      (                          '`'
)))                      ;     $^=         (                       '+'
)^+                       ((    ((  ((     '_'                     )))
)))                                          ;($/)                 =((
'&'                          ) )               |'@';               $,=
'['                                                                &((
 '~'                                      ))   ;                  $\=
 ','                                  ^"\|";  $:                  =((
  '.'                               ))^"\~"; $~=                 '@'
  |((                              '('));$^=')'^       (         '['
   );(                          $/)='`'|"\.";$,=    (           '('
   )^+                         '}';$\='`'|'!';$:                =((
    ')'                        ))^'}';$~='*'|'`'               ;$^
     =((                       '+'))^'_';$/='&'               |((
      '@'                      ));$,   =('[')&               '~'
       ;$\                              =','^               '|'
         ;$:                              =(      ((      '.'
          )))                                   ^+       '~'
            ;$~                               =(       '@'
              )|+                                    '('
                 ;$^                              =((
                    ')'                        ))^
                        '['                ;$/
                            ='`'|('.');#;#

경고

Perl 버전 5.18부터이 코드를 실행할 수있는 메커니즘이 강력 해져 오용을 방지하기 위해 기본적으로 비활성화되어 있습니다. 따라서 버전 5.18+ use re 'eval';에서는 스크립트 상단에 추가 하거나 스크립트 이름이 지정된 경우 다음 world.pl과 같이 실행할 수 있습니다 perl -Mre=eval world.pl. 보기 흉한 캐릭터를 추가해야하지만 불행히도 불행한 일입니다. (참고 :이 기능을 활성화하면 일부 라이브러리 또는 애드온을 사용하지 않고 표시된 코드는 유효한 Perl 코드이며 메커니즘은 더 이상 기본적으로 활성화되어 있지 않음을 강조하고 싶습니다.)


1
나는 그것을 시도했고 그것은 훌륭합니다! +1
Tomas

2
@TomasT. 고마워, 그것은 재미 있었고, 실제로 3 장의 사진으로 달리기 위해서는 골프를 쳤다!
Joel Berger

1
참고 (?{ code })정규식 일치하는 동안 Perl 정규식 기능 을 사용하여 사용자 정의 Perl 코드를 평가합니다. 사용자 정의 Perl 코드는 메시지를 인쇄합니다. 규칙을 위반하지 않기 때문에 좋습니다.
pts

5
당신은 안녕하세요 세계 왕입니다!
recursion.ninja

1
와! 와우! 지구상에서 어떻게했는지 보려고 Perl을 배워야합니다.
그리폰

69

C # (175 자)

C #에서이 작업을 수행하는 것은 상당히 어려운 일이었습니다. 제한으로 인해 많은 공통 키워드를 사용할 수 없기 때문입니다. C #에서는 식별자에 \ uxxxx 유니 코드 이스케이프 시퀀스를 사용할 수 있지만 불행히도 키워드에는 사용할 수 없습니다.

이 솔루션 은 .NET 4.0에 대해 컴파일 될 때만 작동 한다고 생각합니다 . 이유에 대한 설명을 참조하십시오.

using System;struct a{static int Main(){object[]c={"\u0048e\x6c\x6co "+(C\u0068ar)(86+1)+"or\x6c\x64"};typeof(Conso\u006ce).GetMet\u0068o\u0064s()[101].Invoke(c,c);return 0;}}

설명

// I won’t be able to get anywhere without using “System”.
// Even if I write it as “Syst\u0065m”, it still violates rule 2.
// Therefore, that is the rule we’ll violate.
using System;

// Thus, we can’t use: H L W D 2 7
// We can’t write “class”, so the Main type must be a struct.
struct a
{
    // We can’t write “void”, so Main needs to return an int.
    static int Main()
    {
        // We can’t write “new”, but we can instantiate an array
        // using the initialisation syntax.
        object[] c = {
            "\u0048e\x6c\x6co " + (C\u0068ar) (86 + 1) + "or\x6c\x64"
        };

        // We can use the character escape sequence to write “Console”, but not
        // “Write” because W is \u0057, which contains a 7. Therefore, we have to
        // use Reflection to get it. This relies on the fact that Console.Write(string)
        // is the 102nd method of the type Console in my copy of the framework.
        // Also, the first argument to Invoke can be anything for a static method
        // (needn’t be null). The second one is the actual argument to Console.Write.
        typeof(Conso\u006ce).GetMet\u0068o\u0064s()[101].Invoke(c, c);

        // Since Main returns int, we have to return something.
        return 0;
    }
}

for Uri대신에 사용할 수 있습니다 . 모호하지 않은 곳 대신 문자열에서 사용할 수 있습니다 ( 가변 길이). 다시 생각하면 전혀 필요하지 않으며에 대한 첫 번째 인수로 재사용 할 수 있습니다 . MSDN은 정적 메서드의 경우 첫 번째 인수는 무시된다고 말합니다. 이것은 나를 위해 175로 가져옵니다. objectb\xHH\u00HH\xbcInvoke
Joey

@Joey : 우와, 고마워! 첫 번째 인수 할 경우 비록 Invoke아무것도 할 수있다, 그것도 일 필요는 없다 c, 그것은 될 수 0... :)
Timwi

예, 인라인하려고 할 때 것으로 나타났습니다 c(이후 슬프게도 작동하지 않는 new을 필요로 e하고 .Split('x')) 너무 깁니다 (177에서 나왔다.
조이

나는 이것이 가능하다는 것을 몰랐다. +1
Igby Largeman 2016 년

1
당신이 한 매우 지능적인 일 GetMethods. +1
Soham Chowdhury

51

BrainFuck, 106 스트로크

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

모든 규칙을 준수하고 난독 처리됩니다.


2
나는 아직도 약간의 골프를 할 수 있다고 생각하지만, 잠을 잘 때까지 기다려야 할 것입니다.
R. Martinho Fernandes 1

34
BrainFuck은 그 정의에 의해 난독 화되지 않습니까?
mbx

18
유능한 BF 프로그래머라면 이것을 인식 할 수있을 것입니다.
Mehrdad

이것은 규칙 1과 2를 모두 위반합니다 : D
Thomas Eding

8
Brah, 커뮤니티의해 보호되는 것은 무엇이든 ++++++++++[>++++++>+++<<-]>++++++++++++.---.+++++++..+++.>++.<++++++++.--------.+++.------.--------.100 스트로크에 불과합니다. 내 것이 당신보다 낫습니다
OverCoder

44

자바 스크립트, 2595

이것은 규칙 2 만 위반합니다.

゚ω゚ノ=/`m´)ノ~┻━┻//*´∇`*/['_'];o=(゚ー゚)=_=3;c=(゚Θ゚)=(゚ー゚)-(゚ー゚);(゚Д゚)=(゚Θ゚)=(o^_^o)/(o^_^o);(゚Д゚)={゚Θ゚:'_',゚ω゚ノ:((゚ω゚ノ==3)+'_')[゚Θ゚],゚ー゚ノ:(゚ω゚ノ+'_')[o^_^o-(゚Θ゚)],゚Д゚ノ:((゚ー゚==3)+'_')[゚ー゚]};(゚Д゚)[゚Θ゚]=((゚ω゚ノ==3)+'_')[c^_^o];(゚Д゚)['c']=((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)-(゚Θ゚)];(゚Д゚)['o']=((゚Д゚)+'_')[゚Θ゚];(゚o゚)=(゚Д゚)['c']+(゚Д゚)['o']+(゚ω゚ノ+'_')[゚Θ゚]+((゚ω゚ノ==3)+'_')[゚ー゚]+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+((゚ー゚==3)+'_')[゚Θ゚]+((゚ー゚==3)+'_')[(゚ー゚)-(゚Θ゚)]+(゚Д゚)['c']+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+(゚Д゚)['o']+((゚ー゚==3)+'_')[゚Θ゚];(゚Д゚)['_']=(o^_^o)[゚o゚][゚o゚];(゚ε゚)=((゚ー゚==3)+'_')[゚Θ゚]+(゚Д゚).゚Д゚ノ+((゚Д゚)+'_')[(゚ー゚)+(゚ー゚)]+((゚ー゚==3)+'_')[o^_^o-゚Θ゚]+((゚ー゚==3)+'_')[゚Θ゚]+(゚ω゚ノ+'_')[゚Θ゚];(゚ー゚)+=(゚Θ゚);(゚Д゚)[゚ε゚]='\\';(゚Д゚).゚Θ゚ノ=(゚Д゚+゚ー゚)[o^_^o-(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ+'_')[c^_^o];(゚Д゚)[゚o゚]='\"';(゚Д゚)['_']((゚Д゚)['_'](゚ε゚+(゚Д゚)[゚o゚]+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+(゚Θ゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+((゚ー゚)+(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+(゚ー゚)+(゚Д゚)[゚ε゚]+((゚ー゚)+(゚Θ゚))+(c^_^o)+(゚Д゚)[゚ε゚]+(゚ー゚)+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚Θ゚)+(c^_^o)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+((゚ー゚)+(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚ー゚)+(c^_^o)+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)-(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+((゚ー゚)+(o^_^o))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o)+(o^_^o))+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚)+(゚Θ゚))+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚Θ゚)+(゚ー゚)+(゚ー゚)+(゚Д゚)[゚ε゚]+(゚ー゚)+((o^_^o)-(゚Θ゚))+(゚Д゚)[゚ε゚]+((゚ー゚)+(゚Θ゚))+(゚Θ゚)+(゚Д゚)[゚o゚])(゚Θ゚))('_');

13
UglifyJS에서 시도했지만 -2574 바이트를 절약했습니다.
Konrad Borowski

12
내가 여기서 무엇을보고 있는지 전혀 모른다.
Bob

6
@Bob = 난독 화 된 자바 스크립트. 힌트 : . That's followed by a comment and the expression void 컨텍스트에서 이름이`゚ ω `[ '_']`인 변수에 정규식 리터럴 (즉, '/ ` m´) ノ ~ ┻━┻ /')을 할당하는 것으로 시작합니다 . 그런 다음 변수 o(함께 _하고 (゚ー゚)) 그것은 효과적으로 어떤 작전입니다 추가 무해한 많은 작업을 수행하고, 의도 된 작업 (호출 할 우회적 방법을 사용하여, 그 정맥에 계속 값 3을 할당 alert("Hello world")이 아닌 명백한 인치) 패션.
Mark Reed


40

Befunge-93-10x9 블록

va:)/v<>#<
9A:)."c:P^
>"iqwt\%"^
bv"Mjq"<.<
c>v<-"x^x]
(C:,3>>^:(
$,9^;)|:O]
>5-^-.--.-
^<_#?>@_@<

죄송합니다. :디

나는 여기에 작은 크기로 가지 않았고 가능한 한 많은 웃는 얼굴과 소음을 포함시켜 코드 를 실제로 혼란스럽게 하려고했습니다 ! :디

규칙 2와 3을 따라야합니다.


18
"@_@" 나는 웃었다.
Wug

35

골프 스크립트-17 자

Chris보다 복사 / 붙여 넣기가 더 쉽습니다.

'Ifmmp!Xpsme'{(}%

기본적으로 1 문자 씩 시저 암호 이동


4
+1 더 간단하게 복사 할 수 있습니다. 내 규칙은 규칙을 위반하지 않고 (높은 비트 문자가 기호로 간주되는지 여부에 따라) 기호 골프도 충족시키는 이점이 있습니다. :-)
Chris Jester-Young

이것이 어떻게 규칙을 어기 는가?
d -_- b

11
@sims, 그것은 가지고 e거기에
gnibbler

2
세 가지 중 두 가지. : D
Rob

30

파이썬

규칙 I & III (34 자)

print'Uryyb Jbeyq'.decode('rot13')

규칙 I & III, 대안 (39 자)

print"\110e\154\154o %cor\154\144"%~-88

규칙 II & III (37 자)

input("H\x65ll\x64 W\x64%cld"%(3*38))

규칙 I 및 II (50 자)

input('\x48\x65\x6c\x6c\x6f \x57\x6f\x72\x6c\x64')

세 가지 규칙 (58 자)

input("\x48\x65\x6c\x6c\x6f %c\x6f%c\x6c\x64"%(84+3,3*38))

1
내 답변을 삭제했습니다. 귀하의 답변이 더 포괄적이라고 생각합니다.
st0le

+1, 대단한 조각이지만 놀랍지 않습니다. 골프를
봤습니다

당신이 할 수 import codecs있기 전에 해야합니다codecs.decode
고양이

첫 번째 솔루션에서
파렌을

23

자바 스크립트, 366 자

Joel Berger의 Perl 솔루션을보고 나면 ASCII 아트 예쁘기를 직접 강요해야한다고 생각했습니다. JavaScript는 영숫자를 사용하지 않으며 JSFuck 출력과는 반대로 실제로 합리적 크기입니다.

                   $$
                  =-~-
                 ~[];$_
                =$$+ $$;
               _$=$$+$$+-
              ~[];_=-~[];$
             =!![]+[];__={}
            +[];$$_=/\\ /+[]
           _$$=(![]+[])[_]+(!
          []+[])[$$]+$[$_+~[]]
         +$[_]+$[+[]];$=__[_$]+
        __[_]+($[$]+[])[_]+(![]+
       [])[$_+~[]]+$[+[]]+$[_]+$[
      $$]+__[_$]+$[+[]]+__[_]+$[_]
     _=$$_[_]+-~[];$[$][$](_$$+'("'
    +_+-~[]+-[]+_+$_+_$+_+_$+$_+_+_$
   +$_+_+_$+[$$+_$]+$$_[-~[]]+$_+-[]+
  _+$$+[$$+_$]+_+_$+[$$+_$]+_+[$$+$_]+
                $$+ _+_$
                +$_+_+$_
                +$_+'")'
                  )($)

제목에 코드의 문자 수를 표시 할 수 있습니까? 나는 당신이 얼마나 많은 것을보고 궁금합니다 ...
WallyWest

@ Eliseod'Annunzio 당신이 간다, 나는 이것이 코드 골프라는 것을 잊었다. 길이는 공백을 제거하고 마지막으로 ($)바꿨습니다 ()( $대칭으로 추가했기 때문에 ).
FireFly

팁 주셔서 감사합니다 ... "W"를 설명하기 위해 내 코드의 크기를 조정하고 조언을 사용하여 축소해야했습니다 ...
WallyWest

21

rot13 ~ 11 자

Uryyb Jbeyq

2019/2/12 :이 답변은 역사적 이유로 유지되며 더 이상 현재 사이트 규칙에 따른 유효한 답변이 아닙니다.


3
rot13은 언어입니까? : /
Santosh Kumar

3
예, 통역을 만들 수 있습니다 : P
oddcoder

6
기술적으로 rot13은 단지 암호 입니다. 그것은 Vigenère 암호만큼이나 많은 언어입니다.
XiKuuKy

19

배쉬, 30 25 자

tr G-t F-s<<<Ifmmp\ Xpsme

herestring 사용법에 대해 Peter Taylor에게 감사드립니다.


2
here 문자열을 사용하여 5자를 저장할 수 있습니다.tr G-t F-s<<<Ifmmp\ Xpsme
Peter Taylor

18

스칼라, 39

print ( "Qnuux)`x {um"map (_- 9 toChar)) 와 같은 솔루션 (35 문자) 은 규칙 1과 2를 위반합니다 ( "toChar"에는 "h"와 "r"이 모두 포함됨). 조금 힘든.

마지막으로 이것을 생각해 냈습니다.

print("䠀攀氀氀漀 圀漀爀氀搀"map(_.reverseBytes))

개선을위한 제안 환영


18

TeX, 95 바이트

세 번째 규칙을 어 깁니다.

\^^5pp^^%^^2^^#^^!^^3^^%{^^(}^^%^^,^^,^^/
\^^5pp^^%^^2^^#^^!^^3^^%{^^7}^^/^^2^^,^^$!
\^^%^^.^^$

tex filename.texdvi 출력 pdftex filename.tex을 얻거나 pdf를 얻으 려면 함께 실행하십시오 .


1
와우, TeX가 그렇게 난독 화 될 수 있다는 것을 결코 알지 못했습니다!
gar

14

> <> , 2 × 20 = 40 자

'mu{x`)xuunQ'>9-o?v;
            ;^?o-9< 

을 사용하지 않고 문자를 출력 할 수 없으므로 규칙 II를 위반 o합니다.


11

Windows PowerShell, 91 95 97 98

($OFS='')+('Qnuux)`x{um'|% t*y|%{"[convert]::"+([convert]|gm -s t*r).name+"($($_-9))"|iex})

규칙 II 만 위반합니다.

매우 악하다 char이미 두 가지 규칙 위반 .

그리고 이것도 일하기 어려웠습니다.

  • 첫 번째 라인은 설정 $OFS''공백 항목 사이 나타나지 않는 문자열 배열을 전송할 때 그렇게.
  • char실제로 캐스팅 은 모두의 가장 어려운 부분이었고 나는 하루 종일 길을 찾고 있습니다. 나는 나머지 모든 것이 잘 작동하지만 일단 계산을하면 ints가 아닌 chars를 갖습니다 . 그것들을 줄에 다시 넣는 것은 다소 어려웠습니다.
  • 나는 Invoke-Expression필요없이 호출하는 방법을 찾았습니다 e.

    &(gcm i?x)
    

    그러나 그것은 여전히 ​​논쟁의 여지가 없었다. 그리고 나는 그때까지 세 가지 규칙을 모두 만족시키는 나의 목표를 버렸습니다. 또한 특히 캐스팅에 도움이되지 않았습니다 char.

  • 최신 PowerShell 버전으로 약간 단축되었습니다. 그러나 슬프게도 결과를 만들어내는 유용한 다른 방법은 없었습니다.


여기에는 여전히 "o"와 "e"가 많이 있고 "r"이 있습니다. 그래도 내가 그것을 청소하는 것이 훨씬 나을지 확신 할 수 없습니다. 아직 촬영해야 할 수도 있습니다.
Iszi

규칙을 다시 읽으면됩니다. 세 가지 규칙 세트 중 두 가지만 충족하면됩니다. 좋은 쇼! 우리가 3/3가 걸리는 것을 생각해 낼 수 있다면 엄청나게 좋을 것입니다.
Iszi

이미이 시점에 도달 할 시간이 많았지 만 여전히 모든 규칙을 따를 수 있을지 의심됩니다.
Joey

10

PHP (16 바이트)

이전 PHP 예제가 충분히 난독 화되지 않았으므로 좀 더 난독하게 난독 화 된 예제 (경고, 난독 화!)를 보자. 또한 GolfScript 예제를 작게 복사하는 것을 제외하고는 명백하게 복사합니다 (가능합니까?). 이 항목은 PHP 5.4 또는short_open_tag . 이것을 만드는 동안 규칙이 깨지지 않았습니다. 실제로이 항목에는 ASCII 문자 나 숫자가 포함되어 있지 않습니다.

이 예제는 어떤 규칙도 위반하지 않습니다. 즐기세요 파일을 생성하려면 다음 명령을 실행하십시오.

printf "<?=~\xb7\x9a\x93\x93\x90\xdf\xa8\x90\x8d\x93\x9b;" > obfus.php

또는 printf명령 실행을 신뢰하지 않는 경우 파일의 Base64 덤프를 준비했습니다.

PD89freak5OQ36iQjZObOw==

규칙을 생성하는 두 가지 방법 모두 규칙을 위반한다고 생각한다면 Dropbox에 파일 생성 했습니다 .

그리고 그것을 실행합니다.

php obfus.php

결과 파일은 16 바이트 여야합니다. 재미있게 실행하십시오. E_NOTICE경고가 활성화 된 경우 알림이 표시됩니다. 그냥 무시하고 고치면 낭비 될거야두 문자하나의 문자 ( @결국 연산자 를 사용할 수 있음 ) 결과 Base64가 덜 멋지게 보입니다.


9

공백 (167 자)

WS 프로그램을 얻으려면 다음 문자열에서 S, T, L을 각각 공백, 탭 또는 줄 바꿈 문자로 바꾸십시오.

SSSTSSTSSSLTLSSSSSTTSSTSTLTLSSSSSTTSTTSSLTLSSSSSTTSTTSSLTLSSSSSTTSTTTTLTLSSSSSTSSSSSLTLSSSSSTSTSTTTLTLSSSSSTTSTTTTLTLSSSSSTTTSSTSLTLSSSSSTTSTTSSLTLSSSSSTTSSTSSLTLSSLLL

또는 텍스트 파일 hello.ws 에서 "raw"공백 전용 프로그램을 다운로드하십시오 .

이 WS 인터프리터에 의해 실행될 때이 프로그램은 "Hello World"를 인쇄합니다.

설명 (여기에서 공백은 무시하십시오!) :

SSS TSSTSSSL TLSS  <-- output H (ascii code 72 in decimal, 1001000 in binary) 
SSS TTSSTSTL TLSS  <-- output e (ascii code 101 in decimal, 1100101 in binary) 
SSS TTSTTSSL TLSS  <-- etc
SSS TTSTTSSL TLSS
SSS TTSTTTTL TLSS
SSS TSSSSSL TLSS
SSS TSTSTTTL TLSS
SSS TTSTTTTL TLSS 
SSS TTTSSTSL TLSS 
SSS TTSTTSSL TLSS
SSS TTSSTSSL TLSS 
LLL                <-- end the program

"중간"문자열 (예 TSSTSSSL:) 은 "Hello World"의 연속 문자에 대한 ASCII 코드 (2 진, S0, T1)입니다. 접두사 SSS는 그 뒤에 오는 숫자 (로 끝나는 숫자 L)를 스택으로 푸시합니다. TLSSASCII 코드가 스택 위에있는 문자를 출력합니다. 마지막 으로이 학습서 에 따르면 LLL인터프리터가 완전히 종료 하려면 프로그램을 종료해야합니다 .

NB : 다른 WS 프로그램 항목은 "Hello, world of spaces!"를 인쇄하는 1287 자 프로그램이므로 별도의 답변으로 입력하고 있습니다. 필요한 "Hello World"대신.


8

루비-63 자

puts [%w{G d k k n},%w{V n q k c}].map{|l|l.map(&:succ)*''}*' '

# 1, 휴식
John Dvorak

그리고 더 짧은 : puts "Gdkkn~Vnqkc".split("").map(&:succ)*''-43
Biketire

7

C, 160 자

4 바이트 int가있는 리틀 엔디안 머신에서만 작동합니다.

main(){int a='a',b=a/a,c=b+b,f=c+c,g=f+f,i=g+g,j=i*i,k=j*j,m=a+g+b+c,n=m+b+c;int p[]={a+g-b+(a+f)*j+m*k*(j+b),n+i*c*j+k*(n+g+n*j),a+i+b+m*j+(a+f-b)*k};puts(p);}

세 가지 규칙을 모두 충족합니다.


1
0,1,2,7 :-111 p[];main(){p={(5*5*5*5*5*64+96696)*(443+5688),(5*3*4*3+4-3)*(66*45*6-6*6-4+3)*8‌​3*(3+4),6544494+36868};puts(p);}문자 없이 숫자 상수를 사용할 수 있습니다 .

1
비슷한 맥락에서 (실제로 몇 가지 다른 방법으로 문제를 해결했습니다). x[]={45483*39994-3958,48465*38543-5584,6584695-3333};main(){puts(x);}-69 자 리터럴을 좀 더 수학적으로 표현할 수있는 시간이 더 주어지면 약간 더 면도 할 수 있다고 확신합니다. 어쨌든 몇 시간을 보내는 재미있는 방법이었습니다 :)
Cole Cameron

7

PHP, 28 바이트

정확히 난독 화되지는 않지만 매우 짧고 명백합니다 :). 문자를 제한 할 때에도 프로그램을 매우 쉽게 따라갈 수 있음을 보여줍니다. 제약 조건 1과 3이 뒤따 랐습니다. 구속 조건 2가 남용되었습니다.

<?=str_rot13('Uryyb Jbeyq');

short_open_tagPHP 5.4 이상을 사용하지 않는 한이 설정 이 필요합니다 . 어쩌면 일부 예제는 더 짧을 수도 있지만이 예제는 매우 짧은 것 같습니다.


7

bash 28 자 :

printf 'p|ɹ°M ο||ǝ%b'"\x48"

p | ɹοM ο || ǝH

또는 / bin / echo (18 자) *)를 사용하여 아래 설명을 참조하십시오.

/bin/echo -e 'p|ɹοM ο||ǝ\0110'

자가 진단:

echo "printf 'p|ɹοM ο||ǝ%b' "\x48"" | egrep -i "[^hlwd27eor01]"

thougth보다 어렵다! 도구는 단어를 거꾸로 뒤집기 위해 'H'또는 'o'를 거꾸로 뒤집은 것이 H 또는 o로 표시되는 것이 가장 좋다고 생각합니다. 이것은 각각 그룹 1 (Hlwd : 27 : eor01)과 충돌합니다 .3.

H로 표시 가능

echo -e "\0127"

그러나 01과 2도 중독되었습니다. 사람! 그러나 bash-buildin echo에는 8 진 ASCII 값을 표시하는 옵션뿐만 아니라 16 진법도 있습니다.

echo -e "\x48"

그러나 bash를 프로그래밍 언어로 사용하는 경우 echo 명령은 프로그램의 일부로, 문자 수뿐만 아니라 그룹 1과 3의 중독 문자 (hlwd : 27 : eor01) eho도 포함합니다.

에코가 죽은 순간입니다. 다행히도 "% b"를 표시하는 printf가 있습니다.

r은 printf에서 유일하게 문제가되는 문자이며 그룹 3에 속합니다. 'o'는 마지막 그룹에 있으므로 Hello와 World에 그대로 둘 수 있지만 omicron을 사용할 수 있습니다 o처럼 보이는 ° &deg;.

연결:


이것을 공언하지만 당신의 평판은 너무 거칠다.
Konrad Borowski

@GlitchMr : 이제 당신은 할 수 있습니다-나는 투표를했고, 500N이 보일 것입니다. :)
사용자가 알 수 없음

dl.dropbox.com/u/63913412/stilltooleet.png . 또한, 하향식 질문은 명성을 떨어 뜨리지 않습니다. 그럼에도 불구하고 하향식 답변은 없습니다.
Konrad Borowski

@GlitchMr : 아, 그게 다야! :)
사용자가 알 수 없음

6

C (94)

리틀 엔디 언 머신에서 :

main(){int i[]={1819043144,((0x1bc5c81b|1<<0x14)*4)+3,0xa646c00|(0x39<<1),0};printf("%s",i);}

규칙 II를 위반하지만 나머지는 충족합니다.


6

자바 스크립트-132 자

(_=(_=[][(f=!!(_='')+_)[3]+(b=({}+_)[(I=-~(z=_-_))])+($=(c=(d=!_+_)[I])+d[z])])())[f[I]+'l'+(a=d[3])+$]("H"+a+'ll'+b+' W'+b+c+'ld')

규칙 I을 어기다

사용법 :

  • "javascript : [script]"를 브라우저 주소 표시 줄에 붙여 넣기
  • 빈 HTML 페이지를 만들고 스크립트를 태그에 붙여 넣습니다.

규칙 1과 2를 모두 해제합니다. 배열에 숫자 1을 사용하고 있습니다.
케빈 브라운

당신은 대체 할 수 1!![]+![]0의한 ""-""규칙 # 2를 중단하지 않습니다 수 있습니다.
HoLyVieR

@ Bass5098과 @HoLyVieR 덕분에 스크립트를 최소화 할 때 1과 0을 놓쳤습니다. 0을 z = _-_로
바꾸고

3
응? !![]+![]? 왜 안돼 4-3?
Timwi

4
@Timwi : 더 난독 화
Thomas Eding

6

Dis , 102 83 자

5 회 미만의 연속 조작으로 문자를 생성 할 수 있으므로 코드 루프를 풀었습니다. 누산기 값을 재사용하여 몇 개의 문자를 저장했습니다. 두 개 l는 연속적이며 SPACE에서 생성 od생성 될 수 있습니다 l.

*>|||{>|||{>||{{>|{|||{>||{>|{>|||{>||{||{!!>**_!!}|_}!^__}|__>*__}|_}|_>!!|_}!^__!

구 버전

^}!>^^_^!__!>_^!^^**_^!^^**_
^_!{**_^__!{>_^__{>>!^_!{**_
^_!>^*_^!^^**_^_^^**_*______
___________>||||{^

아래에 의견이 있습니다. Hello World한 번의 회전과 네 번의 감산으로 모든 문자를 생성하기 위해 5 개의 동일한 연산 시퀀스를 사용합니다 .

^     (move code pointer to data pointer value '^')
}!>^^ (store 'H' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
!__!> (store 'e' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
!^^** (store 'l' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
!^^** (store 'l' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
_!{** (store 'o' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
__!{> (store ' ' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
__{>> (store 'W' in accumulator)
!     (program termination)
^     (data pointer value used by code pointer jump)
_!{** (store 'o' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
_!>^* (store 'r' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
!^^** (store 'l' in accumulator)
_     (no-op)
^     (data pointer value used by code pointer jump)
_^^** (store 'd' in accumulator)
_     (no-op)
*     (data pointer value used by code pointer jump to reach '!' between 'W' and 'o')
________________ (no-ops)
_     (no-op, address '^')
>|||| (rotate data value and perform four subtractions)
{     (print value in accumulator)
^     (move code pointer to data pointer value '^' except for the last jump '*')

6

C : 162 자 (불필요한 줄 바꿈 제외)

이 글을 쓸 때 가독성과 투명성을 선택했습니다.

a[3],b;main(){b=99
+9;b+=b<<8;b=b<<8|
97|4;b=b<<8|64|8;a
[3^3]=b;b=78+33<<8
;b+=87;b=b<<8|35^3
;b=b<<8|64|47;a[5^
4]=b;b=97+3<<8;b+=
99+9;b=b<<8|66|48;
a[6^4]=b;puts(a);}

세 가지 요구 사항을 모두 충족합니다.


1
나는 이것을 좋아하지만 불행히도 7규칙 # 3을 위반 하는 숫자가 포함되어 있기 때문에 모든 규칙을 만족하지는 않습니다 . 그러나 쉽게 제거 할 수있을 것입니다 7. 또한 몇 가지 추가로 int들, 그리고 몇 가지 추가 괄호를 추가하고 추가 int puts(int*);처음으로, 그것으로 컴파일 gcc -ansi -W -Wall단 하나의 경고 : 제어 void가 아닌 함수의 끝에 도달 .
pts

5

배쉬, 24 20 자

"bsdgames"패키지가 설치되어 있어야합니다.

rot13<<<Uryyb\ Jbeyq

감사합니다 gnibbler :)


5

포스트 스크립트, 41 자

<64><~+BNK%C]~><48656c6c6f>3{print}repeat

용법: $ gs -q -dNOPROMPT -dNODISPLAY filename.ps


1
다음과 같이 실행할 수도 있습니다.gsnd -q -- filename.ps
luser droog

5

자바 스크립트, 66 자

또 다른 JavaScript 솔루션으로 이번에는 규칙 # 2를 위반했습니다.

top[(U=unescape)('a%6cert')](U('%48e%6c%6co %5'+(6+1)+'or%6c%64'))

위의 내용은 Hallvabo의 답변 뒤에 숨겨진 개념을 따릅니다. 그 접근 방식을 따라 잡기 전에 논란의 여지가 많은 버전을 사용했습니다.

top[8680439[n='toString'](30)]((16+1)[n](z=8*4)[u='toUpperCase']()
+15960[n](33)+'o '+z[n](33)[u]()+1155505[n](36))

또한 규칙 # 2를 위반하고 114 자입니다. (이 두 번째 솔루션에서는 가독성을 위해 캐리지 리턴을 제거하십시오.)


4
나는 그것을 R로 읽었습니다 unescape.
Mateen Ulhaq

@MateenUlhaq 나는 항상 R로 읽었고 unescape10 년 전에 1 년 동안 만 뛰었습니다 ... 나에게 무슨 문제가 있습니까?
Mwr247

5

하스켈, 38

제약 조건 1과 3이 뒤따 랐습니다.

main=putStr$map succ"G\x64kkn\USVnqkc"

4

푸리에, 39 바이트

8*9a99^^a+6^aa~q+3a33va86^aq+3a+3aqa-8a

푸리에는 항상 난독 화됩니다. 이 모든 것을 따른다 규칙을 .

고장:

8*9a    Set the accumulator to 8, multiply it by 9, and print the 
        corresponding ASCII code.

99^^a   Set the accumulator to 99, increment it twice, and print the
        corresponding ASCII code.

+6^aa   Add 6 to the accumulator, increment it, and print the
        corresponding ASCII code twice.

~q      Set the variable q to the current value of the accumulator.

+3a     Add 3 to the accumulator and... I think you get the idea.

33va    Set the accumulator to 33, decrement it, and print ASCII.

86^a    Yes, okay, I think it's obvious by this point.

q+3a    Set the accumulator to the value of q (earlier set to 108),
        add 3, and print ASCII.

+3a     ...

qa      Invoke q again and print ASCII.

-8a     Subtract 8 from the accumulator and print ASCII.

이것은 약간 개선 될 수 있습니다.


Woah, 나는 단지 다른 누군가가 Fourier : D Nice one을 사용했다는 것을 깨달았습니다. +1
Beta Decay
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.