Şaşkın merhaba dünya


123

"Merhaba Dünya" metnini görüntüleyen mümkün olan en kısa karışık programı oluşturun.

Karışık bir program olarak kabul edilmek için aşağıdaki şartlardan en az ikisini karşılaması gerekir :

  • Karakterleri içermez: h, l, wve dher halükarda
  • : Karakterleri içermez e, o, r, 0, ve 1her halükarda
  • Karakterleri içermiyor: 2veya7

Giriş:
yok

Çıktı:
Hello World


6
Sanırım importpitona izin verilmiyor.
Alexandru

26
Bu kurallar dil anahtar kelimelerine de uygulanıyor mu?
hallvabo

8
Bu dava duyarsız kısıtlamalar nelerdir?
oenone

20
Birisi neden 2 ve 7'ye izin verilmediğini açıklayabilir mi? Özellikle neden seçildiklerini göremediğim için merak ediyorum.
Thomas Eding,

4
@trinithis ve diğerleri, ASCII karakter 72olan "H"o iki seçtik neden olduğu
Kevin Brown

Yanıtlar:


51

GolfScript, 17 karakter

'* S ““?? ß ???? “>' {~}%

Bu gönderiyi test ederken, lütfen dosyayı UTF-8 yerine düz ikili dosya olarak kaydedin. Dosyayı yeniden oluştururken sorun mu yaşıyorsunuz? İşte ondan birincisi:

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

1
Bunun açık bir çözüm olduğunu düşünmeme rağmen, bu girişin nasıl çalıştığını bilmiyorsanız, şu spoyleri okuyabilirsiniz: chat.stackexchange.com/transcript/message/442257#442257 :-)
Chris Jester -Young

12
ISO-8859-1 değil, aslında Windows-1252.
Konrad Borowski

@GlitchMr: Gönderinin Windows-1252 dışındaki karakterleri içerdiğinden eminim. ;-)
Chris Jester-Young

@ xfix Gerçekten de Windows-1252 de değil. Her ne kadar Windows-1252, ISO-8859-1'den daha geçerli karakterlere sahip olsa da, girişim de Windows-1252'de geçerli olmayan 0x8D ve 0x90 gibi karakterler içeriyor.
Chris Jester-Young

Yeterince adil, bazı karakterlerin Windows-1252'de izin verilmediğini unuttum.
Konrad Borowski

171

Perl

Açık cevap bir çeşit kayma kullandığından, Acme :: EyeDrops kullanarak bir şey göndermek zorunda olduğumu hissediyorum , ancak ekstra güçle benimkilerin daha eğlenceli olması gerektiğini düşündüm.

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

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

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

Uyarı

Perl sürüm 5.18'den beri, bu kodun çalışmasına izin veren mekanizma o kadar güçlü hale gelmiştir ki kötüye kullanımı önlemek için varsayılan olarak devre dışı bırakılmıştır. Bu nedenle, 5.18+ sürümlerinde use re 'eval';, komut dosyasının en üstüne ekleyebilir veya komut dosyası adlandırılmışsa world.plonu çalıştırabilirsiniz perl -Mre=eval world.pl. Bu çirkin karakterlerin eklenmesi gerektiği talihsiz bir durumdur, ancak en iyisidir. (Not: Bu özelliğin etkinleştirilmesinin bazı kütüphane veya addon kullanmadığını vurgulamak istiyorum, görüntülenen kod geçerli Perl kodu, mekanizma artık varsayılan olarak etkin değildir).


1
Denedim ve bu harika! +1
Tomas

2
@TomasT. teşekkürler, bunu yapmak eğlenceliydi ve aslında sadece 3 fotoğrafta oynatılması için biraz golf aldı!
Joel Berger

1
FYI (?{ code })Regexp eşleştirme sırasında özel Perl kodunu değerlendirmek için Perl regexp özelliğini kullanır . Özel Perl kodu mesajı yazdırır. Güzel çünkü kuralların hiçbirini ihlal etmiyor.
pts

5
Siz bayım, merhaba dünya kralısınız!
recursion.ninja

1
Vaov! Sadece vay! Şimdi bunu nasıl yaptığını görmek için Perl'i öğrenmeye ihtiyacım var.
Gryphon

69

C # (175 karakter)

C # 'da bunu yapmak oldukça zordu çünkü kısıtlamalar çok fazla sayıda ortak anahtar kelimenin kullanılmasını engelliyordu. C # 'da \ uxxxx Unicode kaçış dizilerini tanımlayıcılarda kullanmak mümkündür, ancak maalesef anahtar kelimelerde kullanılamaz.

Bu çözümün yalnızca .NET 4.0 ile derlendiğinde çalıştığından şüpheleniyorum . Neden için açıklamaya bakınız.

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

açıklama

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

Sen kullanabilirsiniz Uriyerine objectiçin b. Belirgin olmayan ( değişken uzunluklu) \xHHyerine dizelerde kullanabilirsiniz . İkinci düşüncede, hiç ihtiyacınız yok ve sadece ilk argüman olarak tekrar kullanabilirsiniz . MSDN, statik yöntemler için ilk argümanın dikkate alınmadığını belirtir. Bu benim için 175'e indirdi. \u00HH\xbcInvoke
Joey

@Joey: Whoa, teşekkürler! Her ne kadar ilk argüman bir Invokeşey olabilirse de, olması gerekmese de c, olabilir 0... :)
Timwi

Evet, satır içi çalıştığımda fark c(çünkü ne yazık ki çalışmıyor hangi newbir gerektiriyor eve .Split('x')) çok uzun (177 ° C'de çıktı.
Joey

Bunun mümkün olduğunu bilmiyordum. +1
Igby Largeman

1
Yaptığın çok zekice şey GetMethods. +1
Soham Chowdhury

51

BrainFuck, 106 vuruş

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

Tüm kuralları yerine getirir ve kesinlikle karışıktır.


2
Sanırım hala biraz golf oynayabiliyorum, ama biraz uyuyana kadar beklemem gerekecek.
R. Martinho Fernandes

34
BrainFuck tanımı ile karıştırılmaz mı?
mbx

18
Herhangi bir yetkili BF programcısı bunu tanıyabilirdi ...
Mehrdad

Bu, kural 1 ve 2'nin her ikisini de keser: D
Thomas Eding

8
Brah, Topluluk tarafından korunan , herneyse, ++++++++++[>++++++>+++<<-]>++++++++++++.---.+++++++..+++.>++.<++++++++.--------.+++.------.--------.sadece 100 vuruş, benimki sizinkinden daha iyi
OverCoder

44

Javascript, 2595

Bu sadece kural 2'ye son verir.

゚ω゚ノ=/`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
Üzerinde UglifyJS denedim ama -2574 bayt kurtardı.
Konrad Borowski

12
Burada neye baktığım hakkında hiçbir fikrim yok.
Bob

6
@ Bob = obfuscated Javascript. İpucu: . That's followed by a comment and the expression void bağlamında ``ω ゚ ノ['_']` değişkenine normal bir ifade değişmezi (yani '/ ` m´) ノ ~ ┻━┻ /') atayarak başlar . Daha sonra değişkene o( _ve ile birlikte (゚ー゚)) 3 değeri atanır. Bu şekilde devam eder, etkin bir şekilde çalışmayan çok fazla zararsız iş yapar ve amaçlanan işi yapmak için dolambaçlı yollarla (arama yapmadan alert("Hello world")) net olmayan bir şekilde kullanılır. moda.
Mark Reed,


40

Befunge-93 - 10x9 blok

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

Üzgünüm. : D

Burada küçük boyuta gitmiyordum, olabildiğince çok gülen yüz ve paraziti ekleyerek kodu gerçekten OBFUSCATE etmeye çalışıyordum ! : D

Kural 2 ve 3 ile uyumlu olmalı.


18
"@_@" Güldüm.
15

35

Golfscript - 17 karakter

Kopyalamak / yapıştırmak Chris'ten daha kolaydır

'Ifmmp!Xpsme'{(}%

Temelde 1 karakter değiştiren bir sezar şifresi


4
+1 Kopyalanması daha basit olduğu için güzel. Mine, kuralların hiçbirini ihlal etme ve ayrıca (muhtemelen, yüksek bit karakterlerin sembol olarak sayılıp kullanılmadığına bağlı olarak) sembol golfünü de yerine getirme avantajına sahiptir. :-)
Chris Jester-Young

Bu bir kuralı nasıl bozar?
d -_- b

11
@sims, bir sahiptir eiçinde
gnibbler

2
Üçte ikisinin. : D
Rob

30

piton

Kural I ve III (34 karakter)

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

Kural I ve III, alternatif (39 karakter)

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

Kural II ve III (37 karakter)

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

Kural I ve II (50 karakter)

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

Her üç kural (58 karakter)

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

1
cevabımı sildim, sanırım seninki daha kapsamlı.
st0le

+ 1, harika bir parça ama sürpriz yok seni golf oynarken gördüm :-)
Quixotic

Sen gerek import codecsyapabilirsiniz öncecodecs.decode
cat


23

JavaScript, 366 karakter

Joel Berger'in Perl çözümünü gördükten sonra, ASCII sanat güzelliğini kendim yapmak zorunda kalmıştım ... JavaScript, alfasayısal kullanmıyor ve JSFuck çıktısının tersine aslında makul boyutta.

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

Lütfen kodunuzdaki başlıktaki karakter sayısını gösterebilir misiniz? Kaç tane aldığını görmek isterim ...
WallyWest

@ Eliseod'Annunzio oraya gitmek, bu kod golf olduğunu unuttum. Uzunluk boşluk bırakılarak ve sonuncusu ($)çevrilerek verilir ()(çünkü $simetriyi ekledim ).
FireFly

Tavsiyeleriniz için teşekkürler ... "W" yi hesaba
katacak şekilde

21

rot13 - 11 karakter

Uryyb Jbeyq

2019/2/12: Bu cevap tarihsel nedenlerle tutuluyor ve şu anki site kuralları uyarınca geçerli bir cevap değil.


3
Rot13 bir dil midir? : /
Santosh Kumar

3
evet ve tercümanını oluşturabilirim: P
oddcoder 14.06.2016

6
Teknik olarak, rot13 sadece bir şifredir . Vigenere şifresi kadar bir dil.
XiKuuKy

19

Bash, 30 25 karakter

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

Herestring kullanımı için Peter Taylor'a teşekkürler.


2
Burada bir dize kullanarak 5 karakter kaydedebilirsiniz:tr G-t F-s<<<Ifmmp\ Xpsme
Peter Taylor 20

18

Scala, 39

Gibi çözümler baskı ( "Qnuux)` x {um" harita (_- 9 tochar)) (35 karakter) 2 ( "tochar" "h" ve "r") hem de içerir, ki bu en tatmin kural 1 ve çatmak biraz zor.

Sonunda bu geldi:

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

İyileştirme için öneriler


18

TeX, 95 Bayt

Üçüncü kuralı ihlal ediyor.

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

tex filename.texBir dvi çıktısı pdftex filename.texalmak veya bir pdf almak için birlikte çalıştırın .


1
Vay canına, TeX'in bu kadar şaşkın olabileceğini asla bilemezdim!
gar

14

> <> , 2 × 20 = 40 karakter

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

Kural II'yi ihlal eder, çünkü kullanmadan bir karakter veremem o.


11

Windows PowerShell, 91 95 97 98

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

Yalnızca Kural II'yi ihlal ediyor.

charŞimdiden iki kuralı ihlal eden çok şeytani .

Ve yikes, bu çalışmak zordu.

  • İlk satır ayarlar $OFSiçin ''hiçbir maddeler arasında boşluk görünür bir dizeye bir dizi yayınlarken bu yüzden.
  • Yayın yapılan charaslında tüm en zor kısmı oldu ve ben bir yol ararken bir gün etrafında geçirirler. Gerisini iyi çalıştım ama bir kere hesaplamalar yaptım int, değil char. Bunları dizeye geri koymak çok zordu.
  • Ben de Invoke-Expressionihtiyaç duymadan çağırmanın bir yolunu buldum e:

    &(gcm i?x)
    

    ama bu hala argümanlar yoktu. Ve o zamana kadar üç kuralı da satma hedefimden vazgeçtim. Ayrıca özellikle rol yapmamda bana yardımcı olmadı char.

  • Daha yeni bir PowerShell sürümüyle biraz kısaltıldı. Maalesef, sonucu yaratmanın yararlı bir yolu yoktu.


Burada hala birçok "o" ve "e" var ve bir "r" var. Yine de bunu temizlerken daha iyi şanslar elde edeceğime emin değilim. Belki bir ara bir şans vermek zorunda kalabilirim.
Iszi

Sadece kuralları tekrar okuyunuz - yalnızca üç kural setinden ikisine ihtiyaç duyuyordu ve bu nitelik kazanıyor. İyi gösteri! 3/3 alan bir tane bulabilirsek harika olurdu, ama bunun çok mümkün olduğundan şüpheliyim.
Iszi

Zaten bu noktaya gelmek için çok zaman aldı ve hala tüm kuralları izlemenin mümkün olduğundan şüpheliyim.
Joey,

10

PHP (16 bayt)

Önceki PHP örneğimin yeterince şaşırtmadığını fark ettim, bu yüzden daha açık bir şekilde şaşkın örnekleri görelim (uyarı, şaşkınlık!). Ayrıca, daha küçük hale getirme dışında GolfScript örneğini açıkça kopyalamak (hatta mümkün mü?). Bu giriş PHP 5.4 veya short_open_tagetkin gerektirir . Bunu yaparken hiçbir kural ihlal edilmedi. Aslında, bu girdi ASCII harflerini veya rakamlarını içermiyor.

Bu örnek kuralların hiçbirini ihlal etmiyor. İyi eğlenceler. Dosya oluşturmak için aşağıdaki komutu çalıştırın.

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

Veya, çalıştırma printfkomutuna güvenmemeniz durumunda , Base64 dökümü dosyasını hazırladım.

PD89freak5OQ36iQjZObOw==

Her iki yöntemin de kuralları ihlal etmenin kurallar olduğunu düşünüyorsanız, ben de Dropbox'ta dosya oluşturdum .

Ve onu çalıştırmak için.

php obfus.php

Ortaya çıkan dosya 16 bayt olmalıdır. Koşarken eğlenin. Lütfen E_NOTICEuyarıları etkinleştirdiyseniz, not göstereceğini unutmayın . Sadece görmezden gel, tamir etmek israf oluriki karakterbir karakter ( @her şeyden önce operatörü kullanabilirim ) ve sonuç olarak Base64'ün daha az harika görünmesini sağlayacaktır.


9

Boşluk (167 karakter)

WS programını edinmek için, aşağıdaki dizgede sırasıyla S, T, L yerine Boşluk, Sekme veya Satır besleme karakteri kullanın:

SSSTSSTSSSLTLSSSSSTTSSTSTLTLSSSSSTTSTTSSLTLSSSSSTTSTTSSLTLSSSSSTTSTTTTLTLSSSSSTSSSSSLTLSSSSSTSTSTTTLTLSSSSSTTSTTTTLTLSSSSSTTTSSTSLTLSSSSSTTSTTSSLTLSSSSSTTSSTSSLTLSSLLL

veya "raw" boşluklu programı yalnızca hello.ws metin dosyasında indirin .

Bu WS tercümanı tarafından çalıştırıldığında , bu program "Merhaba Dünya" yazıyor.

Açıklama (buradaki boşlukları yoksay!):

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

"Orta" karakter dizileri (örn. TSSTSSSL), "Merhaba Dünya" daki art arda gelen harflerin ascii kodlarıdır (ikili olarak, S0 ile, T1 ile gösterilir). Önek SSS, onu takip eden sayıyı (an ile sonlandırılmış L) yığına iter . TLSSascii kodu yığının en üstünde olan karakteri çıkarır. Son olarak, bu eğitimeLLL göre, tercüman tarafından temiz bir çıkış için bir programın bitmesi gerekiyor .

Not: Buna ayrı bir cevap olarak giriyorum, çünkü diğer WS program girişi “Merhaba, boşlukların dünyası!” Yazdıran 1287 karakterlik bir programdır. gerekli "Merhaba Dünya" yerine.


8

Yakut - 63 karakter

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

olsa # 1 sonları
John Dvorak

Ve hatta daha kısa: puts "Gdkkn~Vnqkc".split("").map(&:succ)*''- 43
Biketire

7

C, 160 karakter

Yalnızca 4 baytlık int ile küçük endian makinelerde çalışır:

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

Her üç kuralı da karşılar.


1
Sayısal sabitleri yalnızca 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 olmadan kullanabilirsiniz .

1
Benzer damar (aslında bunu çözmeden önce problemi birkaç farklı şekilde çözdüm). x[]={45483*39994-3958,48465*38543-5584,6584695-3333};main(){puts(x);}- 69 karakter. Eminim edebiyatları biraz daha matematiğe ayırmak için daha fazla zaman vermiş olabilirim Zaten birkaç saat harcamak için eğlenceli bir yoluydu :)
Cole Cameron

7

PHP, 28 bayt

Tam olarak şaşırtmak değil, ama çok kısa ve açık :). Karakterleri sınırlarken bile programları takip etmeyi çok kolaylaştıracağınızı göstermek. Bunu 1 ve 3 numaralı kısıtlamalar izledi. Sınır 2 kötüye kullanıldı.

<?=str_rot13('Uryyb Jbeyq');

short_open_tagPHP 5.4 veya daha üstü kullanmıyorsanız, bunun ayarlanması gerektiğini unutmayın . Belki bazı örnekler daha kısadır, ancak bu örneğin oldukça kısa olduğunu düşünüyorum.


7

bash 28 karakter:

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

p | ɹοM ο || ǝH Instagram Hesabındaki Resim ve Videoları

alternatif olarak / bin / echo (18 karakter) *) ile aşağıya bakınız.

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

Kendi kendini test:

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

Düşünmekten daha zor! Araçlar, Kelimeleri ters çevirmek için araçlar, 'H' veya 'o' baş aşağı çevirildiğini en iyi H veya o olarak gösterir. Bu, sırasıyla grup 1 (Hlwd: 27: eor01) ile 3 olanlarla çelişir.

H ile görüntülenebilir

echo -e "\0127"

ama 01 ve 2 de zehirlendi. Gee! Ancak bash buildin ekosu yalnızca sekizlik ascii değerlerini görüntüleme seçeneğine değil aynı zamanda onaltılık değere de sahiptir:

echo -e "\x48"

Fakat bash'ı bir programlama dili olarak kullanırsak, echo komutu programın bir parçasıdır, sadece karakter sayımına sayılmaz, aynı zamanda 1. ve 3. gruplardan gelen zehirli karakterleri de (hlwd: 27: eor01) içerir.

Yani bu yankı öldüğü an. Neyse ki, görüntülenecek "% b" yi bilen printf var.

R, printf'teki tek sorunlu karakterdir ve 3. gruba aittir. 'O' son grupta olduğu için, onu Merhaba ve Dünya'da bırakabiliriz, ancak o gibi görünen omicron'u kullanabiliriz. ° &deg;.

Bağlantılar:


Bunu hak ederdin, ama itibarın çok açık.
Konrad Borowski

@GlitchMr: Şimdi yapabilirsin - Ben aşağı bir şey oy verdim ve 500N görmeliyim. :)
kullanıcı bilinmeyen

.dropbox.com/u/63913412/stilltooleet.png . Ayrıca, soruların küçültülmesi itibarı azaltmaz. Cevapları aşağı çekmek yine de.
Konrad Borowski

@GlitchMr: Ah, işte bu! :)
kullanıcı bilinmeyen

6

C (94)

Küçük Endian makinelerinde:

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

Kural II'yi ihlal eder, ancak gerisini yerine getirir.


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')

Sonları kuralı I

Kullanım :

  • "Javascript: [script]" tarayıcı adres çubuğuna yapıştırın
  • Boş bir html sayfası oluşturun, betiği bir etikete yapıştırın

Kural 1 ve 2'nin her ikisini de keser. Diziler için 1 sayısını kullanıyorsunuz.
Kevin Brown,

Sen değiştirebilir 1tarafından !![]+![]ve 0tarafından ""-""2. kuralı bozmazlar için.
HoLyVieR

Teşekkürler @ Bass5098 ve @HoLyVieR, senaryoyu küçültürken 1 ve 0'ı kaçırdım. 0'ı z = _-_ ve 1 ile I = - ~ z ile değiştirdim, ayrıca ++ z kullanabilirim, ancak - ~ daha iyi görünüyor :)
m0sa

3
Ha? !![]+![]? Neden sadece değil 4-3?
Timwi

4
@Timwi: Daha fazla şaşkınlık
Thomas Eding

6

Dis , 102 83 karakter

Harfler arka arkaya beş işlemden daha az bir işlemle oluşturulabildiğinden, kod döngüsünün kontrolü kaldırıldı. Biriktirici değerini yeniden kullanarak birkaç karakter kaydedildi: iki lardışık, SPACEüretilebilir ove düretilebilir l.

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

Eski versiyon

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

Aşağıdaki yorumlarla. Tüm karakterleri üretmek için beş özdeş işlem dizisi kullanıyor Hello World: bir döndürme ve dört çıkarma.

^     (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 (gereksiz yeni satırlar hariç)

Bunu yazarken okunabilirliği ve şeffaflığı seçtim.

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

Her üç gereksinimi de karşılar.


1
Bunu sevdim, ama ne yazık ki tüm kuralları yerine getirmiyor çünkü 73 numaralı basamağı içeriyor . Ama kurtulmak kolay olurdu 7. Ayrıca birkaç intsaniye ekleyerek, birkaç ek parantez ekleyerek int puts(int*);ve başlangıcına ekleyerek , gcc -ansi -W -Wallyalnızca tek bir uyarıyla derlenir : denetim geçersiz fonksiyonun sonuna ulaşır .
Pts

5

Bash, 24 20 karakter

"Bsdgames" paketinin kurulu olması gerekir.

rot13<<<Uryyb\ Jbeyq

Teşekkürler gnibbler :)


5

PostScript, 41 karakter

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

Kullanımı: $ gs -q -dNOPROMPT -dNODISPLAY filename.ps


1
ayrıca şu şekilde de çalıştırabilirsiniz:gsnd -q -- filename.ps
luser droog

5

JavaScript, 66 karakter

Başka bir JavaScript çözümü, bu sefer kural 2'yi aştı.

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

Yukarıdakiler, hallovabo'nun cevabının arkasındaki kavramı takip ediyor. Bu yaklaşıma yakalanmadan önce, tartışmalı şekilde daha karışık bir sürümü vardı:

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

Bu da kural 2'yi ihlal eder ve 114 karakterde gelir. (Bu ikinci çözümde taşıma dönüşünü yalnızca okunabilirlik için olduğu için kaldırın.)


4
Bunu R olarak okudum unescape.
Mateen Ulhaq

@MateenUlhaq Her zaman R olarak okudum unescapeve sadece on yıldan uzun bir süre boyunca oynadım ... Benim neyim var?
Mwr247

5

Haskell, 38

Bunu 1 ve 3 numaralı kısıtlamalar izledi.

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

4

Fourier, 39 bayt

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

Fourier her zaman karışıktır. Bu tüm kuralları takip eder.

Yıkmak:

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.

Bu belki biraz rafine edilebilir.


Woah, az önce başka birisinin Fourier: D Nice one, +1
Beta Decay’i
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.