Hello World yang dikaburkan


123

Buat program sesingkat mungkin yang sesingkat mungkin yang menampilkan teks "Hello World".

Agar dapat dianggap sebagai program yang dikaburkan, ia harus memenuhi setidaknya dua persyaratan berikut:

  • Tidak mengandung karakter: h, l, wdan ddalam hal apapun
  • Tidak mengandung karakter: e, o, r, 0, dan 1dalam hal apapun
  • Tidak mengandung karakter: 2atau7

Masukan:
tidak ada

Keluaran:
Hello World


6
Saya kira importdalam python tidak diizinkan.
Alexandru

26
Apakah aturan ini berlaku untuk kata kunci bahasa juga?
hallvabo

8
apakah batasan case tidak sensitif?
Oenone

20
Bisakah seseorang menjelaskan mengapa 2 dan 7 tidak diperbolehkan? Saya hanya ingin tahu karena saya tidak melihat mengapa mereka dipilih secara khusus.
Thomas Eding

4
@trinithis, dan lain-lain, karakter ASCII 72adalah "H"yang adalah mengapa saya memilih dua
Kevin Brown

Jawaban:


51

GolfScript, 17 karakter

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

Saat menguji pengiriman ini, harap simpan file tersebut sebagai biner langsung, bukan UTF-8. Mengalami masalah saat membuat ulang file? Inilah hexdump-nya:

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

1
Meskipun saya ingin berpikir ini adalah solusi yang jelas, jika Anda sama sekali tidak jelas tentang cara kerja entri ini, Anda dapat membaca spoiler ini: chat.stackexchange.com/transcript/message/442257#442257 :-)
Chris Jester -Young

12
Ini bukan ISO-8859-1, ini sebenarnya Windows-1252.
Konrad Borowski

@GlitchMr: Saya sebenarnya cukup yakin kiriman berisi karakter yang berada di luar Windows-1252 juga. ;-)
Chris Jester-Young

@xfix Ini juga bukan Windows-1252. Meskipun Windows-1252 memiliki karakter yang lebih valid daripada ISO-8859-1, entri saya mengandung karakter, seperti 0x8D dan 0x90, yang juga tidak berlaku di Windows-1252.
Chris Jester-Young

Cukup adil, lupa bahwa beberapa karakter tidak diizinkan di Windows-1252.
Konrad Borowski

171

Perl

Karena jawaban yang jelas menggunakan semacam pergeseran, saya merasa berkewajiban untuk memposting sesuatu menggunakan Acme :: EyeDrops , namun dengan kekuatan ekstra saya pikir saya harus sedikit lebih menyenangkan.

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

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

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

Peringatan

Sejak Perl versi 5.18, mekanisme yang memungkinkan kode ini dijalankan telah menjadi sangat kuat sehingga telah dinonaktifkan secara default untuk mencegah penyalahgunaan. Oleh karena itu pada versi 5.18+ Anda dapat menambahkan use re 'eval';ke bagian atas skrip atau, jika skrip tersebut bernama world.plAnda dapat menjalankannya seperti perl -Mre=eval world.pl. Sangat disayangkan bahwa karakter yang tidak sedap dipandang ini harus ditambahkan, tetapi c'est la vie. (Catatan: Saya ingin menekankan bahwa mengaktifkan fitur ini tidak menggunakan beberapa pustaka atau addon, kode yang ditampilkan adalah kode Perl yang valid, mekanismenya tidak lagi diaktifkan secara default).


1
Saya mencobanya dan ini luar biasa! +1
Tomas

2
@ Thomas. terima kasih, itu menyenangkan untuk dilakukan, dan itu benar-benar mengambil beberapa golf untuk menjalankannya hanya dalam 3 gambar!
Joel Berger

1
FYI Menggunakan fitur Perl regexp (?{ code })untuk mengevaluasi kode Perl kustom saat pencocokan regexp. Kode Perl kustom mencetak pesan. Itu bagus karena tidak melanggar aturan apa pun.
Poin

5
Anda tuan, adalah raja dunia halo!
recursion.ninja

1
Wow! Cuma wow! Sekarang saya perlu belajar Perl hanya untuk melihat bagaimana Anda melakukannya.
Gryphon

69

C # (175 karakter)

Itu cukup sulit untuk melakukan ini di C # karena pembatasan menghalangi penggunaan kata kunci umum yang cukup banyak. Dimungkinkan dalam C # untuk menggunakan urutan pelarian \ uxxxx Unicode dalam pengidentifikasi, tetapi sayangnya tidak dalam kata kunci.

Saya menduga bahwa solusi ini hanya berfungsi ketika dikompilasi dengan .NET 4.0. Lihat penjelasan mengapa.

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

Penjelasan

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

Anda bisa menggunakan Uribukan objectuntuk b. Anda dapat menggunakan \xHHdalam string daripada di \u00HHmana itu tidak ambigu ( \xpanjang variabel). Setelah dipikir-pikir, Anda tidak perlu bsama sekali dan hanya dapat menggunakan kembali csebagai argumen pertama Invoke. MSDN menyatakan bahwa untuk metode statis argumen pertama diabaikan. Ini membawanya ke 175 untuk saya.
Joey

@ Joey: Wah, terima kasih! Meskipun jika argumen pertama untuk Invokebisa apa saja, itu tidak perlu bahkan c, bisa jadi 0... :)
Timwi

Ya, perhatikan bahwa ketika saya mencoba untuk berbaris c(yang sayangnya tidak bekerja karena newmembutuhkan edan .Split('x')terlalu lama (keluar pada 177)
Joey

Saya tidak tahu ini mungkin. +1
Igby Largeman

1
Anda sangat cerdas dengan hal itu GetMethods. +1
Soham Chowdhury

51

BrainFuck, 106 pukulan

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

Memenuhi semua aturan dan itu pasti dikaburkan.


2
Saya pikir saya masih bisa bermain golf sedikit, tapi itu harus menunggu sampai saya tidur.
R. Martinho Fernandes

34
Bukankah BrainFuck dikaburkan oleh definisinya?
mbx

18
Setiap programmer BF yang kompeten akan dapat mengenali ini ...
Mehrdad

Ini melanggar kedua aturan 1 dan 2: D
Thomas Eding

8
Brah, Dilindungi oleh komunitas , apa pun, ++++++++++[>++++++>+++<<-]>++++++++++++.---.+++++++..+++.>++.<++++++++.--------.+++.------.--------.hanya 100 pukulan, milikku lebih baik dari milikmu
OverCoder

44

Javascript, 2595

Ini hanya melanggar aturan 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
Saya mencobanya di UglifyJS di atasnya tetapi ia menyimpan -2574 byte.
Konrad Borowski

12
Saya tidak tahu apa yang saya cari di sini.
Bob

6
@ Bob = Javascript yang dikaburkan. Petunjuk: ini dimulai dengan menetapkan literal ekspresi reguler (yaitu '/ ` m´) ノ ~ ┻━┻ /') ke variabel dengan nama `゚ ω ゚ ノ. That's followed by a comment and the expression ['_']` dalam konteks kosong. Kemudian variabel o(bersama dengan _dan (゚ー゚)) diberi nilai 3. Ini berlanjut dalam nada itu, melakukan banyak pekerjaan tambahan yang tidak berbahaya, yang secara efektif tidak boleh, dan menggunakan cara bundaran untuk melakukan pekerjaan yang diinginkan (menelepon alert("Hello world")) dengan tidak jelas. mode.
Mark Reed


40

Befunge-93 - 10x9 blok

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

Maaf. : D

Saya tidak pergi untuk ukuran kecil di sini, saya mencoba untuk benar-benar MENINGGALKAN kode dengan memasukkan sebanyak mungkin wajah smiley dan kebisingan! : D

Harus sesuai dengan aturan 2 dan 3.


18
"@_@" Saya tertawa.
Wug

35

Golfscript - 17 karakter

Lebih mudah untuk menyalin / menempel daripada Chris

'Ifmmp!Xpsme'{(}%

Pada dasarnya caesar cipher digeser oleh 1 char


4
+1 Bagus karena lebih mudah untuk disalin. Milik saya memiliki keuntungan melanggar aturan, dan juga (mungkin, tergantung pada apakah karakter bit tinggi dianggap sebagai simbol) memenuhi simbol golf juga. :-)
Chris Jester-Young

Bagaimana ini melanggar aturan?
d -_- b

11
@sims, ada eisinya
gnibbler

2
DUA dari tiga. : D
Rob

30

Python

Aturan I & III (34 karakter)

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

Aturan I & III, alternatif (39 karakter)

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

Aturan II & III (37 karakter)

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

Aturan I dan II (50 karakter)

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

Ketiga aturan (58 karakter)

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

1
menghapus jawaban saya, saya pikir jawaban Anda lebih komprehensif.
st0le

+1, bagian yang hebat tetapi tidak mengejutkan saya telah melihat Anda bermain golf :-)
Quixotic

Anda harus melakukannya import codecssebelum dapatcodecs.decode
kucing

Anda dapat menghapus parens di solusi pertama
Cyoce

23

JavaScript, 366 karakter

Setelah melihat solusi Perl Joel Berger, saya merasa terdorong untuk melakukan sendiri seni kecantikan ASCII ... JavaScript, tidak menggunakan alfanumerik, dan bertentangan dengan output JSFuck ukuran sebenarnya cukup.

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

dapatkah Anda menampilkan jumlah karakter dalam kode Anda dalam tajuk? Saya ingin tahu berapa banyak Anda mendapatkannya ...
WallyWest

@ Eliseod'Annunzio di sana Anda pergi, saya lupa bahwa ini adalah golf kode. Panjang diberikan dengan spasi kosong dilucuti dan yang terakhir ($)berubah menjadi ()(karena saya menambahkan $untuk simetri).
FireFly

Terima kasih atas tips Anda ... Saya harus mengubah ukuran kode saya untuk menjelaskan "W" dan kemudian menyusutkannya menggunakan saran Anda ...
WallyWest

21

rot13 - 11 karakter

Uryyb Jbeyq

2019/2/12: Jawaban ini disimpan karena alasan historis, dan bukan lagi jawaban yang sah berdasarkan aturan situs saat ini.


3
Apakah rot13 bahasa? : /
Santosh Kumar

3
ya dan saya dapat membuat juru bahasa: P
oddcoder

6
Secara teknis, rot13 hanyalah sebuah sandi . Ini sama saja dengan sandi Vigenère.
XiKuuKy

19

Bash, 30 25 karakter

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

Dengan terima kasih kepada Peter Taylor untuk penggunaan herestring.


2
Anda dapat menyimpan 5 karakter menggunakan string di sini:tr G-t F-s<<<Ifmmp\ Xpsme
Peter Taylor

18

Scala, 39

Solusi seperti cetak ("Qnuux) peta` x {um "(_- 9 toChar)) (35 karakter) melanggar aturan 1 dan 2 (" toChar "berisi" h "dan" r "), yang menjadikan ini agak sulit.

Akhirnya muncul dengan ini:

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

Saran untuk penyambutan selamat datang


18

TeX, 95 Bytes

Melanggar aturan ketiga.

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

Jalankan dengan tex filename.texuntuk mendapatkan output dvi, atau pdftex filename.texmendapatkan pdf.


1
Wow, tidak pernah tahu TeX bisa begitu membingungkan!
gar

14

> <> , 2 × 20 = 40 karakter

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

Melanggar Aturan II, karena saya tidak bisa menampilkan karakter tanpa menggunakan o.


11

Windows PowerShell, 91 95 97 98

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

Hanya melanggar Aturan II.

Itu sangat jahat yang sudah charmelanggar dua aturan sendiri.

Dan ya, yang ini sulit untuk bisa bekerja.

  • Baris pertama diatur $OFSke ''jadi ketika casting array ke string tidak ada spasi yang muncul di antara item.
  • Melakukan casting charsebenarnya adalah bagian tersulit dari semuanya dan saya menghabiskan waktu sehari mencari jalan. Saya mendapatkan semua yang lain bekerja dengan baik, tetapi begitu saya menghitung mereka, saya punya int, bukan char. Menempatkan mereka kembali ke dalam tali agak sulit.
  • Saya menemukan cara untuk memohon Invoke-Expressiontanpa perlu ejuga:

    &(gcm i?x)
    

    tapi itu masih kurang argumen. Dan saya sudah membuang tujuan saya untuk memuaskan ketiga aturan saat itu. Juga tidak terlalu membantu saya dalam casting char.

  • Dipersingkat sedikit dengan versi PowerShell yang lebih baru. Sayangnya, tidak ada cara yang berbeda untuk menciptakan hasil yang muncul.


Masih ada banyak "o" dan "e" di sini, dan "r". Namun, tidak yakin aku akan lebih beruntung membersihkannya. Mungkin belum harus mencobanya kapan-kapan.
Iszi

Baca kembali aturan - hanya diperlukan dua dari tiga aturan yang dipenuhi, dan ini memenuhi syarat. Pertunjukan yang bagus! Akan sangat luar biasa jika kita dapat menemukan yang membutuhkan 3/3, tapi saya ragu itu sangat mungkin.
Iszi

Saya butuh banyak waktu untuk sampai ke titik ini, dan saya masih ragu apakah mungkin untuk mengikuti semua aturan.
Joey

10

PHP (16 byte)

Saya perhatikan bahwa contoh PHP saya sebelumnya tidak cukup membingungkan, jadi mari kita lihat contoh-contoh yang lebih jelas dikaburkan (peringatan, kebingungan!). Juga, secara terang-terangan menyalin contoh GolfScript, kecuali membuatnya lebih kecil (apakah mungkin?). Entri ini membutuhkan PHP 5.4 atau short_open_tagdiaktifkan. Tidak ada aturan yang dilanggar saat membuat ini. Bahkan, entri ini tidak mengandung huruf atau digit ASCII.

Contoh ini tidak melanggar aturan apa pun. Selamat bersenang-senang. Untuk menghasilkan file, jalankan perintah berikut.

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

Atau, jika Anda tidak percaya menjalankan printfperintah, saya sudah menyiapkan file Base64 dump.

PD89freak5OQ36iQjZObOw==

Jika Anda berpikir bahwa kedua metode untuk membuatnya melanggar aturan, saya juga telah membuat file di Dropbox .

Dan untuk menjalankannya.

php obfus.php

File yang dihasilkan harus memiliki 16 byte. Selamat bersenang-senang menjalankannya. Harap perhatikan bahwa jika Anda E_NOTICEmengaktifkan peringatan, peringatan akan ditampilkan. Abaikan saja, memperbaikinya akan sia-siadua karaktersatu karakter (saya bisa menggunakan @operator, setelah semua) dan akan membuat Base64 yang dihasilkan terlihat kurang keren.


9

Spasi (167 karakter)

Untuk mendapatkan program WS, gantilah spasi, Tab, atau karakter Linefeed untuk S, T, L, masing-masing, dalam string berikut:

SSSTSSTSSSLTLSSSSSTTSSTSTLTLSSSSSTTSTTSSLTLSSSSSTTSTTSSLTLSSSSSTTSTTTTLTLSSSSSTSSSSSLTLSSSSSTSTSTTTLTLSSSSSTTSTTTTLTLSSSSSTTTSSTSLTLSSSSSTTSTTSSLTLSSSSSTTSSTSSLTLSSLLL

atau unduh program whitespace-only "mentah" di file teks hello.ws .

Ketika dijalankan oleh juru bahasa WS ini , program ini mencetak "Hello World".

Penjelasan (abaikan spasi putih di sini!):

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

String "tengah" (mis. TSSTSSSL) Adalah kode ascii (dalam biner, dengan Smenunjukkan 0, Tmenunjukkan 1) untuk huruf-huruf berikutnya dalam "Hello World". Awalan SSSmendorong nomor yang mengikutinya (diakhiri oleh a L) ke stack. TLSSmenampilkan karakter yang kode ascii-nya ada di atas tumpukan. Akhirnya, menurut tutorial ini , sebuah program harus diakhiri dengan LLLuntuk keluar yang bersih oleh penerjemah.

NB: Saya memasukkan ini sebagai jawaban terpisah, karena entri program WS lainnya adalah program 1287 karakter yang mencetak "Halo, dunia ruang!" alih-alih "Hello World" yang diperlukan.


8

Ruby - 63 karakter

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

istirahat # 1,
John Dvorak

Dan bahkan lebih pendek: puts "Gdkkn~Vnqkc".split("").map(&:succ)*''- 43
Biketire

7

C, 160 karakter

Hanya bekerja pada mesin little-endian dengan 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);}

Memenuhi ketiga aturan.


1
Anda bisa menggunakan konstanta numerik tanpa 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 karakter.

1
Vena serupa (sebenarnya menangani masalah dengan beberapa cara berbeda sebelum menyelesaikan ini). x[]={45483*39994-3958,48465*38543-5584,6584695-3333};main(){puts(x);}- 69 karakter. Saya yakin saya bisa mencukur lebih banyak lagi diberikan lebih banyak waktu untuk menghitung matematika literal lagi. Adalah cara yang menyenangkan untuk menghabiskan beberapa jam, :):
Cole Cameron

7

PHP, 28 byte

Tidak persis dikaburkan, tapi sangat pendek dan jelas :). Menunjukkan itu bahkan ketika membatasi karakter Anda dapat membuat sangat mudah untuk mengikuti program. Batasan 1 dan 3 diikuti. Batasan 2 dilecehkan.

<?=str_rot13('Uryyb Jbeyq');

Perhatikan bahwa ini perlu short_open_tagdiatur, kecuali Anda menggunakan PHP 5.4 atau lebih tinggi. Mungkin beberapa contoh lebih pendek, tetapi saya pikir contoh ini cukup singkat.


7

bash 28 karakter:

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

p | ɹοm dari || ǝH

atau dengan / bin / echo (18 karakter) *) lihat diskusi di bawah ini.

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

Selftest:

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

Lebih keras dari pada tebusan! Alat, untuk membalikkan Kata, alat berpikir 'H' atau 'o' terbalik terbaik ditampilkan sebagai H atau o. Ini akan bertentangan dengan grup 1 (Hlwd: 27: eor01) masing-masing 3.

H dapat ditampilkan dengan

echo -e "\0127"

tapi 01 dan 2 juga diracuni. Wah! Tetapi gema bash-buildin tidak hanya memiliki opsi untuk menampilkan nilai okci ascii, tetapi juga heksadesimal:

echo -e "\x48"

Tetapi jika kita menggunakan bash sebagai bahasa pemrograman, perintah echo adalah bagian dari program, yang tidak hanya menghitung jumlah karakter, tetapi juga mengandung karakter-karakter yang diracuni (hlwd: 27: eor01) eho dari grup 1 dan 3.

Jadi inilah saat gema itu mati. Untungnya, ada printf, yang tahu "% b" untuk ditampilkan.

R adalah satu-satunya karakter bermasalah di printf, dan milik grup 3. Karena 'o' ada di grup terakhir, kita bisa membiarkannya di Hello dan di World, tetapi kita bisa menggunakan omicron yang bentuknya seperti o, atau ° &deg;.

Tautan:


Akan membenarkan ini, tetapi reputasi Anda terlalu ketat.
Konrad Borowski

@GlitchMr: Sekarang Anda bisa - Saya memilih sesuatu, dan harus seet 500N. :)
pengguna tidak diketahui

dl.dropbox.com/u/63913412/stilltooleet.png . Juga, pertanyaan-pertanyaan yang tidak mendukung tidak mengurangi reputasi. Namun demikian, jawaban downvoting tidak.
Konrad Borowski

@GitchMr: Ah, itu dia! :)
pengguna tidak diketahui

6

C (94)

Pada mesin Endian kecil:

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

Melanggar aturan II, tetapi memuaskan sisanya.


6

JavaScript - 132 karakter

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

Melanggar aturan I

Penggunaan :

  • Rekatkan "javascript: [skrip]" ke bilah alamat browser
  • Buat halaman html kosong, tempel skrip ke dalam tag

Melanggar aturan 1 dan 2. Anda menggunakan angka 1 untuk array.
Kevin Brown

Anda dapat mengganti 1dengan !![]+![]dan 0oleh ""-""untuk tidak melanggar aturan # 2.
HoLyVieR

Terima kasih @ Bass5098 dan @HoLyVieR, saya agak merindukan 1 dan 0 ketika meminimalkan skrip. Saya mengganti 0 dengan z = _-_ dan 1 dengan I = - ~ z, saya juga bisa menggunakan ++ z, tapi - ~ terlihat lebih bagus :)
m0sa

3
Hah? !![]+![]? Kenapa tidak adil 4-3?
Timwi

4
@Timwi: Lebih banyak kebingungan
Thomas Eding

6

Dis , 102 83 karakter

Buka gulungan kode karena surat dapat dibuat dengan kurang dari lima operasi berturut-turut. Menyimpan beberapa karakter dengan menggunakan kembali nilai akumulator: dua lberturut-turut, SPACEdapat dihasilkan dari odan ddapat dihasilkan dari l.

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

Versi lama

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

Dengan komentar di bawah ini. Itu menggunakan urutan lima operasi identik untuk menghasilkan semua karakter dalam Hello World: satu rotasi dan empat pengurangan.

^     (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 karakter (tidak termasuk baris baru yang tidak perlu)

Saya memilih keterbacaan dan transparansi saat menulis ini.

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

Itu memenuhi ketiga persyaratan.


1
Saya suka ini, tetapi sayangnya itu tidak memenuhi semua aturan, karena mengandung digit 7, melanggar aturan # 3. Tapi itu akan mudah untuk dihilangkan 7. Juga dengan menambahkan beberapa ints, dan menambahkan beberapa tanda kurung tambahan, dan menambahkan int puts(int*);ke awal, itu dikompilasi dengan gcc -ansi -W -Wallhanya dengan satu peringatan: kontrol mencapai akhir fungsi non-void .
Poin

5

Bash, 24 20 karakter

Anda harus menginstal paket "bsdgames".

rot13<<<Uryyb\ Jbeyq

Terima kasih gnibbler :)


5

PostScript, 41 karakter

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

Pemakaian: $ gs -q -dNOPROMPT -dNODISPLAY filename.ps


1
Anda juga dapat menjalankannya seperti:gsnd -q -- filename.ps
luser droog

5

JavaScript, 66 karakter

Solusi JavaScript lain, kali ini melanggar aturan # 2.

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

Di atas mengikuti konsep di balik jawaban hallvabo. Sebelum saya mengetahui pendekatan itu, saya memiliki versi yang lebih jelas:

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

yang juga melanggar aturan # 2 dan masuk di 114 karakter. (Lepaskan carriage return dalam solusi kedua ini karena hanya ada untuk dibaca.)


4
Saya membaca bahwa sebagai R unescape.
Mateen Ulhaq

@MateenUlhaq Saya selalu membacanya sebagai R unescape, dan saya hanya bermain selama setahun lebih dari satu dekade yang lalu ... Apa yang salah dengan saya?
Mwr247

5

Haskell, 38

Batasan 1 dan 3 diikuti.

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

4

Fourier, 39 byte

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

Fourier selalu dikaburkan. Ini mengikuti semua aturan.

Kerusakan:

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.

Ini mungkin bisa sedikit disempurnakan.


Woah, saya baru saja menyadari bahwa orang lain telah menggunakan Fourier: D Nice one, +1
Beta Decay
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.