Xin chào thế giới


123

Tạo chương trình che giấu ngắn nhất có thể hiển thị dòng chữ "Hello World".

Để được coi là một chương trình bị xáo trộn, nó phải đáp ứng ít nhất hai trong số các yêu cầu sau:

  • Không chứa các ký tự: h, l, wdtrong mọi trường hợp
  • Không chứa các ký tự: e, o, r, 0, và 1trong mọi trường hợp
  • Không chứa các ký tự: 2hoặc7

Đầu vào:
không có

Đầu ra:
Hello World


6
Tôi đoán importtrong python không được phép.
Alexandru

26
Những quy tắc này cũng áp dụng cho các từ khóa ngôn ngữ?
hallvabo

8
là những trường hợp hạn chế không nhạy cảm?
oenone

20
Ai đó có thể giải thích tại sao 2 và 7 không được phép? Tôi chỉ tò mò vì tôi không thấy lý do tại sao những người được chọn đặc biệt.
Thomas Eding

4
@trinithis, và những người khác, ký tự ASCII 72"H"đó là lý do tôi đã chọn hai
Kevin Brown

Câu trả lời:


51

GolfScript, 17 ký tự

'· Š Ổn ?? ߨ ????

Khi kiểm tra trình này, vui lòng lưu tệp dưới dạng nhị phân thẳng, không phải UTF-8. Gặp sự cố khi tạo lại tập tin? Đây là hexdump của nó:

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

1
Mặc dù tôi muốn nghĩ rằng đó là một giải pháp rõ ràng, nhưng nếu bạn chưa rõ về cách thức hoạt động của mục này, bạn có thể đọc spoiler này: chat.stackexchange.com/transcript/message/442257#442257 :-)
Chris Jester -Young

12
Đó không phải là ISO-8859-1, thực ra là Windows-1252.
Konrad Borowski

@GlitchMr: Tôi thực sự khá chắc chắn rằng bài dự thi cũng chứa các ký tự nằm ngoài Windows-1252. ;-)
Chris Jester-Young

@xfix Nó thực sự không phải là Windows-1252. Mặc dù Windows-1252 có nhiều ký tự hợp lệ hơn ISO-8859-1, mục nhập của tôi chứa các ký tự, chẳng hạn như 0x8D và 0x90, cũng không hợp lệ trong Windows-1252.
Chris Jester-Young

Đủ công bằng, quên rằng một số nhân vật không được phép trong Windows-1252.
Konrad Borowski

171

Perl

Vì câu trả lời rõ ràng sử dụng dịch chuyển của một số loại, tôi cảm thấy bắt buộc phải đăng một cái gì đó bằng Acme :: EyeDrops , tuy nhiên với sức mạnh thêm tôi nghĩ rằng tôi nên vui hơn một chút.

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

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

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

Hãy cẩn thận

Kể từ phiên bản Perl 5.18, cơ chế cho phép mã này chạy đã trở nên mạnh mẽ đến mức nó đã bị tắt theo mặc định để ngăn chặn việc sử dụng sai. Do đó, trên các phiên bản 5.18+, bạn có thể thêm use re 'eval';vào đầu tập lệnh hoặc, nếu tập lệnh được đặt tên, world.plbạn có thể chạy nó như thế nào perl -Mre=eval world.pl. Thật đáng tiếc rằng những nhân vật khó coi này phải được thêm vào, nhưng đó là la vie. (Lưu ý: Tôi muốn nhấn mạnh rằng việc bật tính năng này không sử dụng một số thư viện hoặc addon, mã được hiển thị là mã Perl hợp lệ, cơ chế đơn giản là không còn được bật theo mặc định).


1
Tôi đã thử nó và nó chỉ là tuyệt vời! 1
Tomas

2
@TomasT. cảm ơn, thật vui khi làm điều đó và thực sự phải mất một số hoạt động đánh gôn để có được điều đó chỉ trong 3 bức ảnh!
Joel Berger

1
FYI Nó sử dụng tính năng regrec Perl (?{ code })để đánh giá mã Perl tùy chỉnh trong khi khớp regrec. Mã Perl tùy chỉnh in thông báo. Thật tuyệt vì nó không vi phạm bất kỳ quy tắc nào.
pts

5
Thưa ngài, là vua thế giới xin chào!
đệ quy.ninja

1
Ồ Chỉ là wow! Bây giờ tôi cần học Perl chỉ để xem bạn đã làm điều đó như thế nào.
Gryphon

69

C # (175 ký tự)

Đó là một thách thức lớn để làm điều này trong C # vì các hạn chế loại trừ bất kỳ việc sử dụng khá nhiều từ khóa phổ biến. C # có thể sử dụng các chuỗi thoát Unicode \ uxxxx trong các định danh, nhưng không may là không có trong các từ khóa.

Tôi nghi ngờ rằng giải pháp này chỉ hoạt động khi được biên dịch dựa trên .NET 4.0. Xem giải thích cho lý do tại sao.

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;}}

Giải trình

// 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;
    }
}

Bạn có thể sử dụng Urithay vì objectcho b. Bạn có thể sử dụng \xHHtrong chuỗi thay vì \u00HHnơi không rõ ràng ( \xcó độ dài thay đổi). Về ý nghĩ thứ hai, bạn hoàn toàn không cần bvà chỉ có thể sử dụng lại clàm đối số đầu tiên Invoke. MSDN nói rằng đối với các phương thức tĩnh, đối số đầu tiên bị bỏ qua. Điều này mang lại cho tôi xuống 175 cho tôi.
Joey

@Joey: Whoa, cảm ơn! Mặc dù nếu đối số đầu tiên Invokecó thể là bất cứ điều gì, thì nó thậm chí không cần c, nó có thể là 0... :)
Timwi

Có, nhận thấy rằng khi tôi cố gắng nội tuyến c(điều đáng buồn là không hoạt động vì newyêu cầu e.Split('x')quá dài (xuất hiện lúc 177).
Joey

Tôi không biết điều này là có thể. +1
Igby Largeeman

1
Điều rất thông minh bạn đã làm với GetMethods. +1
Soham Chowdhury

51

BrainFuck, 106 nét

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

Đáp ứng tất cả các quy tắc và nó chắc chắn bị xáo trộn.


2
Tôi nghĩ rằng tôi vẫn có thể đánh nó xuống một chút, nhưng điều đó sẽ phải đợi cho đến khi tôi ngủ một chút.
R. Martinho Fernandes

34
Không phải BrainFuck bị xáo trộn bởi định nghĩa của nó sao?
mbx

18
Bất kỳ lập trình viên BF có năng lực nào cũng có thể nhận ra điều này ...
Mehrdad

Điều này phá vỡ cả hai quy tắc 1 và 2: D
Thomas Eding

8
Brah, Được bảo vệ bởi cộng đồng , dù gì đi nữa, ++++++++++[>++++++>+++<<-]>++++++++++++.---.+++++++..+++.>++.<++++++++.--------.+++.------.--------.chỉ là 100 nét, của tôi tốt hơn của bạn
OverCoder

44

Javascript, 2595

Điều này chỉ phá vỡ quy tắc 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
Tôi đã thử nó trên UglifyJS trên nó nhưng nó đã lưu -2574 byte.
Konrad Borowski

12
Tôi không biết tôi đang nhìn gì ở đây.
Bob

6
@Bob = Javascript bị xáo trộn. Gợi ý: nó bắt đầu bằng cách gán một biểu thức chính quy (cụ thể là '/ ` m m) ~ ┻ ┻ /') cho một biến có tên `゚ ω ゚ ノ. That's followed by a comment and the expression ['_']` trong ngữ cảnh void. Sau đó, biến o(cùng với _(゚ー゚)) được gán giá trị 3. Nó tiếp tục trong tĩnh mạch đó, thực hiện rất nhiều công việc vô hại mà không có hiệu quả và sử dụng các cách làm tròn để thực hiện công việc dự định (gọi alert("Hello world")) không rõ ràng thời trang.
Mark Reed


40

Khối Befunge-93 - 10x9

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

Lấy làm tiếc. :CƯỜI MỞ MIỆNG

Tôi đã không đi đến kích thước nhỏ ở đây, tôi đã cố gắng thực sự XÁC NHẬN mã bằng cách bao gồm càng nhiều khuôn mặt cười và tiếng ồn càng tốt! :CƯỜI MỞ MIỆNG

Nên đi với quy tắc 2 và 3.


18
"@_@" Tôi bật cười.
Wug

35

Golfscript - 17 ký tự

Dễ dàng sao chép / dán hơn Chris '

'Ifmmp!Xpsme'{(}%

Về cơ bản một mật mã caesar dịch chuyển bởi 1 char


4
+1 Đẹp vì đơn giản hơn để sao chép. Mine có lợi thế là không vi phạm bất kỳ quy tắc nào, và cũng có thể (có lẽ, tùy thuộc vào việc các ký tự bit cao được tính là biểu tượng) có hoàn thành biểu tượng golf hay không. :-)
Chris Jester-Young

Làm thế nào để phá vỡ một quy tắc?
d -_- b

11
@sims, nó có một etrong đó
gnibbler

2
HAI của ba. : D
Cướp

30

Con trăn

Quy tắc I & III (34 ký tự)

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

Quy tắc I & III, thay thế (39 ký tự)

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

Quy tắc II & III (37 ký tự)

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

Quy tắc I và II (50 ký tự)

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

Tất cả ba quy tắc (58 ký tự)

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

1
đã xóa câu trả lời của tôi, tôi nghĩ rằng bạn là toàn diện hơn.
st0le

+ 1, tác phẩm tuyệt vời nhưng không có gì ngạc nhiên khi tôi thấy bạn chơi gôn :-)
Quixotic

Bạn cần phải import codecstrước khi bạn có thểcodecs.decode
mèo

Bạn có thể loại bỏ các parens trong giải pháp đầu tiên
Cyoce

23

JavaScript, 365 ký tự

Sau khi xem giải pháp Perl của Joel Berger, tôi cảm thấy bắt buộc phải tự mình thực hiện một số hoạt động nghệ thuật ASCII ... JavaScript, không sử dụng chữ số và trái ngược với đầu ra của JSFuck, nó thực sự có kích thước hợp lý.

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

bạn có thể vui lòng hiển thị số lượng ký tự trong mã của bạn trong tiêu đề không? Tôi tò mò muốn xem có bao nhiêu bạn đã nhận được nó ...
WallyWest

@ Eliseod'Annunzio bạn đi, tôi quên rằng đây là môn đánh gôn. Độ dài được đưa ra với khoảng trắng bị tước và cuối cùng ($)biến thành ()(vì tôi đã thêm $cho đối xứng).
FireFly

Cảm ơn lời khuyên của bạn ... Tôi đã phải thay đổi kích thước mã của mình để giải thích cho "W" và sau đó thu nhỏ lại bằng lời khuyên của bạn ...
WallyWest

21

thối13 - 11 ký tự

Uryyb Jbeyq

2019/2/12: Câu trả lời này đang được lưu giữ vì lý do lịch sử và không còn là câu trả lời hợp lệ theo quy tắc trang web hiện tại.


3
Rot13 có phải là ngôn ngữ không? : /
Santosh Kumar

3
có và tôi có thể tạo trình thông dịch của nó: P
lẻcoder

6
Về mặt kỹ thuật, rot13 chỉ là một mật mã . Nó là một ngôn ngữ như một mật mã Vigenère.
XiKuuKy

19

Bash, 30 25 ký tự

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

Cảm ơn Peter Taylor cho việc sử dụng herestring.


2
Bạn có thể lưu 5 ký tự bằng chuỗi ở đây:tr G-t F-s<<<Ifmmp\ Xpsme
Peter Taylor

18

Scala, 39

Các giải pháp như in ("Qnuux)` x {um "map (_- 9 toChar)) (35 ký tự) không phù hợp với quy tắc 1 và 2 (" toChar "chứa cả" h "và" r "), điều này làm cho hơi khó khăn.

Cuối cùng đã đưa ra điều này:

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

Đề xuất cải tiến chào mừng


18

TeX, 95 byte

Phá vỡ quy tắc thứ ba.

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

Chạy với tex filename.texđể có được một đầu ra dvi hoặc pdftex filename.texđể có được một pdf.


1
Wow, không bao giờ biết TeX có thể bị xáo trộn như vậy!
gar

14

> <> , 2 × 20 = 40 ký tự

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

Vi phạm Quy tắc II, vì tôi không thể xuất ký tự mà không sử dụng o.


11

Windows PowerShell, 91 95 97 98

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

Chỉ vi phạm Quy tắc II.

Thật là xấu xa khi tự mình charvi phạm hai quy tắc.

Và yike, cái này rất khó để làm việc.

  • Dòng đầu tiên được đặt $OFSthành ''như vậy khi truyền một mảng thành một chuỗi không có khoảng trắng xuất hiện giữa các mục.
  • Đóng vai charthực sự là phần khó nhất trong tất cả và tôi dành khoảng một ngày để tìm cách. Tôi đã làm tất cả phần còn lại hoạt động tốt nhưng một khi tôi tính toán chúng, tôi có ints, không phải chars. Đặt những thứ đó trở lại trong một chuỗi là khó khăn.
  • Tôi tìm thấy một cách để gọi Invoke-Expressionmà không cần ecũng như:

    &(gcm i?x)
    

    nhưng điều đó vẫn thiếu những lý lẽ. Và tôi đã vứt bỏ mục tiêu của mình là bão hòa cả ba quy tắc rồi. Ngoài ra, nó không đặc biệt giúp tôi trong việc đúc char.

  • Rút ngắn một chút với phiên bản PowerShell mới hơn. Tuy nhiên, không có cách khác nhau hữu ích để tạo ra kết quả nổi lên, thật đáng buồn.


Vẫn còn rất nhiều chữ "o" và "e" ở đây và chữ "r". Dù vậy, không chắc chắn tôi cũng có nhiều may mắn hơn trong việc dọn dẹp. Thỉnh thoảng có thể phải cho nó một phát súng.
Iszi

Chỉ cần đọc lại các quy tắc - chỉ cần hai trong số ba quy tắc được đáp ứng và điều này không đủ điều kiện. Chương trinh hay! Sẽ rất tuyệt vời nếu chúng ta có thể đưa ra một cái mất 3/3, nhưng tôi nghi ngờ điều đó rất có thể.
Iszi

Tôi đã mất rất nhiều thời gian để đi đến điểm này và tôi vẫn nghi ngờ có thể tuân theo mọi quy tắc.
Joey

10

PHP (16 byte)

Tôi đã nhận thấy rằng ví dụ PHP trước đây của tôi không bị xáo trộn đủ, vì vậy chúng ta hãy xem các ví dụ bị che giấu một cách trắng trợn hơn (cảnh báo, che giấu!). Ngoài ra, sao chép một cách trắng trợn ví dụ GolfScript, ngoại trừ làm cho nó nhỏ hơn (thậm chí có thể không?). Mục này yêu cầu PHP 5.4 hoặc short_open_tagđược kích hoạt. Không có quy tắc đã bị phá vỡ trong khi thực hiện điều này. Trên thực tế, mục này không chứa bất kỳ chữ cái hoặc chữ số ASCII nào.

Ví dụ này không phá vỡ bất kỳ quy tắc nào. Chúc vui vẻ. Để tạo tập tin, chạy lệnh sau.

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

Hoặc, trong trường hợp bạn không tin tưởng vào printflệnh đang chạy , tôi đã chuẩn bị kết xuất tệp Base64.

PD89freak5OQ36iQjZObOw==

Nếu bạn nghĩ rằng cả hai phương pháp để tạo ra nó đều phá vỡ quy tắc, thì tôi cũng đã tạo tệp trên Dropbox .

Và để chạy nó.

php obfus.php

Các tập tin kết quả nên có 16 byte. Hãy vui vẻ chạy nó. Xin lưu ý rằng nếu bạn đã E_NOTICEbật cảnh báo, nó sẽ hiển thị thông báo. Chỉ cần bỏ qua nó, sửa chữa nó sẽ lãng phíhai nhân vậtmột ký tự (tôi có thể sử dụng @toán tử, sau tất cả) và sẽ làm cho Base64 trông kém tuyệt vời hơn.


9

Khoảng trắng (167 ký tự)

Để có được chương trình WS, thay thế một ký tự Space, Tab hoặc Linefeed cho S, T, L, tương ứng, trong chuỗi sau:

SSSTSSTSSSLTLSSSSSTTSSTSTLTLSSSSSTTSTTSSLTLSSSSSTTSTTSSLTLSSSSSTTSTTTTLTLSSSSSTSSSSSLTLSSSSSTSTSTTTLTLSSSSSTTSTTTTLTLSSSSSTTTSSTSLTLSSSSSTTSTTSSLTLSSSSSTTSSTSSLTLSSLLL

hoặc tải xuống chương trình chỉ "khoảng trắng" trong tệp văn bản hello.ws .

Khi được trình thông dịch WS này thực thi , chương trình này sẽ in "Hello World".

Giải thích (bỏ qua khoảng trắng ở đây!):

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

Các chuỗi "giữa" (ví dụ TSSTSSSL) là các mã ascii (ở dạng nhị phân, với Ský hiệu 0, Tký hiệu 1) cho các chữ cái liên tiếp trong "Hello World". Tiền tố SSSđẩy số theo sau nó (chấm dứt bởi một L) lên ngăn xếp. TLSSxuất ra ký tự có mã ascii nằm trên cùng của ngăn xếp. Cuối cùng, theo hướng dẫn này , một chương trình phải kết thúc với LLLmột lối thoát sạch bởi trình thông dịch.

Lưu ý: Tôi đang nhập câu hỏi này dưới dạng câu trả lời riêng biệt, vì mục nhập chương trình WS khác là chương trình 1287 ký tự in "Xin chào, thế giới không gian!" thay vì yêu cầu "Hello World".


8

Ruby - 63 ký tự

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

phá vỡ # 1, mặc dù
John Dvorak

Và thậm chí ngắn hơn: puts "Gdkkn~Vnqkc".split("").map(&:succ)*''- 43
Biketire 7/07/2015

7

C, 160 ký tự

Chỉ hoạt động trên các máy cuối nhỏ có int 4 byte:

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);}

Đáp ứng cả ba quy tắc.


1
Bạn chỉ có thể sử dụng hằng số mà không cần 0,1,2,7: 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);}- 111 ký tự.

1
Tĩnh mạch tương tự (thực sự đã giải quyết vấn đề theo một vài cách khác nhau trước khi giải quyết vấn đề này). x[]={45483*39994-3958,48465*38543-5584,6584695-3333};main(){puts(x);}- 69 ký tự. Tôi chắc chắn rằng tôi có thể cạo râu thêm một chút nữa để có thêm thời gian để toán học thêm một số chữ. Dù sao thì cũng là một cách thú vị để dành một vài giờ :)
Cole Cameron

7

PHP, 28 byte

Không chính xác che giấu, nhưng rất ngắn và rõ ràng :). Cho thấy rằng ngay cả khi giới hạn các ký tự, bạn có thể thực hiện các chương trình rất dễ dàng. Các ràng buộc 1 và 3 theo sau. Ràng buộc 2 đã bị lạm dụng.

<?=str_rot13('Uryyb Jbeyq');

Lưu ý rằng điều này đòi hỏi phải short_open_tagđược đặt, trừ khi bạn đang sử dụng PHP 5.4 trở lên. Có thể một số ví dụ ngắn hơn, nhưng tôi nghĩ rằng ví dụ này khá ngắn.


7

bash 28 ký tự:

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

p | | | H

cách khác với / bin / echo (18 ký tự) *) xem thảo luận bên dưới.

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

Tự kiểm tra:

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

Khó hơn sự khó khăn! Các công cụ, để đảo ngược các từ bị đảo lộn, các công cụ nghĩ rằng 'H' hoặc 'o' bị đảo lộn được hiển thị tốt nhất là H hoặc o. Điều này sẽ mâu thuẫn với nhóm 1 (Hlwd: 27: eor01) tương ứng 3.

H có thể được hiển thị với

echo -e "\0127"

nhưng 01 và 2 cũng bị nhiễm độc. Trời ạ! Nhưng tiếng vang bash-buildin không chỉ có tùy chọn hiển thị các giá trị bát phân, mà cả thập lục phân:

echo -e "\x48"

Nhưng nếu chúng ta sử dụng bash làm ngôn ngữ lập trình, lệnh echo là một phần của chương trình, nó không chỉ đếm số lượng ký tự mà còn chứa các ký tự bị nhiễm độc (hlwd: 27: eor01) eho từ các nhóm 1 và 3.

Vì vậy, đây là thời điểm tiếng vang chết. May mắn thay, có printf, biết "% b" để hiển thị.

R là ký tự có vấn đề duy nhất trong printf và thuộc nhóm 3. Vì 'o' nằm trong nhóm cuối cùng, chúng tôi có thể để nó trong Hello và trong Thế giới, nhưng chúng tôi có thể sử dụng omicron trông giống như một o, hoặc ° &deg;.

Liên kết:


Sẽ nâng cao điều này, nhưng danh tiếng của bạn là quá nhỏ.
Konrad Borowski

@GlitchMr: Bây giờ bạn có thể - Tôi đã bỏ phiếu một cái gì đó, và nên được 500N. :)
người dùng không xác định

dl.dropbox.com/u/63913412/stilltooleet.png . Ngoài ra, các câu hỏi hạ thấp không làm giảm danh tiếng. Tuy nhiên, câu trả lời hạ thấp.
Konrad Borowski

@GlitchMr: Ah, vậy thôi! :)
người dùng không xác định

6

C (94)

Trên các máy Endian nhỏ:

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

Vi phạm quy tắc II, nhưng thỏa mãn phần còn lại.


6

JavaScript - 132 ký tự

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

Phá vỡ quy tắc tôi

Cách sử dụng :

  • Dán "javascript: [script]" vào thanh địa chỉ trình duyệt
  • Tạo một trang html trống, dán tập lệnh vào thẻ

Phá vỡ cả quy tắc 1 và 2. Bạn đang sử dụng số 1 cho các mảng.
Kevin Brown

Bạn có thể thay thế 1bằng !![]+![]0bằng cách ""-""để không phá vỡ quy tắc # 2.
HoLyVieR

Cảm ơn @ Bass5098 và @HoLyVieR, tôi đã bỏ lỡ 1 và 0 khi thu nhỏ tập lệnh. Tôi đã thay 0 bằng z = _-_ và 1 bằng I = - ~ z, tôi cũng có thể sử dụng ++ z, nhưng - ~ trông đẹp hơn :)
m0sa

3
Huh? !![]+![]? Tại sao không chỉ 4-3?
Timwi

4
@Timwi: Thêm sự xáo trộn
Thomas Eding

6

Dis , 102 83 ký tự

Không kiểm soát vòng lặp mã vì các chữ cái có thể được tạo ra với ít hơn năm thao tác liên tiếp. Đã lưu một vài ký tự bằng cách sử dụng lại giá trị bộ tích lũy: hai llà liên tiếp, SPACEcó thể được tạo từ odcó thể được tạo từ l.

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

Phiên bản cũ

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

Với ý kiến ​​dưới đây. Nó đang sử dụng một chuỗi năm thao tác giống hệt nhau để tạo ra tất cả các ký tự trong Hello World: một phép quay và bốn phép trừ.

^     (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 ký tự (không bao gồm các dòng mới không cần thiết)

Tôi đã chọn cho dễ đọc và minh bạch khi viết này.

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);}

Nó đáp ứng cả ba yêu cầu.


1
Tôi thích điều này, nhưng thật không may, nó không đáp ứng tất cả các quy tắc, vì nó chứa chữ số 7, vi phạm quy tắc số 3. Nhưng nó sẽ dễ dàng để thoát khỏi 7. Ngoài ra, bằng cách thêm một vài intgiây và thêm một vài dấu ngoặc đơn bổ sung và thêm int puts(int*);vào đầu, nó sẽ biên dịch gcc -ansi -W -Wallchỉ với một cảnh báo duy nhất: điều khiển đạt đến cuối hàm không trống .
pts

5

Bash, 24 20 ký tự

Bạn cần cài đặt gói "bsdgames".

rot13<<<Uryyb\ Jbeyq

Cảm ơn gnibbler :)


5

PostScript, 41 ký tự

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

Sử dụng: $ gs -q -dNOPROMPT -dNODISPLAY filename.ps


1
bạn cũng có thể chạy nó như sau:gsnd -q -- filename.ps
luser droog

5

JavaScript, 66 ký tự

Một giải pháp JavaScript khác, lần này phá vỡ quy tắc # 2.

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

Trên đây là khái niệm đằng sau câu trả lời của hallvabo. Trước khi tôi bắt kịp cách tiếp cận đó, tôi đã có phiên bản khó hiểu hơn:

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

cũng phá vỡ quy tắc số 2 và có tới 114 ký tự. (Hủy bỏ trả lại vận chuyển trong giải pháp thứ hai này vì nó chỉ ở đó để dễ đọc.)


4
Tôi đọc mà như R unescape.
Mateen Ulhaq

@MateenUlhaq Tôi luôn đọc nó là R unescape, và tôi chỉ chơi được một năm hơn một thập kỷ trước ... Có chuyện gì với tôi vậy?
Mwr247

5

Haskell, 38

Các ràng buộc 1 và 3 theo sau.

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

4

Fourier, 39 byte

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

Fourier luôn bị xáo trộn. Điều này tuân theo tất cả các quy tắc.

Phá vỡ:

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.

Điều này có thể được tinh chế một chút.


Ái chà, tôi chỉ mới nhận ra rằng ai đó đã sử dụng Fourier: D Nice one, +1
Beta Decay
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.