Tantangan Kebingungan [ditutup]


24

Anda harus menulis sebuah program yang melakukan salah satu dari yang berikut ini.

  1. Hanya menampilkan "Hello World" tidak melakukan hal lain
  2. Berhenti dan tidak ada yang lain (tidak ada output, tidak ada kesalahan.)
  3. Mengambil satu baris input, mem-parsingnya sebagai bilangan bulat, menampilkan bilangan prima pertama (atau memberikan kesalahan yang bagus jika diberikan input yang tidak dapat diuraikan sebagai bilangan bulat, atau kurang dari 0.)
  4. Diberikan satu baris input, ia mem-parsingnya memiliki simbol stok, dan memeriksa secara online untuk nilai stok saat ini dan perubahannya.

Tangkapannya, seharusnya tidak jelas fungsi yang dilakukannya. Yaitu, untuk seseorang yang melihat kode Anda, seharusnya tidak jelas fungsi mana yang akan dilakukan. Selain itu, ia hanya dapat melakukan dan dapat melakukan satu fungsi (tidak dapat memilih dan memilih.) Seberapa baik program ditentukan oleh seberapa tidak pasti seseorang yang melihatnya seperti apa fungsinya, dan seberapa familiar seseorang dengan bahasa itu.

BONUS: Jika Anda dengan cara yang cerdik membuatnya walaupun untuk satu kompiler / intrpreter dan platform apa pun, program ini juga akan melakukan fungsi yang sama, kompiler / penerjemah atau platform yang berbeda, itu akan melakukan fungsi yang berbeda. Bonus ini hanya dapat dikumpulkan jika dilakukan dengan cerdik.

BONUS: Jika program Anda hanya berisi kode yang mampu satu fungsi (tidak menyimpan apa-apa, karena kode kosong mampu melakukan itu), dan tidak mungkin membuat modifikasi sederhana yang tidak terkait dengan fungsi untuk memungkinkannya melakukan fungsi yang berbeda. Misalnya: jika Anda melakukannya

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

Tidak akan dihitung sebagai Bool dapat dibuat Benar atau Salah untuk membuatnya mencetak "Hello World" atau tidak melakukan apa-apa masing-masing.

BONUS INFINITY: Jika Anda menyadari kedua bonus secara bersamaan, Anda ajaib.

BONUS NEGATIF: Menggunakan perpustakaan dengan kemampuan khusus untuk melakukan fungsi.

Pemilih, ambil bonus untuk dipertimbangkan, karena program dengan suara terbanyak menang!

Catatan: Jika Anda mengatakan apa yang program Anda lakukan, pastikan untuk menggunakan sintaks spoiler!


2
Sejujurnya, saya tidak bisa mengerti sebagian besar pertanyaan. Saya melangkah lebih jauh dan akan mengatakan bahwa saya hanya mengerti 4 poin.
Ismael Miguel

Buatlah program sedemikian rupa sehingga ia melakukan salah satu dari 4 hal, tetapi tidak ada yang tahu apa.
PyRulez

25
Dan bagaimana dengan bonusnya? Serius, bahkan pertanyaannya dikaburkan.
Ismael Miguel

4
Karena ini adalah kontes popularitas, untuk apa bonusnya?
Ismael Miguel

1
@MukulKumar - seperti, milik saya sebenarnya masuk akal?
TheDoctor

Jawaban:


43

Spasi / Brainfuck / Python

'''mulai''''''''''''  
main (args) {   	  	   
	parseArgs = args.Find ('^ ++++++++ ^ [<++++ [<++ <+++ <+++ <+ >>>> az] <+ <+ <AZ [ >]> 0-9] <<. <---. * $ ');
    untuk (int i = 0; Rentang (GetLength (parseArgs)); i ++) {validateArg (parseArgs (i));}  	 	
	//nama
    string stockName = "";		 		  
	// loop
    untuk (int i = 0; Rentang (GetLength (parseArgs)); i ++) {		 		  
	//mengesahkan
     	if (matchFound = Temukan ('a + z + A + .Z.0 + 9 + _ +. << * $') {	 				
	//ditemukan
     	parseArgs (i) .Split ('> -.>. +');}     
	
     	untuk (int j = 0; Rentang (GetLength (parseArgs (i))); j ++) {	 			
	// unduh
    data = ConvertTo.String (eval ("curl-get http://some-stock-ticker-source-url-here.com"));	 				
	mencetak;
    mencetak data;			  	 
	
    // pemisah garis		 		  
	
    cetak "--------.";		  	  
	}}
}  


''selesai'''''''''''''''

Wikipedia: Whitespace (bahasa pemrograman)
Online Whitespace Interpreter untuk Menguji Jawaban
Online Brainfuck Interpreter untuk Menguji Jawaban

Keluaran (Whitespace / Brainfuck):

Halo Dunia
Ouput (Python):
Tidak ada, tetapi berjalan dengan sukses.


2
Ini sangat keren! Saya pikir Anda harus memperbarui deskripsi. Bukankah kode yang jelas program ketiga yang melakukan sesuatu juga? Juga jika Anda dapat mengubah salah satu brainfuck atau whitespace untuk melakukan salah satu fungsi lainnya, saya akan memberikan Anda bonus INFINITY!
SebastianH

1
Dalam bahasa apa program berpura-pura itu?
durron597

1
@ durron597 Ini adalah C # dan Python hybrid yang aneh. Saya akan melakukan semuanya dalam C # tetapi sulit untuk membuat sintaks bekerja sepanjang jalan.
grovesNL

@SebastianH Ini adalah program pura-pura untuk menutupi fungsi sebenarnya.
grovesNL

Fungsionalitas Python terlalu transparan. Setelah Anda melihat 3 karakter pertama, Anda hanya perlu memindai sisa kode untuk akhir string literal.
user2357112 mendukung 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゚])(゚Θ゚))('_');

Lansiran "Hello World"
Dijawab di /codegolf//a/3946/803
Karena saya tidak menemukan jawaban ini, menjadikannya wiki komunitas


28
Apakah Anda sepenuhnya yakin ini bukan APL?
mniip

2
@mniip Oh Ya !! ini adalah JS. Demo jsfiddle.net/7mqL8
Clyde Lobo

11
Saya melihat smiley di mana-mana ..
Thorkil Holm-Jacobsen

1
Ini adalah penggunaan Unicode terbaik dalam JavaScript yang pernah saya lihat!
Cole Johnson

4
1 untuk smiley: (o^_^o).
Amal Murali

31

Perakitan MS-DOS x86

Karena itu belum dikaburkan ketika sedang berkumpul, mari kita membuatnya lebih buruk! HARUS ini bekerja dengan assembler apa pun yang dapat berkumpul ke file COM, tapi saya hanya diuji dengan TASM untuk DOS menggunakan 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

Ini adalah kode modifikasi diri yang melakukan beberapa hal:
1) Ini memodifikasi 12 byte pertama menjadi 'Hello World [tanda dolar]'
2) Ini memodifikasi yang tampaknya tidak pada tempatnya 'dec cl' dan 'movsx dx cl' menjadi 'nop ',' mov ah, 9 ',' int 021h '
3) Semuanya saling bersinggungan satu sama lain. Ini juga melakukan pengujian flag untuk melihat apakah CPU Anda mendukung CPUID
4) Nilai hex dikonversi menjadi desimal sehingga Anda tidak memiliki petunjuk ....
5) Bahkan jika Anda melakukannya, ia menggunakan xor, atau, dan dan sub untuk memodifikasi yang sudah ada kode ke nilai yang benar. Tidak ada nilai langsung.
6) Jika CPU Anda tidak mendukung CPUID (bukan Pentium atau lebih, lihat DOSBox untuk contoh yang bagus), Anda melihat "Hello World". Kalau tidak, tidak ada yang terjadi.


25
Menulis program di Assembler sudah cukup membingungkan! 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");
}

Aktif gcc, dengan pengaturan default, ini melakukan hal utama. Menggunakan tcc, Anda dapatkan Hello World. Kompiler AC dapat menulis ulang printf("String\n")panggilan menjadi puts("String")panggilan. Ini lebih efisien, tetapi menganggap tidak ada yang menulis sendiri puts. Kompiler tidak harus melakukan ini, jadi tergantung pada kompiler dan pengaturan kompiler Anda, Anda akan mendapatkan salah satu Hello Worldatau sekelompok bilangan prima. The printfpanggilan dalam putstidak terpengaruh, karena mereka tidak cocok template yang tepat. Saya pikir saya memenuhi syarat untuk bonus.


16

LOLCODE

Bahasa ini sudah dikaburkan dengan sendirinya. Ini kode saya:

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

Kode ini berhenti dan tidak melakukan hal lain (tidak ada output, tidak ada kesalahan). Tetapi meskipun tidak melakukan apa-apa, itu berjalan seperti pesona (diuji dengan versi yang berisi VISIBLE "test"pernyataan sebelum pernyataan terakhir KTHXBYE, membuktikan bahwa semuanya baik-baik saja). Pada dasarnya ia menyatakan variabel, mengubah tipenya, memasukkan dalam loop dan jika dan kasus membangun, bahkan memiliki garis yang akan mencetak "Hello World!" jika pernah mencapai (jika hanya mencapai ...). Total pemborosan perhitungan :)


1
Jika mau, Anda dapat mengujinya di sini
gilbertohasnofb

10

JavaScript (ES6)

Menggunakan pragma black magicuntuk mengungkapkan kekuatan sejati JavaScript:

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

Keluaran:

Hello World

Penjelasan:

Program ini sebenarnya cukup sederhana dan bisa diringkas seperti di bawah ini.
Segala sesuatu yang lain jika gula sintaksis!

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

Ini adalah versi beranotasi:

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

ada penjelasan? untuk pragma?
masterX244

10

COBOL (IBM Enterprise COBOL)

   ID

Jika ditunjukkan, sangat dekat dengan 100% programmer COBOL IBM Mainframe akan mengatakan "itu bahkan bukan program, itu tidak akan dikompilasi!". Semakin banyak pengalaman yang mereka miliki, semakin kecil kemungkinan mereka berpikir itu akan dikompilasi (karena COBOL Mainframe lama jauh lebih ketat).

Kemudian tanyakan "jika itu dikompilasi, apa fungsinya?" Mereka akan berkata, "itu tidak akan dikompilasi, tetapi jika itu dilakukan, itu akan memberikan semacam kesalahan, mungkin Language Environment akan memberikan U4038 atau sesuatu seperti itu".

Berhasil mempersingkat. Ada empat DIVISI dalam program COBOL. IDENTIFIKASI / ID, LINGKUNGAN, DATA, PROSEDUR. Ternyata PROSEDUR membutuhkan kata DIVISION dan yang lainnya tidak. Tebak yang mana yang saya hapus terlebih dahulu dan menganggap bahwa kata-kata lain DIVISI adalah wajib ... membingungkan lebih lanjut mengungkapkan sebaliknya. Sayang bukan Golf. Program COBOL dua karakter ...

OK, ya, kompiler tidak mengeluh, dan memang memberikan Kode Pengembalian delapan. Biasanya orang bahkan tidak menghasilkan kode objek untuk, apalagi mencoba mengeksekusi, program dengan Kode Pengembalian delapan. Namun, ini adalah kasus di mana tidak ada kesalahan E-level yang memengaruhi kode yang dihasilkan. Jadi kode berjalan tanpa masalah sama sekali, jika Anda menghasilkannya.
Sumber di atas secara efektif setara dengan ini:
ID DIVISION.
DIVISI PROSEDUR.
GOBACK
.
Yang hanya kembali dari mana asalnya.


2
Spoiler pertama saya. Ada kode di sana. Semua acar. Tikus Penelitian lebih lanjut ...
Bill Woodger

Agak kurang acar, tapi tetap tidak baik. Terlambat di sini. Saya akan melihat apakah ada lebih banyak spoiler yang bisa saya curi mulai besok. Err ... nanti hari ini. ID dan PROSEDUR dimulai pada kolom delapan, GOBACK dan full-stop / periode di kolom 12. ID dalam aslinya juga kolom delapan, hanya untuk info.
Bill Woodger

9

Java, C ++ - 11 1 Bonus diklaim

Tidak yakin tentang apakah saya mendapat kedua bonus, tetapi itu sudah memusingkan untuk mencampur 2 bahasa pemrograman ...

/* *??/
/
#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*/

Mendapatkan peralihan C ++ di antara kode java yang sudah saya gunakan pada jawaban Hello World yang lain adalah rasa sakit di pantat. Butuh waktu beberapa saat untuk menemukan bahasa kedua yang pas di mana saya dapat menyulap komentar sesuai kebutuhan sehingga mereka menonaktifkan / mengaktifkan secara berbeda pada berbagai bahasa


Menggunakan trigraph untuk keluar dari komentar di C ++. Ini rapi!
FUZxxl

2
^ Kurasa juga salah satu celah standar. Hanya mengatakan.
Soham Chowdhury

8

Python - 1 Bonus Diklaim

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

Dalam Python 2, 1dibagi dengan 2sama dengan 0. 1dibagi dengan0 tidak dapat dievaluasi dan melempar pembagian dengan kesalahan nol. Tidak ada yang dicetak, dan tetap saja program berakhir tanpa kesalahan.

Dalam Python 3, 1/2=> 0.5, dan 1/0.5=> 2.0. Tidak ada kesalahan Hello, World!dicetak.


3
Saya tidak tahu bahwa ini cukup membingungkan.
Hosch250

@ hosch250 Benar, tidak terlalu dikaburkan. Apakah bagian kedua itu salah.
PyRulez

Oh begitu. Itu satu di Python 2 dan yang lain di Python 3.
Hosch250

@ hosch250 Oh well. Setidaknya saya mendapat bonus. Saya tidak akan keberatan jika orang lain mencuri bagian bonus dari jawaban saya dan mencetaknya. Aku akan merasa terhormat, bahkan.
Rainbolt

Hanya mengaburkan hello worlddalam beberapa cara dan Anda akan baik-baik saja.
Hosch250

7

Batch

@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!

Ini akan mengembalikan daftar bilangan prima kurang dari nilai yang dimasukkan.
H: \ uprof> obf.bat 12
2,3,5,7,11

Saya tidak tahu bahwa jumlah yang berbelit-belit dianggap membingungkan, meskipun pasti ada beberapa aspek kebingungan yang ada.


Program hanya dapat membentuk satu fungsi.
PyRulez

@PyRulez Maaf, sudah diperbaiki.
hapus dekor

2
Saya juga merekomendasikan menggunakan spoiler agar orang tidak segera melakukan apa.
PyRulez

+1 untuk %%%%xD
SebastianH

7

Ruby - atau apakah itu Ruang Putih?

Adakah yang bisa menebak apa yang saya lakukan? Petunjuk kecil: jika Anda ingin menjalankannya, salin semua kode di kotak kode;)

Pembaruan: Menyalin kode tampaknya tidak berfungsi karena masalah terkait Unicode? Memalsukan versi online dan kemudian menyalin kode tampaknya berhasil! Carilah spasi putih;)

Versi online

# 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

                                                                                                                                                                                                                                                   

Keluaran:

Hello world!

Penjelasan:

  • Baris terakhir terdiri dari beberapa potongan spasi tanpa putus (UTF-8: 160dec) yang dipisahkan oleh spasi reguler.
  • Ruby menangani potongan seolah-olah itu metode - karena tidak ada metode seperti itu yang didefinisikan, method_missingyang disebut, yang menyimpan panjang potongan
  • Setiap potongan mewakili satu digit dari angka tiga digit, yang mewakili karakter
  • dalam at_exitkarakter dibentuk dengan menggabungkan angka dll dan ekspresi dievaluasi, dalam hal iniputs 'Hello world!'
  • Alih-alih menggunakan UTF-8 spasi putih, Anda juga bisa menggunakan garis bawah untuk visibilitas yang lebih baik:
def method_missing(m, *a)
  $* << (m.to_s.size-1).to_s
end

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

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

Menyalin Spasi Putih dari SE tidak berfungsi karena penerjemah markdown SE menggantikan karakter tab dengan 4 spasi.
undergroundmonorail

7

Keempat

Mari kita membuat TUGAS baru.

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

Ini menampilkan dua angka 32-bit dalam basis 74 (4Ah). 74 karena ini adalah perbedaan antara ASCII "z" dan ASCII "0" plus satu, jadi saya dapat menggunakannya untuk menampilkan kata-kata kecil mulai dari angka. Angka pertama adalah "Halo" (1F836AFEh) dan angka kedua adalah "Dunia" (3A91224Bh). Ini benar-benar mencetak spasi setelah nomor "Dunia".

Real execution


Ke ... salah satu dari beberapa bahasa SHOUTIER selain SQL. Selamat datang di situs ini!
Jonathan Van Matre

3
Saya mencobanya pada Sinclair-ZX-Spectrum Forth saya dan berhasil ...
Mattsteel

1
... dan sadari bahwa menggunakan basis yang berbeda (4F) akan sesuai dengan puzzle lain
Mattsteel

6

PHP:

$ words = array ('Heart', 'eagle', 'low', 'lonely', 'over', 'SPACE', 'Window', 'optimus', 'rotting', 'rotting', 'list', 'done', ' ! selesai ');

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

Cetakan 'Hello World'.
Ini menghapus huruf 1 dari setiap kata dalam array.
Var $finddapat memiliki string byte tunggal 1 byte.
Menggunakan nilai yang lebih panjang untuk var $findakan memberikan output yang aneh.


6
Tanpa melihat spoiler, saya bisa melihat bahwa string ini harus terhubung dengan "Hello World"!
SebastianH

Maaf jika percobaan saya yang membingungkan bukan yang terbaik. Dan ya, polanya terlalu mudah, tetapi setidaknya saya mencoba sesuatu yang berbeda. Saya akan mengeditnya nanti dan membuatnya sedikit kurang jelas.
Ismael Miguel

6

Brainfuck

print("Hello World")

Penjelasan

Setidaknya jika kompiler Anda mengabaikan instruksi yang tidak valid, program ini tidak melakukan apa pun.


Kompiler harus mengabaikan non-perintah, karena mereka dihitung sebagai komentar.
MadTux

Saya tahu beberapa penyusun kesalahan pada mereka, meskipun saya tidak bisa menyebutkan nama.
nyuszika7h

Mengingatkan saya pada tantangan lain ini
Qeole

5

C ++ 11

Saya mengklaim bonus untuk ketergantungan compiler - misalnya, ini akan menunjukkan beahviour berbeda antara gcc 4.8 dan gcc 4.9.

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

Penjelasan ketergantungan kompiler:

C ++ 11 mengubah persyaratan untuk fungsi insert () dan erase () dalam kontainer standar sehingga mereka sekarang menerima iterator konstan, di mana sebelumnya mereka membutuhkan iterator yang dapat diubah. Itulah yang diuji oleh PrimeHandler. gcc hanya mengubah pustaka standarnya agar sesuai pada 4.9; MSVC 2013 belum memenuhi persyaratan; Saya tidak tahu tentang dentang.

Penjelasan perilaku umum:

Fungsi jelas (x) aliran tidak menghapus bendera x , itu mengaturnya . Oleh karena itu, fungsi handle () benar-benar membuat stream dalam status kesalahan, sehingga segala upaya untuk membaca gagal (dan sangat berguna untuk melempar pengecualian). Dengan cara yang sama, output kesalahan dihindari.
Destroyer keluaran-otomatis PrimeList memastikan data apa pun di dalamnya ditulis - sebagai biner, bukan sebagai angka. Tentu saja, "pembagi pintar" sebenarnya "Hello World!" dikodekan dalam ASCII little-endian. Dan karena pengecualian dilemparkan, tidak ada yang ditambahkan di BasicHandler, dan hanya "pembagi pintar" ditambahkan di SmartHandler (dan tidak pernah dihapus, karena pengecualian tersebut).


4

Delphi

Tidak yakin apakah ini diperhitungkan tetapi saya akan memberi tahu Anda bagaimana saya melihat tantangan ini.
Pikir saya adalah untuk menulis kode yang tidak akan mengeksekusi apa yang Anda harapkan.

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.

Apa yang saya lakukan adalah menulis sebuah program yang menyiratkan untuk mengeksekusi fungsi 3 tetapi sebenarnya menjalankan fungsi 2 dan hanya keluar segera setelah dimulai.
Petunjuknya adalah: Algoritma SieveOfEratosthenes untuk menghasilkan primes
Var primes dan maxNum
code: WriteLn('Input your number');readln(maxNum);
Yang merupakan kode yang tidak akan pernah tercapai karena booleans secara Falsedefault


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

Jalankan dengan GHC dan itu akan mencetak hello World. Dengan Hugs (yang mengimplementasikan multitasking kooperatif) Ini akan selalu berhenti tanpa mencetak apa pun.


4

JS

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

Tidak melakukan apa-apa. Tidak ada kesalahan Tidak Ada Output


4

Matlab

Berikut adalah kode yang secara kasar dapat melakukan berbagai operasi, dapatkah Anda memprediksi alurnya?

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

Ini sebuah petunjuk:

Terlepas dari angka atau ticker yang Anda input, Anda akan selalu berakhir di tempat yang sama


1
Bravo untuk membuatnya sulit untuk menghilangkan salah satu dari 4 fungsi.
PyRulez

4

Yang ini melakukan kedua bonus. Lihatlah spoiler pada akhirnya untuk melihat apa fungsinya.

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

Di Brainfuck ini hanya mengembalikan "Hello World".

Jawa

Di Jawa, ini mengembalikan x bilangan prima pertama (tergantung pada nomor input) atau nilai stok dari simbol pasar saham yang diberikan (misalnya GOOG untuk Google). Yang mana yang dipilih tergantung pada implementasi JavaVM yang saat ini digunakan, tetapi dengan JavaVM Oracle itu harus mendapatkan nilai pasar saham. Anda juga dapat memaksa kalkulator bilangan prima (bonus ke-2) dengan mengomentari System.gc () - line, yang pada gilirannya menghentikan panggilan finalisasi () sehingga magicNumber tidak pernah menjadi NaN dan dengan demikian tidak ada pengecualian yang dilemparkan yang akan menyebabkan stok. market value getter untuk dijalankan sebagai pengganti bilangan prima.


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

Ini adalah program lama yang saya buat 10+ tahun yang lalu. Ini benar-benar mencetak "Halo, dunia!" Kode ini menggunakan angka palindromic pada basis 10 dan sedikit dikaburkan.

Jangan percayai lekukannya. Juga, lihat: http://oeis.org/A006577

Oh, saya hampir lupa ... Program ini hanya berfungsi ketika dimulai tanpa argumen baris perintah. Juga, jika Anda memulainya dengan 11 argumen baris perintah sepertinya memasuki loop tak terbatas. 12 baik-baik saja.


3

Malbolge

Saya akan mengatakan bahwa itu tidak bisa lagi dikaburkan daripada Malbolge;)

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

Itu hanya mencetak "Halo, dunia." Semua kredit masuk ke Wikipedia karena saya masih belum mendapatkan bahasa ini ...


2
tidak ada yang seharusnya mengerti bahasa ini ..
Sp0T

5
Ada yang mengatakan bahwa ketika Malbolge akhirnya dipahami, bumi akan terbuka dan kita semua akan diperbudak untuk bekerja di jalur perakitan raksasa yang mengganti intinya dengan pusat nougat yang kenyal. id Kami meminta pengguna menandai jawaban mereka sebagai wiki komunitas, dan menautkan ke sumbernya, ketika karya itu bukan milik mereka. Terima kasih!!
Jonathan Van Matre

Saya hampir bisa menangani pengerjaan ulang ternary dan berkali-kali, tetapi setiap operasi terkutuk menghancurkan sejumlah memori! Corak bahasa yang suram dan mengerikan.
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__'")

Ini akan menghasilkan:

Hello world...

ketika dieksekusi dengan bash.

Ketika kode yang sama dieksekusi dengan shatau dengan bashdalam mode posix, yaitu dengan mengatakan bash --posix filename, itu tidak menghasilkan output apa pun.

Substitusi proses tidak berfungsi di shatau di bashsaat sedang berjalan dalam mode POSIX. Ketika dieksekusi dengan bash, proses substitusi berfungsi dan input dievaluasi menggunakan python. Jika tidak, substitusi proses menyebabkan kesalahan yang dialihkan ke /dev/null.


Ingin tahu apakah hanya menyembunyikannya dianggap sebagai "tidak ada output, tidak ada kesalahan"?
Bill Woodger

@ BillWoodger Jika itu ilegal, maka ada solusi lain (coba / tangkap dll) yang, menurut saya, sangat mirip.
devnull

Titik adil. Saya kira milik Anda hanya sedikit lebih jelas, karena output dari apa pun bisa disembunyikan seperti itu, tetapi karena Anda menggunakan hal yang sebenarnya termasuk pemrosesan itu sebagai bagian dari dirinya sendiri, saya senang :-)
Bill Woodger

3

Sekarang, menurut komentar dan dengan membacanya, ini akan melakukan 1 dari 3 hal.

  • Ini akan melakukan tujuan utama jika Anda memberikan nomor.
  • Ini akan mencari saham jika Anda memberikannya non-angka.
  • Ini akan mencetak "Hello World" jika Anda melakukan sesuatu yang konyol

Namun, program ini tidak mengikuti dokumentasinya dengan baik, karena apa pun yang Anda berikan ... ia akan selalu mencetak tujuan KEEMPAT, yang bukan apa-apa.

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

}

Program ini berfungsi (atau lebih tepatnya gagal) karena Java memiliki 0 array yang diindeks. Jadi itu harus mencoba mengakses args[0]. Namun, final int arg = 1nilainya mengatakan kami sedang mengakses nilai pertama. Pengembang Java tahu bahwa args[1]itu sebenarnya adalah nilai kedua. Ubah arg ke 0 dan program ini benar-benar berfungsi sesuai dengan dokumentasinya.


2

Javascript

Saya bahkan tidak mengerti ini

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

Perhatikan skrip bukan milik saya: sumber asli


Bagaimana kalau membuat di Komunitas-Wiki?
Bill Woodger

2
Ini agak bisa dimengerti. [] + [] -> '', day() - day() -> 0. Dari sana, itu hanya terlihat seperti mendapatkan representasi desimal dari masing-masing karakter, kemudian melakukan String.fromCharCodepada mereka.
Kevin Evans

1

Perl

Ini adalah upaya pertama saya untuk menulis kode yang dikaburkan. Saya harap Anda akan menyukainya.

#!/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

Program ini meminta nomor dan kemudian mencetak bilangan prima. Dalam hal kesalahan itu hanya akan mencetak 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 mencegah backspace bekerja. Ini menghasilkan Hello World!


0

Ruby 2.0.0 + 1 Bonus

Oke, jadi saya akan menjelaskan bonus di spoiler. Tapi ini cukup banyak cara bundaran untuk mencetak "Hello World!" di Ruby.

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

Dan hasilnya:

Apa?

Oke, jadi kebanyakan orang yang pernah bekerja dengan Ruby tahu apa semua hal ini, dan tidak akan terkejut dengan ini. Tapi, evaltidak melakukan apa yang dikatakan komentar itu (seperti yang Anda harapkan). Alih-alih mengubah simbol pembagian ( /), baris teratas masih membelah $$dengan di $$mana $$PID dan membaginya memberi Anda 1. Alih-alih, evalperubahan cara simbol sekop ( <<) bekerja. Setelah itu eval, simbol sekop tidak melakukan apa pun. Anda dapat melihat bagaimana saya melakukan ini dengan Base64 decoding barang setelah__END__

Dan bonusnya:

Mengomentari baris kedua, ia mencetak "Hello World!". Mungkin ini tidak masuk hitungan, karena masih mencetak satu ruang.


0

Matlab

Kode kecil yang sangat sederhana, mungkin dapat dengan mudah diperluas untuk membuatnya lebih dikaburkan, tetapi saya membiarkannya lebih kecil sebagai bukti prinsip, karena pendekatannya agak timpang. Cukup yakin bahwa tidak mungkin mengetahui hasilnya tanpa setidaknya menjalankan bagian dari kode.

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

0

C ++ atau 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

Saya mengklaim Bonus No 1. clang/gccvs clang++/g++.

Dengan C ++

clang++ -trigraphs obfuscate.c

Dikompilasi sebagai C ++, ia keluar.

Dengan C

gcc -trigraphs obfuscate.c

Dikompilasi sebagai C, ia mencetak "Halo, dunia!"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.