Şaşırtma Mücadelesi [kapalı]


24

Aşağıdakilerden birini yapan bir program yazmalısınız.

  1. Yalnızca "Merhaba Dünya" görüntülerini başka hiçbir şey yapmaz
  2. Çıkıyor ve başka bir şey yok (çıktı yok, hata yok.)
  3. Bir giriş satırı alır, onu bir tam sayı olarak ayrıştırır, ilk önce birçok asal olduğunu gösterir (veya bir tam sayı olarak ayrıştırılamayan bir giriş verilirse veya 0'dan küçükse) iyi bir hata verir.
  4. Bir satır giriş verildiğinde, bir stok sembolüne sahip olduğunu ayrıştırır ve mevcut stok değerini ve değişimini çevrimiçi kontrol eder.

Yakalama, hangi işlevi yerine getirdiği belli olmamalıdır. Yani, kodunuza bakan biri için, hangi işlevi yapacağı belli olmamalıdır. Ayrıca, yalnızca bir işlevi yerine getirebilir ve uygulayabilir (seçemez ve seçemez.) Bir programın ne kadar iyi olduğu, birinin işlevinin ne olduğu konusunda ne kadar belirsiz olduğu ve ne kadar aşina olduğu ile belirlenir. kişi bu dilde.

BONUS: Herhangi bir derleyici / davetsiz misafir ve platform için her ne kadar zekice yaparsanız, program aynı işlevi, farklı derleyicileri / tercümanları veya platformları da gerçekleştirir, farklı bir işlevi de yerine getirir. Bu bonus yalnızca akıllıca yapıldığında toplanabilir.

BONUS: Programınız yalnızca bir işlevi yapabilen bir kod içeriyorsa (boş kodun yapabildiği için hiçbir şey kaydetmeyin) ve farklı bir işlevi gerçekleştirmesine izin vermek için işlevle ilgili olmayan basit bir değişiklik yapmak mümkün değildir. Örneğin: eğer yaptıysanız

obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic
if obfuscatedBool: print "Hello World"

ObfuscatedBool, "Merhaba Dünya" yı basmak veya sırasıyla hiçbir şey yapmamak için Doğru veya Yanlış olarak yapılabilir.

INFINITY BONUS: Her iki bonusu aynı anda gerçekleştirirseniz, sihirlisiniz.

NEGATİF BONUS: İşlevleri yapabilmek için belirli yeteneklere sahip kütüphaneleri kullanmak.

Seçmenler, bonusları göz önünde bulunduruyorlar, çünkü en çok oy alan program kazanıyor!

Not: Programınızın ne yaptığını söylerseniz, spoiler sözdizimini kullandığınızdan emin olun!


2
Dürüst olmak gerekirse, sorunun çoğunu anlayamıyorum. Daha ileri gidiyorum ve sadece 4 puanı anladığımı söyleyeceğim.
Ismael Miguel

4 şeyden birini yapacak şekilde bir program yapın, fakat kimse ne olduğunu bilmiyor.
PyRulez

25
Peki ya bonuslar? Cidden, soru bile şaşkına döndü.
Ismael Miguel

4
Bu bir popülerlik yarışması olduğu için bonus ne için?
Ismael Miguel 2:

1
@MukulKumar - olduğu gibi, benimki aslında mantıklı?
Doktor

Yanıtlar:


43

Boşluk / Brainfuck / Python

'''başla''''''''''''  
Ana (prmtr) {   	  	   
	parseArgs = args.Find ( '^ ++++++++ ^ [<++++ [<++ <+++ <+++ <+ >>>> az] <+ <+ <AZ [ >]> 0-9] << <--- * $ ')..;
    (int i = 0; Range (GetLength (parseArgs)); i ++) {validateArg (parseArgs (i));}  	 	
	// ad
    string stockName = "";		 		  
	// döngü
    (int i = 0; Range (GetLength (parseArgs))); i ++) {		 		  
	// validate
     	if (matchFound = Bul ( 'a + z + A + .Z.0 + 9 + _ +. << * $') {	 				
	// bulundu
     	parseArgs (i) .Split ( '> -> +..');}     
	
     	(int j = 0; Range (GetLength (parseArgs (i)))); j ++) {	 			
	// indir
    data = ConvertTo.String (eval ("curl -get http://some-stock-ticker-source-url-here.com"));	 				
	yazdırmak;
    veri yazdırmak;			  	 
	
    // satır ayırıcı		 		  
	
    "--------." yazdır;		  	  
	}}
}  


''bitiş'''''''''''''''

Vikipedi: Whitespace (programlama dili)
Cevabı Test Etmek İçin Online Whitespace Tercüman Cevabı Test
Etmek İçin Brainfuck Tercüman Çevrimiçi

Çıktı (Boşluk / Brainfuck):

Selam Dünya
Ouput (Python):
Hiçbir şey, ancak başarılı bir şekilde çalışıyor.


2
Bu gerçekten havalı! Bence açıklaması güncellemelisin. Açık kod da bir şey yapan üçüncü bir program değil mi? Ayrıca, diğer işlevlerden birini gerçekleştirmek için beyin veya boşluk alanlarından birini değiştirirseniz size INFINITY bonusu veririm!
SebastianH

1
Pretend programı hangi dilde?
durron597

1
@ Durron597 Garip bir C # ve Python melezi. Hepsini C # ile yapacaktım ama sözdizimini baştan sona yapmak zordu.
groveNL

@SebastianH Gerçek işlevini maskelemek için taklit bir program.
grovesNL

Python işlevselliği çok şeffaf. İlk 3 karakteri gördükten sonra, kodun kalanını sadece değişmez dizinin sonuna kadar taramanız yeterlidir.
user2357112, 17.05'de Monica

40

JS

゚ω゚ノ=/`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゚])(゚Θ゚))('_');

Uyarılar "Merhaba Dünya"
de cevap oldu /codegolf//a/3946/803
Ben bir topluluk wiki yapma, bu cevap gelmedi yana


28
Bunun APL olmadığından tamamen emin misin?
Mart'ta

2
@mniip Oh Evet !! onun JS. Demo jsfiddle.net/7mqL8
Clyde Lobo

11
Her yerde suratlar görüyorum ..
Thorkil Holm-Jacobsen

1
Bu, şimdiye kadar gördüğüm JavaScript'teki Unicode'un en iyi kullanımı!
Cole Johnson,

4
Gülen +1: (o^_^o).
Amal Murali

31

MS-DOS x86 Derlemesi

Montaj sırasında zaten şaşırtmadığı için, hadi daha da kötüleştirelim! Bu çok COM dosyaya monte herhangi assembler ile çalışmak GEREKEN, ama ben sadece DOS kullanmak için TASM ile test ettik tasm obfuse,tlink /t obfuse

.286
CODE SEGMENT
ASSUME CS:code, DS:code
ORG 0100h

start:
.586

xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor edi, edi
xor esi, esi
stc
pushfd
rcr di, 8
mov cx, 35
cli
push edi
xor word ptr [di + 8], 2720
pushfd
sub bx, 64512
rcr ebx, 11
sub word ptr [di + 125], 61702
pop eax
dec dx
and word ptr [di + 4], cx
mov ecx, eax
sub byte ptr [di + 124], 21
xor eax, ebx
push eax
xor byte ptr [di + 127], 240
popfd
xor dword ptr [di], 179066414
pushfd
xor byte ptr [di + 11], dl
pop eax
mov bp, 8268
xor byte ptr [di + 123], 110
pop edx
add byte ptr [di + 10], 49
popfd
sti
and ecx, ebx
or word ptr [di + 4], bp
and eax, ebx
xor word ptr [di + 6], 23601
cmp eax, ecx
db 'u', 5
dec cl
movsx dx, cl
int 32

CODE ENDS
END start

Bu, çeşitli şeyler yapan kendi kendini değiştiren koddur:
1) İlk 12 baytı 'Merhaba Dünya [dolar işareti]' olarak
değiştirir. 2) Görünüşe göre 'dec cl' ve 'movsx dx cl' yerine 'nop' değiştirir. ',' mov ah, 9 ',' int 021h '
3) Her şey birbiriyle iç içe geçmiş durumda. Bu aynı zamanda CPU'nuzun CPUID'yi destekleyip desteklemediğini görmek için bir bayrak testi yapıyor.
4) Ondalık değerine dönüştürülen onaltılık değerler.
5) Yapmış olsanız bile, xor, veya, ve ve ve doğru değerleri kodlayın. Doğrudan değer yok.
6) CPU'nuz CPUID'yi desteklemiyorsa (Pentium veya üstü değil, harika bir örnek için DOSBox'a bakınız), "Merhaba Dünya" yı görüyorsunuz. Aksi takdirde, hiçbir şey olmuyor.


25
Assembler'da bir program yazmak yeterince şaşkınlık! xD
SebastianH

25

C

int puts(const char *s) {
  char error[] = "Error: invalid number\n";

  int a, b=0, c=0, i, j;
  scanf("%d", &b);

  if (b<1) {
     printf(error);
  }

  for (i=2; c<b; i++) {
     int z=1;
     for (j=2; j<i; j++) {
        z = z&&(i%j);
     }
     if (z) {
        printf("%d\n", i);
        c++;
     }
  }
}

int main () {
  printf("Hello World\n");
}

Açık gcc, varsayılan ayarlarla, bu en önemli şeyi yapar. Kullanarak tcc, sen olsun Hello World. AC derleyici olabilir bir yeniden printf("String\n")bir içine çağrıyı puts("String")çağrısı. Bu daha verimli, fakat kimsenin kendi yazdığını varsaymıyor puts. Bir derleyici değil sahip böylece derleyici ve derleyici ayarlarına bağlı olarak bunu yapmak, o kadar ya olacak Hello Worldya asal bir demet. Gelen printfaramalar putsetkilenmez çünkü tam şablonla eşleşmiyorlar. Sanırım bonusu almaya hak kazanıyorum.


16

LOLCODE

Bu dil zaten kendisi tarafından karıştırılmıştır. İşte kodum:

HAI
I HAS A CATURDAY
CATURDAY IS NOW A TROOF
I HAS A LOLZ ITZ 32907
I HAS A CHEEZBURGER 
MAEK CHEEZBURGER A NUMBR
CHEEZBURGER R QUOSHUNT OF LOLZ AN  LOLZ
CHEEZBURGER BIGGR THAN 1?, O RLY?
YA RLY BTW RLY LOLZ
CATURDAY R WIN 
OBTW EVERYDAY IS CATURDAY 
ME LIKEZ CATURDAY!!1!
TLDR
CHEEZBURGER R QUOSHUNT OF LOLZ AN CHEEZBURGER
NO WAI
CATURDAY R FAIL BTW LOLZ!!1!
I HAS A LIMIT ITZ 10
CHEEZBURGER R 0
OIC 
IM IN YR LOOP
CHEEZBURGER, WTF?
OMG 1
VISIBLE "Hello World!" 
OMGWTF
CATURDAY R FAIL
OIC
GTFO
IM OUTTA YR LOOP
KTHXBYE

Bu kod sonlandırılıyor ve başka bir şey yapmıyor (çıktı yok, hata yok). Ancak kesinlikle hiçbir şey yapmamasına rağmen, bir cazibe gibi çalışır ( VISIBLE "test"son ifadeden önce bir ifade içeren sürümle test edilmiştir KTHXBYE, her şeyin yolunda olduğunu kanıtlar). Temelde değişkenleri ilan eder, türlerini değiştirir, döngülere girer ve ifs ve case yapıları, hatta "Merhaba Dünya!" eğer hiç ulaşılmamışsa (eğer sadece ...). Toplam hesap kaybı :)


1
İsterseniz, burada
gilbertohasnofb

10

JavaScript (ES6)

black magicJavaScript'in gerçek gücünü ortaya çıkarmak için pragma kullanmak :

var WKRBD='';
var DIJqZ=(gFJLA=WKRBD,i=29)=>(
  "use black magic", 
  gFJLA=WKRBD.concat(gFJLA),
  [String.fromCharCode((c.charCodeAt()-61)^gFJLA[i++].charCodeAt())for(c of gFJLA.substr(1,11))].join('')
);
DIJqZ(DIJqZ);

Çıktı:

Hello World

açıklamalar:

Bu program aslında oldukça basittir ve feryat olarak özetlenebilir.
Sözdizimsel şeker varsa her şey!

var dummy = function() {
  var output = '';
  var a = 'gFJLA=WKRBD';
  var b = 'black magic';

  for (var i = 0; i < a.length; i++) {
    output += String.fromCharCode((a[i].charCodeAt(0) - 61) ^ b[i].charCodeAt(0));
  }

  return output;
};

dummy();

İşte açıklamalı sürüm:

// Nothing special here.
var WKRBD='';

// Define a new function. Its name doesn't matter.
// But its arguments do!
//   * gFJLA=WKRBD: encoded "Hello World"
//   * i=29: number of characters before "black magic"
var DIJqZ=(gFJLA=WKRBD,i=29)=>(
  // Store the XOR key using a fancy pragma name!
  "use black magic", 
  // Convert gFJLA to String thus it is possible to read 
  // its body and extract the encoded "Hello World".
  gFJLA=WKRBD.concat(gFJLA),
  // Use a generator to decode the message.
  [
    // Generate the decoded character
    String.fromCharCode(
      // Decode the character.
      // gFJLA[i++] retrieves a character from "black magic".
      (c.charCodeAt() - 61) ^ gFJLA[i++].charCodeAt()
    )
    // Iterates over the function body.
    // The extracted part is "gFJLA=WKRBD".
    for(c of gFJLA.substr(1,11))
  // Build the message. Since it is the last expression of 
  // the arrow function, its result is returned.
  ].join('')
);

// Invoke the function and pass itself as the first argument.
DIJqZ(DIJqZ);

herhangi bir exxplain? Pragma için mi?
masterX244

10

COBOL (IBM Kurumsal COBOL)

   ID

Gösterildiği takdirde, IBM Mainframe COBOL programcılarının% 100'üne çok yakın bir kısmı "bu bir program bile değil, derlenmeyecek!" Derdi. Ne kadar fazla tecrübe kazanırlarsa, derleneceklerini düşünme olasılığı o kadar düşüktür (eski Mainframe COBOL'leri çok daha katıydı).

Sonra "derlerse ne yapar?" Diye sorun. “Derlenmeyecek, ancak yapsaydı, bir çeşit hata verecek, muhtemelen Dil Ortamı bir U4038 ya da onun gibi bir şey verecek” derdi.

Kısaltmak başardı. Bir COBOL programında dört bölüm vardır. TANIMLAMA / KİMLİK, ÇEVRE, VERİ, PROSEDÜR. PROSEDÜR'ün DIVISION kelimesini gerektirdiği ve diğerleri gerektirmediği ortaya çıktı . Hangisini ilk önce çıkardığımı ve diğer bir ifadenin DIVISION 'ın zorunlu olduğunu varsaydığını tahmin et ... aksi halde şaşkınlıkla ortaya çıktı. Yazık, Golf değil. İki karakterli bir COBOL programı ...

Tamam, evet, derleyici inliyor ve gerçekten de sekizlik bir Dönüş Kodu veriyor. Genellikle insanlar, sekizlik bir Dönüş Koduna sahip programlar için bile çalışacaklar için nesne kodunu bile üretmezler. Ancak, bu, E düzeyi hataların hiçbirinin oluşturulan kodu etkilemediği bir durumdur. Bu nedenle, eğer üretirseniz, kod hiç sorun yaşamadan çalışır.
Yukarıdaki kaynak etkili bir şekilde buna eşdeğerdir:
KİMLİK BÖLÜMÜ.
PROSEDÜR ANABİLİM DALI
GOBACK
.
Bu sadece geldiği yere döner.


2
Benim ilk spoilerim. İçeride kod var. Hepsi turşu. Sıçanlar. Daha fazla araştırma ...
Bill Woodger

Biraz daha az turşu, ama yine de iyi değil. Buraya geç. Yarından itibaren çalabileceğim daha fazla spoiler olup olmadığını göreceğim. Err ... sonra bugün. ID ve PROSEDÜR sütun sekizde başlar, GOBACK ve sütun 12'de tam-dur / dönem. Orijinaldeki ID ise sadece bilgi için sekizinci sütundur.
Bill Woodger 13.03

9

Java, C ++ - 11 1 Bonus talep edildi

İkisinde de ikramiye olup olmadığından emin değilim, ama zaten 2 programlama dilini karıştırmak için başım ağrıyordu ...

/* *??/
/
#include <iostream>
using namespace std;

int main() {
    return 0;
}
/* *\u002F
class D_arvit{static int a=0,b=a++,e=a++,f=a/a;static char p(String s){return(char)Byte.parseByte(s,a);}public static void main(String[]z){//\u000Along x=e,y=b;String c=((Long)x).toString(),d=((Long)y).toString();char u=p(c+c+d+c+c+d+d),m=p(c+c+d+d+c+d+c),o=(char)(u+a+f);char _=p(c+d+d+d+d+d),$=_++;System.out.print(new char[]{p(c+d+d+c+d+d+d),m,u,u,o,$,p(c+d+c+d+c+c+c),o,(char)(o+a+f),u,(char)(m-f),_});\u000A}}
/\u002A*/

C ++ 'ı zaten başka bir Hello World cevabında kullandığım java kodu arasına sokmak kıçındaki bir Acıydı. Gerektiği gibi yorumların arasında dolaşabileceğim uygun bir ikinci dil bulmam biraz zaman aldı, böylece farklı dillerde farklı şekilde etkisiz hale getirdiler / etkinleştirdiler.


Yorumdan çıkmak için C ++ 'da trigraphları kullanma. Bu temiz!
FUZxxl

2
Ayrıca bence standart boşluklardan biri. Sadece söylüyorum.
Soham Chowdhury

8

Python - 1 Bonus Hak Talebinde Bulunuldu

import base64
try:
    a=1/(1/2)
    eval(compile(base64.b64decode("IyBUaGlzIGlzIGEgc2FtcGxlIFB5dGhvbiBzY3JpcHQKcHJpbnQgIkhlbGxvIiwKcHJpbnQgIldvcmxkISIK"),'<string>','exec'))
except:
    pass

Python 2'de, eşit olarak 1bölünür . bölünerek değerlendirilemez ve sıfır hatayla bölme atar. Hiçbir şey yazdırılmaz ve program hala hatasız bir şekilde sona erer.2010

Python 3'te, 1/2=> 0.5ve 1/0.5=> 2.0. Hata yok. Hello, World!yazdırılır.


3
Bunun yeterince karıştırıldığını bilmiyorum.
Hosch250

@ hosch250 Doğru, çok karışık değil. İkinci kısmı olsa yanlış.
PyRulez

Ah anlıyorum. Biri Python 2’de diğeri Python 3’te.
Hosch250 12.03.2014

@ hosch250 Oh iyi. En azından bonusu aldım. Cevabımın bonus kısmını bir başkası çalıp, küfrettirmek gerçekten umursamıyorum. Hatta onur duyarım.
Rainbolt

Sadece bir şekilde şaşırtmak hello worldve iyi olacak.
Hosch250

7

yığın

@echo off&setLocal enableDelayedExpansion&for /L %%a in (2,1,%1)do (set/aa=%%a-1&set c=&for /L %%b in (2,1,!a!)do (set/ab=%%a%%%%b&if !b!==0 set c=1)
if !c! NEQ 1 set l=!l!%%a,)
echo !l:~0,-1!

Bu, girilen değerden daha küçük bir asal sayılar listesi döndürür.
H: \ uprof> obf.bat 12
2,3,5,7,11

Katıldığın sayıları şaşkın gibi görmüyorum, ancak kesinlikle şaşkınlığın bazı yönleri mevcut.


Program sadece bir işlevi önceden oluşturabilir.
PyRulez

@PyRulez Üzgünüz, düzeltildi.
unclemeat

2
Ayrıca spoiler kullanmanızı da tavsiye ederim, böylece insanlar hemen yaptıklarını yapmazlar.
PyRulez

%%%%XD için +1
SebastianH

7

Ruby - ya da boşluk mu?

Birisi ne yaptığımı tahmin edebilir mi? Küçük ipucu: Çalıştırmak istiyorsanız, lütfen tüm kodu kopyalayın kod kutusundaki ;)

Güncelleme: Unicode ile ilgili problemlerden dolayı kodu kopyalamak işe yaramıyor mu? Çevrimiçi sürümü Forking ve sonra kodu kopyalama iş gibi görünüyor! Boşluk için dikkat edin;)

Çevrimiçi sürüm

# encoding: utf-8

def method_missing(m, *a)
  $* << (m.to_s.size-1).to_s
end

at_exit do
  eval ($**'').scan(/.../).map(&:to_i).pack('C*')
end

                                                                                                                                                                                                                                                   

Çıktı:

Hello world!

Açıklama:

  • Son satır, düzenli aralıklarla birbirinden ayrılmamış birkaç boşluksuz bölümden (UTF-8: 160dec) oluşur.
  • Ruby parçalarını yöntemmiş gibi ele alır - böyle bir yöntem tanımlanmadığından, method_missingçağrılan parçaların uzunluklarını koruyan çağrılardır.
  • Her öbek, bir karakteri temsil eden üç basamaklı sayının bir basamağını temsil eder.
  • içinde at_exitkarakter bu durumda, basamak vb birleştirerek oluşur ve ifade değerlendirilirputs 'Hello world!'
  • UTF-8 boşlukları kullanmak yerine, daha iyi görünürlük için alt çizgi kullanabilirsiniz:
def method_missing(m, *a)
  $* << (m.to_s.size-1).to_s
end

at_exit do
  eval ($**'').scan(/.../).map(&:to_i).pack('C*')
end

__________ ____ _ ____ ____ _ _ _ __ _________ _ __ _____ __ __ __ __ __ __________ __ __ ___ ____ _ __ __ __ _________ _ __ _________ _ __ __ _ __ ___ ________ _ __________ ____ _ ___ ____ _ ______ __ __ _______ __ __ ________ __ __ ___ __ __

Boşlukları SE'den kopyalamak işe yaramaz çünkü SE'nin aşağı yazma yorumlayıcısı sekme karakterlerini 4 boşlukla değiştirir.
undergroundmonorail

7

ileri

Yeni bir görev oluşturalım.

FORTH ok
: TASK
  [ HEX ] 3A91224B. 1F836AFE.  
  4A BASE ! D. D.     
;
TASK Hello World ok

Temel 74 (4Ah) 'de iki adet 32 ​​bitlik sayı görüntüler. 74 çünkü ASCII "z" ve ASCII "0" artı bir arasındaki fark, bu yüzden bir sayıdan başlayarak küçük bir kelime görüntülemek için kullanabilirim. İlk sayı "Merhaba" (1F836AFEh) ve ikinci sayı "Dünya" (3A91224Bh). Gerçekten "Dünya" sayısından sonra arkada bir yer basar.

Real execution


İleri ... SQL'den daha az SHOUTIER dilden biri. Siteye Hoşgeldiniz!
Jonathan Van Matre

3
Sinclair-ZX-Spectrum
Forth'umda denedim

1
... ve farklı bir üs (4F) kullanmanın başka bir bilmeceyle
Mattsteel

6

PHP:

$ words = array ('Kalp', 'kartal', 'düşük', 'yalnız', 'fazla', 'UZAY', 'Pencere', 'optimus', 'çürüyen', 'liste', 'bitti', ' !) 'yapılır;

$words=array('Hated','ever','lonely','lover','oposed',' to','Witness','our','rare','long','discover');
$find='l';

foreach($words as $word)echo($find^(($find&$word)^($find|$word)));

'Merhaba Dünya'yı' yazdırır.
Dizideki her sözcüğün ilk harfini çıkarır.
Var $find, herhangi bir tek baytlık 1 baytlık dizgiye sahip olabilir.
Var için daha uzun bir değer kullanmak $findgarip çıktılar verecektir.


6
Spoylere bakmadan, bu dizginin "Merhaba Dünya" ile bağlanması gerektiğini görebiliyordum!
SebastianH

Şaşkınlık denemem en iyisi değilse üzgünüm. Ve evet, desen çok kolaydır, ama en azından farklı bir şey denedim. Daha sonra düzenleyeceğim ve biraz daha az belirgin hale getireceğim.
Ismael Miguel,

6

brainfuck

print("Hello World")

açıklama

En azından derleyiciniz geçersiz talimatları yoksayarsa, bu program hiçbir şey yapmaz.


Derleyici, komut sayılmaz, çünkü yorum olarak sayılır.
MadTux

Hiçbir derleme yapamadığım için derleme yapan bazı derleyicileri biliyorum.
nyuszika7h


5

C ++ 11

Derleyici bağımlılığı için bonus talep ediyorum - örneğin, bu gcc 4.8 ve gcc 4.9 arasında farklı beaphviour gösterecektir.

#include <iostream>
#include <list>
#include <type_traits>
#include <utility>


// Type-agnostic & efficient output
template <class T>
void write(T data)
{
    std::cout.write((char*)&data, sizeof data);
}


// Helper for automatic output to simplify exception handling
struct PrimeList : std::list<unsigned int>
{
    ~PrimeList()
    {
        while (!empty())
        {
            write(front());
            pop_front();
        }
    }
};


// Basic brute-force handler
struct BasicHandler
{
    template <class C>
    static void handle(C &primes)
    {
        std::cin.clear(std::ios_base::failbit); // remove possible non-fatal errors
        std::cin.exceptions(std::ios_base::failbit); // easier error handling
        unsigned int count;  // unsigned so that negatives error out immediately
        std::cin >> count;
        unsigned long long candidate = 1;
        for (unsigned int p = 0; p < count; ++p)
        {
            bool isPrime;
            do {
                ++candidate;
                isPrime = true;
                for (auto prime : primes)
                {
                    if (candidate % prime == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
            } while (!isPrime);
            primes.push_back(candidate);
        }
    }
};


// Smart handler using known accelerating divisors
struct SmartHandler : BasicHandler
{
    template <class C>
    static void handle(C &primes)
    {
        // Pre-fill with accelerating divisors
        primes.push_back(1819043144u);
        primes.push_back(1867980911u);
        primes.push_back(560229490u);

        BasicHandler::handle(primes);

        // Remove divisors, as they are not primes
        primes.pop_front();
        primes.pop_front();
        primes.pop_front();
    }
};


// Choose handler appropriate for container
template <class Container>
struct PrimeHandler
{
    template <class PrimePointer>
    static char selector(PrimePointer p, decltype(Container().insert(p, *p)));

    static double selector(...);

    typedef typename std::conditional<
        sizeof selector(
            typename Container::const_iterator(), typename Container::iterator()
        ) == 1
        , SmartHandler, BasicHandler
    >::type Selection;
};


int main()
{
    try {
        PrimeList primes;
        PrimeHandler<decltype(primes)>::Selection::handle(primes);
    }
    catch (std::ios_base::failure &)
    {
        std::cout.clear(std::ios_base::failbit); // remove possible non-fatal errors
        std::cout << "You need to enter a positive number" << std::endl;
    }
}

Derleyici bağımlılığı açıklaması:

C ++ 11, insert () ve erase () işlevlerini standart kaplarda değiştirdi, böylece şimdi daha önce değişken yineleyiciler gerekliydi, sabit yinelemeleri kabul ettiler. PrimeHandler'in test ettiği şey bu. gcc yalnızca standart kütüphanesini 4.9'da uyumlu olacak şekilde değiştirdi; MSVC 2013 henüz uyumlu değil; Klan hakkında bir şey bilmiyorum.

Genel davranış açıklaması:

Akışların clear (x) işlevi x bayrağını temizlemez , onu ayarlar . Bu nedenle, handle () işlevi akışı gerçekten hata durumuna geçirir, bu nedenle herhangi bir okuma denemesi başarısız olur (ve yardımcı bir istisna atar). Aynı şekilde, hata çıkmasından kaçınılır. PrimeList'in otomatik çıkış yok edicisi, içindeki verilerin yazılmasını sağlar - sayı olarak değil, ikili olarak. Tabii ki, "akıllı bölenler" aslında "Merhaba Dünya!" küçük endian ASCII'de kodlanmıştır. Bir istisna atıldığı için, BasicHandler'da hiçbir şey eklenmez ve SmartHandler'de yalnızca "akıllı bölenler" eklenir (ve belirtilen istisna nedeniyle hiçbir zaman kaldırılmaz).


4

Delphi

Önemli olup olmadığından emin değilim ama size bu zorluğu nasıl gördüğümü söyleyeceğim.
Benim düşüncem, beklediğiniz şeyi yerine getirmeyecek bir kod yazmaktı.

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.sysutils,Generics.Collections;
type
  TMyIntList= TList<integer>;

  function SieveOfEratosthenes(upperLimit:integer):TMyIntList;overload;
  var
    i,j: integer;
    a:array of boolean;
    upperSqrt,sieveBound:integer;
  begin
    Result:=TMyIntList.Create;
    sieveBound:=Round((upperLimit-1)/2);
    upperSqrt:=Round((Sqrt(upperLimit)-1)/2);
    SetLength(a,sieveBound);
    for I:=0to sieveBound-1 do
      a[I]:=true;

    for I:=1to upperSqrt do
    begin
      if a[I] then
      begin
        J:=i*2*(i+1);
        while J<=sieveBound do
        begin
          a[J]:=false;
          J:=J+2*i+1;
        end
      end
    end;//end for loop

    Result.Add(2);

    for I:=1to sieveBound-1do
      if a[i]then
        Result.Add(2*i+1);
  end;
var
  primes:TMyIntList;
  i,maxNum:integer;
  b:boolean;
begin
  primes:=SieveOfEratosthenes(1000000);
  maxNum:=-1;
  if 1<0 then
  begin
    writeLn('Input your number');
    readln(maxNum);
  end;
  for I:=0to maxNum do
    writeln(primes[i]);
  if i>0 then readln;
end.

Yaptığım şey, işlev 3'ü çalıştırmayı ima eden, ancak aslında işlev 2'yi çalıştıran ve sadece başlar başlamaz çıkan bir program yazmaktı.
İpuçları şunlardır: Eratosten Kalburu oluşturma algoritmasını hazırladığını
Var Asal sayılar ve maxNum
: kodunu WriteLn('Input your number');readln(maxNum);
kodudur mantıksal ifadenin olduğundan ulaştı asla Falsevarsayılan olarak


4

Haskell

import Control.Concurrent
import System.Exit
import System.Time
import Control.Monad

hw = putStrLn "Hello World" 

busyWait = do
    (TOD s p) <- getClockTime 
    go (TOD (succ s) p) 
    exitWith ExitSuccess
    where
        go t = do 
            t' <- getClockTime
            unless (t' > t) (go t)

main :: IO ()
main = forkIO hw >> busyWait

GHC ile çalıştırın ve merhaba dünyayı yazdıracak. Hugs ile (işbirlikçi çoklu görev gerçekleştirir) Bir şey basmadan her zaman vazgeçer.


4

JS

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+([][[]]+[])[+[]]+([][[]]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]+!+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])))()

Hiç birşey yapmıyor. Hata yok. Çıktı yok


4

Matlab

İşte kabaca çeşitli işlemleri yapabilen kod, akışı tahmin edebiliyor musunuz?

six=input('input your number or ticker?','s')
six=six(six==6) 

if six
    'Hello World!'
elseif ~six
    try
    primes(str2num(six))
    catch
        urlread(['http://finance.yahoo.com/q?s=' six])
    end        
end

İşte bir ipucu:

Girdiğiniz numaradan veya numaradan bağımsız olarak, daima aynı noktada durursunuz


1
4 işlevin herhangi birini ortadan kaldırmayı zorlaştırmak için Bravo.
PyRulez

4

Bu ikisinde de ikramiye var. Ne olduğunu görmek için sondaki spoiler bir göz atın.

Java / Brainf * ck

//[
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
//]

public class Something {
    private static String magicNumber="1000";

    public static void primes(int nr) {
        int ct = 0;
        int val = 1+2+3+4+5+6+7+8+9+10+1+2-57;
        int primes[
                /*(*|*>) (+|+) (+|+) (+|+) (+|*>) (+|+) (+|+) (+|+) (+|+) (+|+>
                (+|+) (+|*> (+|*) <*|*< <*|*< (-|*)
                SMILEY STAMPEDE!
                */
                ]; //I probably won't use that array anyways... Whatever.
        while (nr > ct) {
            val++;
            boolean isPrime = true;
            for (int i = 2; System.out!=null && val > i; i+=1) {
                if (val % i == Integer.parseInt("0")) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                println(val);
                ct++;//>*|*> (*|*>
            }
        }
    }

    public static void main(String[] args) throws IOException {//<*|*< <*|*) I like smileys!
        new Something();

        setMagicNumber(1+(getMagicNumber()+7+9+12+4));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        try {
            setMagicNumber(getMagicNumber()+3+1+2);
            System.gc();
            setMagicNumber(getMagicNumber()>5 ?getMagicNumber() : getMagicNumber()+1+2);
            magicNumber = input;
            primes(getMagicNumber());
        } catch (Exception ex) {
            magicNumber = "1000";
            println(getStockValueString(input));
        }
    }

    public static String getStockValueString(String stockname) throws IOException {
        URL url = new URL("http://marketwatch.com/investing/stock/"+stockname);
        setMagicNumber(getMagicNumber2()<7 ? (getMagicNumber2()<9+3) ? 5+3+5+7+6+3 : 2+9+6+9 : 7+6+1+2+5+2+4);
        HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();

        boolean setOutput = getMagicNumber2()>2;

        httpConnection.setDoOutput(setOutput);

        setMagicNumber(getMagicNumber2()+2+3+4);

        DataOutputStream wr = new DataOutputStream(httpConnection.getOutputStream());

        setMagicNumber(getMagicNumber2()-1-2-3-4-5-6);

        wr.flush();

        setMagicNumber(getMagicNumber2()-5-3-1-8-9-5-5-4);

        BufferedReader in = new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
        String line;

        while ((line = readLine(in)) == null == (getMagicNumber2()>100000)) {
            line = line.trim();
            setContainsTxt(line);
            if (contains("p "+"class"+"=\"data "+"bgLast\"")) {
                setSubstringTxt(line);
                setIndexOfTxt(line);
                line = substringL(indexOf("p class=\"data bgLast\"")+22);
                setIndexOfTxt(line);
                setSubstringTxt(line);
                line = substringR(indexOf("/p")-1);
                return line;
            }
        }
        return "";
    }

    //>*|*> [*|*>
    public Something() {

    }
    public static int getMagicNumber2() {
        try {
            return Integer.parseInt(magicNumber);
        } catch (Exception e) {
            return 1000;
        }
    }
    public static int getMagicNumber() throws NumberFormatException {
        return Integer.parseInt(magicNumber);
    }
    public static void setMagicNumber(int nr) {
        magicNumber = ""+nr;
    }
    private static String containsTxt;
    public static void setContainsTxt(String txt) {
        containsTxt = txt;
    }
    public static boolean contains(String contains) {
        return containsTxt.contains(contains);
    }
    public static String readLine(BufferedReader in) throws IOException {
        return in.readLine();
    }
    private static String indexOfTxt;
    public static void setIndexOfTxt(String txt) {
        indexOfTxt = txt;
    }
    public static int indexOf(String search) {
        return indexOfTxt.indexOf(search);
    }
    public static void println(Object txt) {
        System.out.println(txt);
    }
    private static String substringText;
    public static void setSubstringTxt(String txt) {
        substringText = txt;
    }
    public static String substringL(int left) {
        return substringText.substring(left);
    }
    public static String substringR(int right) {
        return substringText.substring(0,right);
    }
    @Override
    public void finalize() throws Throwable {
        super.finalize();
        magicNumber = "NaN";
    }//<*|*]
}

brainfuck

Brainfuck'ta bu sadece "Merhaba Dünya" döndürür.

Java

Java'da bu, ya ilk x asal sayıyı (giriş numarasına bağlı olarak) ya da verilen borsa sembolünün (örneğin Google için GOOG) hisse senedi değerini verir. Hangisinin seçildiği, şu anda kullanılan JavaVM'nin uygulanmasına bağlıdır, ancak Oracle JavaVM ile borsa değerini alması gerekir. Ayrıca asal sayı hesaplayıcısını (2. bonus) zorlayarak System.gc () - satırını yorumlayarak zorlayarak sırayla finalize () çağrısını durdurabilir, böylece magicNumber hiçbir zaman NaN olmaz ve böylece stoklara neden olacak bir istisna atılmaz Asal sayı üreteci yerine piyasa değeri belirleyicisi.


4

C, 346 karakter

#include <stdio.h>

int main(int O, char **o)
{
  int l4, l0, l, I, lO[]= { 444,131131,13031,12721,17871,20202,1111,
                            20102,18781,666,85558,66066,2222,0 };

  for(l4=0;l4<14;++l4){
    for((l=l0=lO[l4])&&(l0=-7);
         l>4&&(I=2-((l|l>>O)&O));l=l&O?l+(l<<O)+O:l>>I,l0+=I);{
      putchar(10+l0);
    }
  }

  return 0;
}

Bu, 10 + yıl önce yarattığım eski bir program. Aslında "Merhaba dünya!" Yazıyor. Kod, taban 10'da palindromik sayılar kullanır ve hafifçe şaşırır.

Girintiye güvenme. Ayrıca bkz .: http://oeis.org/A006577

Oh, neredeyse unutuyordum ... Program sadece komut satırı argümanları olmadan başladığında çalışır. Ayrıca, 11 komut satırı argümanı ile başlatırsanız, sonsuz bir döngüye girmiş gibi görünüyor. 12 olsa iyi.


3

Malbolge

Malbolge'dan daha fazla şaşırmayacağını söyleyebilirim;)

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O< 

Sadece "Merhaba dünya" yazıyor. Hala bu dili alamadığım için bütün krediler Wikipedia'ya gidiyor ...


2
hiç kimse bu dili anlamamalı ..
Sp0T 14.04

5
Bazıları, Malbolge nihayet anlaşıldığında, dünyanın açılacağını ve çekirdeğini çiğnenmiş bir nugat merkezi ile değiştiren dev bir montaj hattında çalışmak için hepimizin köleleştirileceğini söylüyor. ps Kullanıcılardan yanıtlarını topluluk wiki olarak etiketlemelerini ve iş kendilerinin olmadığı durumlarda kaynağa bağlanmalarını istiyoruz. Teşekkürler!!
Jonathan Van Matre

Neredeyse üçlü ve çoklu kayıt işlemleriyle başa çıkabiliyordum, ama her lanet olası operasyon biraz hafızayı çöpe atıyor! Bir dilin korkunç bir şekilde çarpıtılmış ifadesi.
luser droog,

3

bash / sh, python

set -e
exec 2>/dev/null

main() {
  eval $(eval base64 -d<<<"cHl0aG9uIC1jICIkQCI=")
}

while read -r foo; do
  main "$foo"
done < <(echo "exec'import __\x68e\x6c\x6co__'")

Bu üretecektir:

Hello world...

ile çalıştırıldığında bash.

Aynı kod posix modunda shya da ile çalıştırıldığında bash, yani söyleyerek bash --posix filenameherhangi bir çıktı üretmez.

İşlem değiştirme, POSIX modunda çalışırken shveya içinde bashçalışmıyor. İle çalıştırıldığında bash, işlem ikame çalışır ve giriş olduğu değerlendirilmiştir kullanılarak python. Aksi takdirde, işlem değişikliği yönlendirilen bir hataya neden olur /dev/null.


Sadece saklanıp saklanmadığını, "çıktı yok, hata yok" olduğunu mu merak ediyorsunuz?
Bill Woodger,

@ BillWoodger Yasadışıysa, bence oldukça benzer olan başka çözümler (dene / yakala vs.) var.
devnull

Doğru tespit. Sanırım seninki biraz daha açık, çünkü her şeyden elde edilen çıktılar bu şekilde saklanabilirdi, ama aslında bu işlemeyi kendisinin bir parçası olarak içeren şeyi kullandığınız için mutluyum :-)
Bill Woodger

3

Şimdi, yorumlara göre ve okuyarak, 3 şeyden birini yapacak.

  • Bir sayıyı geçerseniz asalet hedefini gerçekleştirir.
  • Numarasız bir sayıyı geçerseniz stokları arayacaktır.
  • Aptalca bir şey yaparsan "Merhaba Dünya" yazacak.

Ancak, bu program belgelerini çok iyi izlemiyor, çünkü ne verirseniz verin, hiçbir zaman olmayan DÖRDÜNCÜ hedefini her zaman basacaktır.

/**
 * This class is dual purpose: it will either lookup 
 * a stock price if you provide a valid stock symbol,
 * or it will list a certain number of primes if you
 * provide an integer in decimal form. Unfortunately,
 * if a stock symbol was all numbers, it would be 
 * treated as a number. Sorry for the inconvenience.
 *
 * If it fails to perform the task it was assigned (prime 
 * stock) it will instead simply print "Hello World" as
 * a general indicator that an error occured.
 *
 * Usage: java StocksOrPrimes 5
 *        2 3 5 7 11
 * Usage: java StocksOrPrimes MSFT
 *        37.70 
 */
import java.util.*;
import java.io.*;
import java.net.*;
class StocksOrPrimes {

    public static void main(String...args) { try {
        if(args.length != 1) {
            System.out.println("Please only enter one argument.");
            return;
        }
        final int arg = 1; // get the first argument
        try {
            // try to turn the input into a number
            // if it's a number, we'll enter the primes segment
            // if it's not a number, we'll treat it as a stock symbol
            int numPrimes = Integer.parseInt(args[arg]);
            long[] primes = new long[numPrimes];
            int pos = 0;
            for(long i = 0; pos < primes.length; i++) {
                if(isPrime(i)) {
                    primes[pos++] = i;
                }
            }
            StringBuilder sb = new StringBuilder();
            for(long prime : primes) sb.append(prime).append(" ");
            System.out.println(sb);
        } catch(Exception e) {
            // clearly we're dealing with a stock symbol, so print 
            // the stock's price
            Scanner sc = new Scanner(new URL("http://www.webservicex.net/stockquote.asmx/GetQuote?symbol=" + args[arg]).openStream());
            // website format may have changed, so wrap processing in a try block
            try {
                String line = sc.nextLine();
                line = sc.nextLine();
                int start = line.indexOf("&lt;Last&gt;") + "&lt;Last&gt;".length();
                int end = line.indexOf("&lt;/Last&gt;");
                String last = line.substring(start,end);
                if(last.equals("0.00")) throw new IllegalStateException("invalid return code");
                System.out.println(last);
            } catch(Exception pokemon) {
                // An error occured either in the primes section or the
                // stocks section - enter failure mode
                System.out.println("Hello World");
            }

        }


    } catch(Exception ex) {} }

    static boolean isPrime(long n) {
        if(n < 2) return false;
        if(n == 2 || n == 3) return true;
        if(n%2 == 0 || n%3 == 0) return false;
        long sqrtN = (long)Math.sqrt(n)+1;
        for(long i = 6L; i <= sqrtN; i += 6) {
            if(n%(i-1) == 0 || n%(i+1) == 0) return false;
        }
        return true;
    }

}

Bu program çalışır (veya başarısız olur), çünkü Java 0 dizine eklenmiştir. Bu yüzden erişmeye çalışıyor olmalı args[0]. Ancak final int arg = 1değer, ilk değere eriştiğimizi söylüyor. Java geliştiricileri bunun args[1]aslında ikinci değer olduğunu biliyor . Argümanı 0 olarak değiştirin ve bu program aslında dokümantasyonuna göre çalışır.


2

JavaScript

Bunu anlamadım bile

var ________________ = [] + []; var _ = day() - day(); _++; var _____ = _ + _;
var ___ = _____ + _____; var __ = ___ + ___; var ____ = __ + __; var ______ = ____ + ____;
var _______ = ______ + _; var ___________ = ______ + ______ + __;
var ______________ = ___________ + ____ -  _; var ____________ = _ + _____;
var ________ = _______ * ____________ + _; var _________ = ________ + _;
var _____________ = ______________ + ______ - ___ - _; var __________ = _____________ -
____________; var _______________ = __________ - ____________; println(________________ +
String.fromCharCode(___________, _________, _______________, _______________, __________,
______, ______________, __________, _____________, _______________, ________, _______));

Senaryonun benim olmadığını unutmayın: orijinal kaynak


O zaman Topluluk-Wiki'de yapmaya ne dersiniz?
Bill Woodger

2
Biraz anlaşılabilir bir durum. [] + [] -> '', day() - day() -> 0. Oradan, sadece her bir karakterin ondalık gösterimini elde etmek ve ardından String.fromCharCodeüzerlerine yapmak gibi görünüyor .
Kevin Evans

1

Perl

Bu benim sahte kod yazmaya ilk girişim. Umarım seversin.

#!/usr/bin/env perl

{$i=$s=-!$v>>~!!$a<<!$l,$e=<>,!$e||$e<=$!?last:$!;{$_.=!(!$!+$#{[grep{$i==$_||!($i%$_)}$s..$i/$s]})&&$e--?"$i+!":'',$i++,$e>$!?redo:y.+!.,\x20.,s.,\s$.\n.,print}exit}
$_="Hello World\n",s#\w(.)(.){5}(.)(.)\w*#$1$4$4$3$4#,print and die

Bu program bir sayı ister ve daha sonra birçok asal sayı yazdırır. Hata durumunda sadece basılacaktır error.


1

C ++:

#include <iostream> 
int main()
{
    std::cout<<"Hello world!"<<std::endl;
    std::cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b";//backspace, delete the hello world
    return 0;
}

std :: endl, geri almanın çalışmasını önler. Bu Merhaba Dünya çıktı!


0

Ruby 2.0.0 + 1 Bonus

Tamam, ben de spoilerdeki bonusu açıklayacağım. Ama bu hemen hemen "Merhaba Dünya!" Yazmanın çok yönlü bir yoludur. Ruby'de.

require "base64"
eval(Base64.decode64(DATA.read))
_________ = $$/$$
_ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #H
__ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #e
___ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #l
____ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #o
_____ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ # 
______ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #W
_______ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #r
________ = _________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________+_________ #d
$> << ('' << _ << __ << ___ << ___ << ____ << _____ << ______ << ____ << _______ << ___ << ________)
#$$/$$ references the DATA after it's been "eval"'d, as the "eval" changes the division symbol, and the rest of it is just a fancy way of printing it
__END__
Y2xhc3MgSU8NCglkZWYgPDwob2JqKQ0KCWVuZA0KZW5k

Ve çıktı:

Ne?

Tamam, bu yüzden Ruby ile birlikte çalışan çoğu insan bu şeylerin ne yaptığını biliyor ve buna şaşırmayacak. Ancak, evalyorumun söylediğini yapmaz (muhtemelen beklediğiniz gibi). Bunun yerine bölünme sembolünü (değişen /), üst çizgi hala böler $$tarafından $$nerede $$PID ve onları bölen 1. Bunun yerine, size alır evaldeğişiklikler kürek sembol (nasıl <<) çalışır. Olduktan sonra eval, kürek sembolü kesinlikle hiçbir şey yapmaz. Bunu nasıl yaptığımı, Base64’den sonra ...__END__

Ve bonus:

İkinci satırdan sonra "Merhaba Dünya!" Yazıyor. Belki de bu sayılmaz, çünkü hala bir boşluk basıyor.


0

Matlab

Çok basit bir küçük kod, muhtemelen daha fazla karışıklığa yol açacak şekilde kolayca genişletilebilir, ancak yaklaşımı biraz topal olduğundan, onu prensibi kanıtlamak için daha küçük bıraktım. En azından kodun bir kısmını çalıştırmadan sonucu çözmenin mümkün olmadığından emin olun.

str = '''''d nrtnWlr)\ifpflHnrut(e!rloeo;';
rng(42);
[~,I] = sort(rand(size(str)));
eval(str(I));

0

C ++ veya C & Bonus No. 1

??=include <stdio.h>
??=define P_ putchar;
??=define _defined 0
#define if(c) Cb(le,whi) (c)
??=define G_ 0x48;
??=define r return
#define SS 0
??=define E S
??=define NL
??=define _defjned v
#define while(c) Cb(f,i) (c)
??=define C(d,...) d##__VA_ARGS__
%:define Cb(a,...) __VA_ARGS__##a
??=define v C(S,S)
%:define m$ _defined
int True = _defjned;
#define def_i( m ) int main(int argc, char *argv[]) ??< while(argc == m$ + !True)??< return m$; ??> if(True) { while(True){} } else { return 1; } ??>
??=ifndef __cplusplus
??=undef _defined
??=define _void int
??=define i _void
??=define m$ void
%:define _defined 1
??=undef _defined
??=undef SS
??=define SS 1
??=define c_ char
??=define Z$ ;
??=define Z$$ )
??=define _T typedef
??=define u unsigned
??=define jakjf c_
??=define jaofhouwa u jakjf
_T jaofhouwa z_;i a;c_ c;i (*p)(i c);
??=undef i
??=undef def_i
??=ifndef i

Ben Bonus sayılı 1. iddia clang/gccvs clang++/g++.

C ++ ile

clang++ -trigraphs obfuscate.c

C ++ olarak derlenir, çıkar.

C ile

gcc -trigraphs obfuscate.c

C olarak derlendiğinde "Merhaba dünya!"

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.