난독 화 문제 [폐쇄]


24

다음 중 하나를 수행하는 프로그램을 작성해야합니다.

  1. "Hello World"만 표시합니다.
  2. 종료 및 기타 사항 없음 (출력 없음, 오류 없음)
  3. 한 줄의 입력을 가져 와서 정수로 구문 분석하고, 많은 소수를 처음으로 표시합니다 (또는 정수로 구문 분석 할 수없는 입력이 있거나 0보다 작은 경우 오류가 발생합니다).
  4. 한 줄의 입력이 주어지면 스톡 기호가있는 구문을 분석하고 온라인으로 현재 주식 값과 변경 사항을 확인합니다.

캐치, 어떤 기능을 수행하는지 분명하지 않아야합니다. 즉, 누군가 코드를보고있는 경우 어떤 기능을 수행하는지 분명하지 않아야합니다. 또한 하나의 기능 만 수행하고 수행 할 수 있습니다 (선택하고 선택할 수 없음). 프로그램이 얼마나 잘 수행되는지는 어떤 사람이 자신의 기능이 무엇인지에 대해 얼마나 잘보고 있는지, 얼마나 잘 알고 있는지에 따라 결정됩니다. 사람은 그 언어를 가지고 있습니다.

보너스 : 하나의 컴파일러 / 인터프리터 및 플랫폼에 대해 영리한 방식으로 작성해도 프로그램은 동일한 기능, 다른 컴파일러 / 인터프리터 또는 플랫폼을 수행하지만 다른 기능을 수행합니다. 이 보너스는 영리하게 수행 된 경우에만 징수 할 수 있습니다.

보너스 : 프로그램에 하나의 기능을 수행 할 수있는 코드 만 포함 된 경우 (빈 코드는 가능하므로 아무것도 저장하지 않음) 다른 기능을 수행 할 수 있도록 기능과 관련이없는 간단한 수정은 불가능합니다. 예를 들면 다음과 같습니다.

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

obfuscatedBool로 계산하지 않음 "Hello World"를 인쇄하거나 각각 아무것도하지 않도록 True 또는 False로 만들 수 있습니다.

인피니티 보너스 : 두 보너스를 동시에 실현하면 마법입니다.

부정적인 보너스 : 특정한 능력을 가진 라이브러리를 사용하여 기능을 수행합니다.

가장 많은 표를 얻은 프로그램이 승리하기 때문에 유권자들은 보너스를 고려해야합니다!

참고 : 프로그램이하는 말을한다면 스포일러 구문을 사용해야합니다!


2
솔직히 말해서, 나는 대부분의 질문을 이해할 수 없습니다. 나는 더 나아가서 4 점만 이해한다고 말할 것이다.
Ismael Miguel

네 가지 중 하나를 수행하도록 프로그램을 만드십시오. 그러나 아무도 무엇을 알지 못합니다.
PyRulez

25
그리고 보너스는 어떻습니까? 진지하게도 질문은 난독 화됩니다.
Ismael Miguel

4
이것은 인기 경연 대회이기 때문에 보너스는 무엇입니까?
Ismael Miguel

1
@ MukulKumar-마찬가지로 내 것이 실제로 의미가 있습니까?
TheDoctor

답변:


43

공백 / Brainfuck / Python

'' '시작' '' '' '' '' '' '  
메인 (아르 그) {   	  	   
	parseArgs = args.Find ( '^ ++++++++ ^ [<++++ [<++ <+++ <+++ <+ >>>> az] <+ <+ <AZ [ >]> 0-9] <<. <---. * $ ');
    for (int i = 0; 범위 (GetLength (parseArgs)); i ++) {validateArg (parseArgs (i));}  	 	
	//이름
    문자열 stockName = "";		 		  
	//고리
    for (int i = 0; 범위 (GetLength (parseArgs)); i ++) {		 		  
	// 확인
     	if (matchFound = 찾기 ( 'a + z + A + .Z.0 + 9 + _ +. << * $') {	 				
	//녹이다
     	parseArgs (i) .Split ( '>-.>. +');}     
	
     	for (int j = 0; 범위 (GetLength (parseArgs (i)))); j ++) {	 			
	// 다운로드
    data = ConvertTo.String (eval ( "curl -get http://some-stock-ticker-source-url-here.com"));	 				
	인쇄;
    인쇄 데이터;			  	 
	
    // 줄 구분자		 		  
	
    print "--------.";		  	  
	}}
}  


''끝'''''''''''''''

위키 백과 : 공백 (프로그래밍 언어)
온라인 공백 해석기 테스트 답변
온라인 Brainfuck 해석기 테스트 답변

출력 (공백 / Brainfuck) :

안녕하세요 세계
Ouput (Python) :
아무것도 없지만 성공적으로 실행됩니다.


2
정말 멋지다! 설명을 업데이트해야한다고 생각합니다. 명백한 코드가 뭔가를하는 세 번째 프로그램이 아닙니까? 또한 다른 기능 중 하나를 수행하기 위해 brainfuck 또는 공백 중 하나를 변경할 수 있다면 INFINITY 보너스를 줄 것입니다!
SebastianH

1
척 프로그램은 어떤 언어로되어 있습니까?
durron597

1
@ durron597 이상한 C # 및 Python 하이브리드입니다. C #에서 모든 작업을 수행하려고했지만 구문이 제대로 작동하지 못했습니다.
grovesNL

@SebastianH 실제 기능을 숨기는 척하는 프로그램입니다.
grovesNL

파이썬 기능이 너무 투명합니다. 처음 3자를 본 후에는 문자열 리터럴의 끝 부분에 대해 나머지 코드를 스캔하면됩니다.
user2357112는

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゚])(゚Θ゚))('_');

알림 "Hello World"
/codegolf//a/3946/803 에서 답변을
얻지 못했기 때문에 커뮤니티 위키로 만들었습니다.


28
이것이 APL이 아님을 전적으로 확신하십니까?
mniip

2
@mniip 오 예 !! 그것은 JS입니다. 데모 jsfiddle.net/7mqL8
Clyde Lobo

11
나는 사방 스마일을 볼 ..
Thorkil 홀름 - 야콥 센에게

1
이것은 내가 본 JavaScript에서 유니 코드를 가장 잘 사용하는 것입니다!
Cole Johnson

4
웃는 경우 +1 : (o^_^o).
Amal Murali

31

MS-DOS x86 조립

조립시 이미 난독 처리되지 않았으므로 더 악화시킵니다! 이 COM 파일로 어셈블 할 수있는 모든 어셈블러와 함께 작동해야하지만 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

이것은 몇 가지 일을 수행하는 자체 수정 코드입니다.
1) 처음 12 바이트를 'Hello World [dollar sign]'으로
수정합니다. 2) 외관상 'dec cl'및 'movsx dx cl'을 'nop'로 수정합니다. ','mov ah, 9 ','int 021h '
3) 모든 것이 서로에게 산재 해 있습니다. 이것은 또한 CPU가 CPUID를 지원하는지 확인하기 위해 플래그 테스트를 수행합니다
.4) 16 진수 값을 10 진수로 변환하여 단서가 없습니다 ....
5) 그렇게하더라도 xor 또는 or 및 sub를 사용하여 기존 수정 올바른 값으로 코드화하십시오. 직접적인 가치가 없습니다.
6) CPU가 CPUID를 지원하지 않으면 (Pentium 이상이 아닌 경우 좋은 예는 DOSBox 참조) "Hello World"가 표시됩니다. 그렇지 않으면 아무 일도 일어나지 않습니다.


25
어셈블러에서 프로그램을 작성하는 것은 난독 화입니다! xD
SebastianH

25

기음

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

gcc기본 설정으로,이 총리 일을한다. 를 사용 tcc하면 얻을 수 Hello World있습니다. AC 컴파일러 printf("String\n") 호출을 호출로 다시 작성할 수 있습니다puts("String") . 이것은 더 효율적이지만 아무도 자신의 글을 쓰지 않았다고 가정 puts합니다. 컴파일러는 이 작업 을 수행 할 필요 가 없으므로 컴파일러와 컴파일러 설정에 따라 Hello World소수 또는 소수를 얻을 수 있습니다 . printf의 호출은 puts그들이 정확한 템플릿과 일치하지 않기 때문에 영향을받지 않습니다. 보너스를받을 자격이 있다고 생각합니다.


16

LOLCODE

이 언어는 이미 난독 화되어 있습니다. 내 코드는 다음과 같습니다.

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

이 코드는 종료되고 다른 작업은 수행하지 않습니다 (출력 없음, 오류 없음). 그러나 그것은 절대적으로 아무것도하지 않지만 매력처럼 실행됩니다 ( VISIBLE "test"마지막 진술 앞에 진술 이 포함 된 버전으로 테스트되어 KTHXBYE모든 것이 괜찮다는 것을 증명합니다). 기본적으로 변수를 선언하고, 타입을 바꾸고, 루프를 입력하고, if와 case를 구성하고, "Hello World!" 도달 한 경우 (만 도달 한 경우 ...). 총 계산 낭비 :)


1
원하는 경우 여기에서
gilbertohasnofb

10

자바 스크립트 (ES6)

pragma black magic를 사용하여 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);

산출:

Hello World

설명 :

이 프로그램은 실제로 매우 간단하며 다음과 같이 요약 할 수 있습니다.
구문 설탕이라면 다른 모든 것!

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

주석이 달린 버전은 다음과 같습니다.

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

어떤 exxplain? pragma를 위해?
masterX244

10

COBOL (IBM Enterprise COBOL)

   ID

그 결과 IBM 메인 프레임 COBOL 프로그래머의 거의 100 %가 "프로그램이 아니고 컴파일되지 않습니다!"라고 말합니다. 경험이 많을수록 컴파일 할 것이라고 생각할 가능성이 줄어 듭니다 (오래된 메인 프레임 COBOL이 훨씬 엄격 했으므로).

그런 다음 "컴파일하면 어떻게합니까?" 그들은 "컴파일하지는 않지만, 만일 그렇다면 언어 환경이 U4038 또는 이와 유사한 것을 제공 할 것"이라고 말한다.

그것을 단축 관리. COBOL 프로그램에는 4 개의 DIVISION이 있습니다. 식별 / ID, 환경, 데이터, 절차. PROCEDURE DIVISION이라는 단어 가 필요 하고 다른 것은 그렇지 않습니다. 내가 어느 것을 먼저 제거했는지 추측하고 다른 단어는 필수라고 생각했다. 동정은 골프가 아닙니다. 2 문자 COBOL 프로그램 ...

예, 컴파일러는 신음하고 실제로 8의 리턴 코드를 제공합니다. 일반적으로 사람들은 리턴 코드가 8 인 프로그램에 대한 오브젝트 코드를 생성하지 않고 실행하려고합니다. 그러나 이는 E- 레벨 오류가 생성 된 코드에 영향을 미치지 않는 경우입니다. 따라서 코드를 생성하면 코드가 전혀 문제없이 실행됩니다.
위의 소스는 사실상 다음과 같습니다 :
ID DIVISION.
절차 부문.
뒤로
.
어느 것이 왔을 때 간단히 돌아옵니다.


2
내 최초의 스포일러. 거기에 코드가 있습니다. 모두 절인. 쥐. 더 많은 연구 ...
Bill Woodger

약간 절임이 적지 ​​만 여전히 좋지는 않습니다. 늦었 어 내일부터 훔칠 수있는 스포일러가 더 있는지 살펴 보겠습니다. 어 ... 나중에 오늘 ID와 절차는 8 열에서 시작하고 GOBACK과 12 열의 전체 정지 / 기간입니다. 원본의 ID도 정보를 위해 8 열입니다.
Bill Woodger

9

Java, C ++-11 1 보너스 청구

두 보너스를 모두 받았는지 확실하지 않지만 이미 2 개의 프로그래밍 언어를 혼합하는 것은 두통이었습니다 ...

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

이미 다른 Hello World 답변에 사용 된 Java 코드 사이에서 C ++을 얻는 것은 엉덩이의 고통이었습니다. 필요에 따라 주석을 저글링하여 다른 언어에서 다르게 비활성화 / 활성화 할 수있는 적합한 제 2 언어를 찾는 데 시간이 걸렸습니다.


C ++에서 trigraph를 사용하여 주석을 종료합니다. 깔끔하다!
FUZxxl

2
^ 그것은 또한 표준 허점 중 하나라고 생각합니다. 그냥 말하면
Soham Chowdhury

8

Python-1 개의 보너스 청구

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

Python 2에서는 equals 1로 나눕니다 . 로 나눈 값을 평가할 수 없으며 0으로 나누기 오류가 발생합니다. 아무것도 인쇄되지 않고 여전히 프로그램이 오류없이 종료됩니다.2010

Python 3에서는 1/2=> 0.51/0.5=> 2.0입니다. 오류가 없습니다. Hello, World!인쇄됩니다.


3
나는 이것이 난독 화되어 있다는 것을 모른다.
Hosch250

@ hosch250 그렇습니다. 난독 화되지 않습니다. 두 번째 부분은 잘못입니다.
PyRulez

아, 알겠습니다 그것은 파이썬 2와 파이썬 3에서 하나를 수행합니다.
Hosch250

@ hosch250 아 잘. 적어도 나는 보너스를 얻었다. 다른 사람이 내 답변의 보너스 부분을 훔쳐서 성형하면 실제로 상관하지 않습니다. 나도 영광입니다.
Rainbolt

hello world어떤 식 으로든 난독 화 하면 괜찮을 것입니다.
Hosch250

7

일괄

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

입력 된 값보다 작은 소수 목록을 반환합니다.
H : \ uprof> obf.bat 12
2,3,5,7,11

난독 화에 대한 몇 가지 측면이 분명히 있지만, 복잡한 수치가 난독 화 된 것으로 간주됩니다.


프로그램은 하나의 기능 만 수행 할 수 있습니다.
PyRulez

@PyRulez 죄송합니다.
unclemeat

2
또한 스포일러를 사용하여 사람들이 즉시하는 일을하지 않는 것이 좋습니다.
PyRulez

%%%%xD의 경우 +1
SebastianH

7

루비-아니면 공백입니까?

글쎄, 내가 뭘 추측 할 수 있니? 작은 힌트 : 그것을 실행 하려면 코드 상자에 모든 코드 를 복사 하십시오 .)

업데이트 : 유니 코드 관련 문제로 인해 코드 복사가 작동하지 않는 것 같습니다. 온라인 버전을 포크 한 다음 코드를 복사하면 작동하는 것 같습니다! 공백을 찾으십시오.)

온라인 버전

# 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

                                                                                                                                                                                                                                                   

산출:

Hello world!

설명:

  • 마지막 줄은 일반 공백으로 구분 된 상당히 많은 공백없는 공간 (UTF-8 : 160dec)으로 구성됩니다.
  • 루비는 청크를 메소드 인 것처럼 처리합니다. 그러한 메소드가 정의되어 있지 않기 때문에 method_missing 호출되어 청크의 길이를 절약합니다.
  • 각 청크는 문자를 나타내는 세 자리 숫자 중 한 자리를 나타냅니다.
  • at_exit문자,이 경우, 숫자 등을 연결하여 형성되고, 발현을 평가puts 'Hello world!'
  • 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

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

SE의 마크 다운 인터프리터가 탭 문자를 4 개의 공백으로 바꾸므로 SE에서 공백을 복사 할 수 없습니다.
undergroundmonorail

7

앞으로

새로운 작업을 만들어 봅시다.

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

베이스 74 (4Ah)에 2 개의 32 비트 숫자를 표시합니다. ASCII "z"와 ASCII "0"에 1을 더한 차이이므로 74를 사용하여 숫자에서 시작하는 작은 단어를 표시 할 수 있습니다. 첫 번째 숫자는 "Hello"(1F836AFEh)이고 두 번째 숫자는 "World"(3A91224Bh)입니다. 숫자 "World"뒤에 후행 공백을 인쇄합니다.

실제 실행


넷째 ... SQL보다 SHOUTIER의 몇 가지 언어 중 하나입니다. 사이트에 오신 것을 환영합니다!
Jonathan Van Matre

3
나는 Sinclair-ZX-Spectrum Forth에서 그것을 시도하고 작동합니다 ...
Mattsteel

1
... 그리고 다른 기지 (4F)를 사용하는 것은 다른 퍼즐
Mattsteel

6

PHP :

$ words = array ( '하트', '이글', '낮음', '외로', '오버', '공간', '창', '최적화', '회전', '목록', '완료', ' !끝난');

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

'Hello World'를 인쇄합니다.
배열의 각 단어에서 첫 번째 문자를 제거합니다.
var $find는 1 바이트 문자열을 가질 수 있습니다.
var에 더 긴 값을 사용하면 $find이상한 출력이 발생합니다.


6
스포일러를 보지 않고도이 줄이 "Hello World"와 연결되어 있어야한다는 것을 알 수있었습니다!
SebastianH

난처한 시도가 최고가 아닌 경우 죄송합니다. 그리고 네, 패턴은 너무 쉽지만 적어도 다른 것을 시도했습니다. 나중에 편집하여 조금 덜 명확하게 만들 것입니다.
Ismael Miguel

6

Brainfuck

print("Hello World")

설명

적어도 컴파일러가 유효하지 않은 명령어를 무시하면이 프로그램은 아무 작업도 수행하지 않습니다.


컴파일러는 비 명령을 주석으로 간주하므로 명령을 무시해야합니다.
MadTux

이름을 지정할 수는 없지만 오류가 발생하는 컴파일러를 알고 있습니다.
nyuszika7 시간


5

C ++ 11

나는 컴파일러 의존성에 대한 보너스를 주장한다-예를 들어, 이것은 gcc 4.8과 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;
    }
}

컴파일러 종속성 설명 :

C ++ 11은 표준 컨테이너의 insert () 및 erase () 함수에 대한 요구 사항을 변경하여 이제는 이전에 변경 가능한 반복자가 필요한 상수 반복자를 허용합니다. 이것이 PrimeHandler가 테스트하는 것입니다. gcc는 4.9에서 표준 라이브러리 만 호환하도록 변경했습니다. MSVC 2013은 아직 호환되지 않습니다. 나는 씨랑에 대해 모른다.

일반적인 행동 설명 :

스트림 클리어 (x)의 기능을하지 않는 명확한 플래그 X를 가, 설정 을. 따라서 handle () 함수는 실제로 스트림을 오류 상태로 설정하므로 읽기 시도가 실패하고 유용하게 예외를 발생시킵니다. 같은 방식으로 오류 출력이 방지됩니다.
PrimeList의 자동 출력 소멸자는 데이터가 숫자가 아닌 바이너리로 작성되도록합니다. 물론 "스마트 제수"는 실제로 "Hello World!"입니다. 리틀 엔디안 ASCII로 인코딩됩니다. 그리고 예외가 발생하기 때문에 BasicHandler에는 아무것도 추가되지 않으며 "스마트 제수"만 SmartHandler에 추가됩니다 (해당 예외로 인해 제거되지는 않음).


4

델파이

이것이 중요한지는 확실하지 않지만이 도전을 어떻게 보았는지 알려 드리겠습니다.
내 생각은 예상대로 실행하지 않는 코드를 작성하는 것이 었습니다.

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.

내가 한 것은 기능 3을 실행하지만 실제로 기능 2를 실행하고 시작하자마자 종료되는 프로그램을 작성하는 것입니다.
힌트는 다음과 같습니다. 소수를 생성하기위한 SieveOfEratosthenes 알고리즘
Var 소수maxNum
코드 : 기본적으로 WriteLn('Input your number');readln(maxNum);
부울 값이 False기본적 으로 도달하므로 도달 할 수없는 코드입니다.


4

하스켈

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로 실행하면 hello World가 인쇄됩니다. Hugs (협력 멀티 태스킹 구현)를 사용하면 아무 것도 인쇄하지 않고 항상 종료됩니다.


4

JS

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

아무것도하지 않습니다. 오류가 없습니다. 출력 없음


4

MATLAB

다음은 대략 다양한 작업을 수행 할 수있는 코드입니다. 흐름을 예측할 수 있습니까?

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

힌트는 다음과 같습니다.

입력 한 숫자 나 시세에 관계없이 항상 같은 지점에있게됩니다


1
4 가지 기능 중 하나라도 제거하기 어려운 Bravo.
PyRulez

4

이것은 두 가지 보너스를 모두 수행합니다. 결국 스포일러를 살펴보고 그것이 무엇을하는지보십시오.

자바 / 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에서는 "Hello World"를 반환합니다.

자바

Java에서는 입력 x 호에 따라 첫 x x 소수 (또는 입력 x 호에 따라 다름) 또는 제공된 주식 시장 기호 (예 : Google 용 GOOG)의 주식 값을 리턴합니다. 어느 것이 선택되는지는 현재 사용되는 JavaVM의 구현에 따라 다르지만 Oracle JavaVM을 사용하면 주식 시장 가치를 가져와야합니다. 또한 System.gc () 행을 주석 처리하여 소수 숫자 계산기 (두 번째 보너스)를 강제 실행할 수 있습니다.이 행은 finalize () 호출을 중지하므로 magicNumber는 NaN이되지 않으므로 예외가 발생하지 않습니다. 소수 생성기 대신 시장 가격 getter를 실행합니다.


4

C, 346 자

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

이 프로그램은 10 년 이상 전에 만든 오래된 프로그램입니다. 실제로 "Hello, world!"를 인쇄합니다. 이 코드는 10 진법에서 회문 번호를 사용하며 약간 난독 화됩니다.

들여 쓰기를 믿지 마십시오. 또한 다음을 참조하십시오 : http://oeis.org/A006577

오, 나는 거의 잊었다 ... 프로그램은 명령 줄 인수없이 시작했을 때만 작동합니다. 또한 11 개의 명령 줄 인수로 시작하면 무한 루프를 입력하는 것으로 보입니다. 12는 괜찮습니다.


3

말 볼지

Malbolge보다 더 이상 난독 화 할 수 없다고 말하고 싶습니다.)

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

"Hello, world"를 인쇄합니다. 이 언어를 아직 얻지 못했기 때문에 모든 크레딧은 Wikipedia로 이동합니다 ...



5
일부 사람들은 Malbolge가 마침내 이해 될 때 지구가 열리 며 우리 모두가 핵심을 질긴 누가 센터로 대체하는 거대한 조립 라인을 운영하기 위해 노예가 될 것이라고 말합니다. ps 우리는 사용자가 자신의 답변이 커뮤니티 위키로 태그 지정되고 저작물이 자신의 것이 아닌 경우 소스에 링크되도록 요청합니다. 감사!!
Jonathan Van Matre

삼진 및 여러 번의 레코딩을 거의 다룰 수 있었지만 모든 훼손된 작업은 약간의 메모리를 낭비합니다! 언어의 끔찍한 역병.
luser droog

3

bash / sh, 파이썬

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

이것은 다음을 생성합니다 :

Hello world...

로 실행될 때 bash.

posix 모드 sh와 함께 또는 bashposix 모드에서 동일한 코드가 실행될 때 ( 즉 bash --posix filename,)는 출력을 생성하지 않습니다.

POSIX 모드에서 실행 중이 sh거나 프로세스 대체가 작동하지 않습니다 bash. 으로 실행되면 bash, 처리는 교체 작업 및 입력되는 평가 사용 python. 그렇지 않으면 프로세스 대체로 오류가 발생하여로 리디렉션됩니다 /dev/null.


그것을 숨기는 것이 "출력 없음, 오류 없음"으로 간주되는지 궁금하십니까?
Bill Woodger

@BillWoodger 불법이라면 제 의견으로는 비슷한 솔루션 (시도 / 캐치 등)이 있습니다.
devnull

페어 포인트. 나는 당신의 것이 조금 더 분명하다고 생각합니다. 왜냐하면 모든 것의 출력이 그렇게 숨길 수 있기 때문입니다. 그러나 실제로 그 처리를 자체의 일부로 포함하는 것을 사용하고 있기 때문에 행복합니다 :-)
Bill Woodger

3

이제 의견에 따르면 그것을 읽으면 3 가지 중 하나를 수행합니다.

  • 숫자를 전달하면 소수 목표를 수행합니다.
  • 비 번호를 전달하면 주식을 조회합니다.
  • 어리석은 짓을하면 "Hello World"를 출력합니다

그러나이 프로그램은 여러분이 무엇을 주든 관계없이 항상 네 번째 목표를 인쇄 할 것이기 때문에 문서를 잘 따르지 않습니다.

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

}

Java에 인덱스 배열이 0이므로이 프로그램이 작동하거나 실패합니다. 따라서 액세스하려고합니다 args[0]. 그러나이 final int arg = 1값은 첫 번째 값에 액세스하고 있다고 말합니다. Java 개발자는 이것이 args[1]실제로 두 번째 가치 라는 것을 알고 있습니다. arg를 0으로 변경하면이 프로그램은 실제로 해당 설명서에 따라 작동합니다.


2

자바 스크립트

나는 이것을 이해하지 못한다

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

스크립트는 내 것이 아닙니다 : 원본 소스


Community-Wiki에서 만드는 것은 어떻습니까?
Bill Woodger 2014 년

2
좀 이해할 수 있습니다. [] + [] -> '', day() - day() -> 0. 거기에서 각 문자의 10 진수 표현을 얻은 다음에 수행하는 것처럼 보입니다 String.fromCharCode.
케빈 에반스

1

이것은 난독 화 된 코드를 작성하려는 첫 번째 시도입니다. 당신이 그것을 좋아 바랍니다.

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

이 프로그램은 숫자를 요청한 다음 많은 소수를 인쇄합니다. 오류가 발생하면 간단히 인쇄 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은 백 스페이스가 작동하지 못하게합니다. Hello World!가 출력됩니다.


0

루비 2.0.0 + 1 보너스

스포일러의 보너스에 대해 설명하겠습니다. 그러나 이것은 "Hello World!"를 인쇄하는 원형 교차로입니다. 루비에서.

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

그리고 출력 :

뭐?

자, 루비와 함께 일한 대부분의 사람들은이 모든 것들이 무엇을하는지 알고 있으며, 이것에 놀라지 않을 것입니다. 그러나 eval(의견이있는 것처럼) 의견에서 말하는 것을하지 않습니다. 대신 구분 기호 (변경 /), 상단 라인은 여전히 분할 $$에 의한 $$경우 $$는 PID이며,이를 구분하는 것은 1. 대신, 당신이 얻을 eval변경 삽 기호 (방법 <<) 작동합니다. 그것이 eval완성 된 후에 , 삽 기호는 전혀 아무 것도하지 않습니다. Base64를 디코딩 한 후 Base64를 통해 어떻게했는지 알 수 있습니다.__END__

그리고 보너스 :

두 번째 줄을 주석 처리하면 "Hello World!"가 인쇄됩니다. 여전히 하나의 공백을 인쇄하기 때문에 이것이 계산되지 않을 수도 있습니다.


0

MATLAB

매우 간단한 작은 코드는 쉽게 확장되어 더 난독 화 될 수 있지만 접근 방식이 약간 불충분하기 때문에 원리 증명으로 더 작게 남겨 두었습니다. 최소한 코드의 일부를 실행하지 않고 결과를 파악하는 것은 불가능합니다.

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

0

C ++ 또는 C 및 보너스 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

나는 보너스 번호 1. 주장 clang/gcc대를 clang++/g++.

C ++로

clang++ -trigraphs obfuscate.c

C ++로 컴파일하면 종료됩니다.

C로

gcc -trigraphs obfuscate.c

C로 컴파일하면 "Hello, world!"라고 인쇄됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.