Захист виклику [закрито]


24

Ви повинні написати програму, яка виконує одне з наступних дій.

  1. Тільки дисплеї "Hello World" нічого іншого не роблять
  2. Вихід і нічого іншого (без виводу, без помилок.)
  3. Бере один рядок введення, аналізує його як ціле число, відображає перше, що багато простих чисел (або видає приємну помилку, якщо йому дано вхід, який неможливо проаналізувати як ціле число, або менше 0).
  4. З огляду на один рядок введення, він розбирає символ запасу та перевіряє в Інтернеті поточну вартість акцій та її зміну.

Улов, не повинно бути очевидним, яку функцію він виконує. А саме, якщо хтось дивиться на ваш код, не повинно бути очевидним, яку функцію він буде виконувати. Крім того, він може виконувати лише та може виконувати одну функцію (вона не може вибирати та вибирати.) Наскільки хороша програма визначається тим, наскільки невпевнений хтось, хто дивиться на неї, яка її функція, а також наскільки відома, що людина з цією мовою.

БОНУС: Якщо ви розумним чином зробите це так, хоча для будь-якого компілятора / інтриптера та платформи програма також буде виконувати ту саму функцію, різні компілятори / інтерпретатори чи платформи, вона виконуватиме іншу функцію. Цей бонус може бути зібраний лише у тому випадку, коли це зроблено вміло.

БОНУС: Якщо ваша програма містить лише код, який здатний виконувати одну функцію (нічого не зберігайте, оскільки порожній код здатний до цього), і неможливо зробити просту модифікацію, не пов’язану з функцією, щоб дозволити їй виконувати іншу функцію. Наприклад: якщо ви це зробили

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

Не вважатимуться, що заплутанийBool може бути зроблений True або False, щоб він надрукував "Hello World" або нічого не робив відповідно.

БОНУС БЕЗКОШТОВНОСТІ: Якщо ви реалізуєте обидва бонуси одночасно, ви - магія.

НЕГАТИВНИЙ БОНУС: Використання бібліотек з певними здібностями для виконання функцій.

Виборці, враховуйте бонуси, адже програма з найбільшою кількістю голосів виграє!

Примітка. Якщо ви говорите, що робить ваша програма, обов'язково використовуйте синтаксис спойлера!


2
Якщо чесно, то я не можу зрозуміти більшість питань. Я йду далі і скажу, що розумію лише 4 бали.
Ісмаїл Мігель

Зробіть програму такою, щоб вона робила одну з 4 речей, але ніхто не знає, що.
PyRulez

25
А як щодо бонусів? Серйозно, навіть питання заплутане.
Ісмаїл Мігель

4
Оскільки це конкурс популярності, для чого бонус?
Ісмаїл Мігель

1
@MukulKumar - як, моє, насправді мав сенс?
TheDoctor

Відповіді:


43

Whitespace / Brainfuck / Python

'' 'почати' '' '' '' '' '' '  
головний (арг) {   	  	   
	parseArgs = args.Find ('^ ++++++++ ^ [<++++ [<++ <+++ <+++ <+ >>>> az] <+ <+ <AZ [ >]> 0-9] <<. <---. * $ ');
    для (int i = 0; діапазон (GetLength (parseArgs)); i ++) {validateArg (parseArgs (i));}  	 	
	// назва
    рядок stockName = "";		 		  
	// петля
    для (int i = 0; діапазон (GetLength (parseArgs)); i ++) {		 		  
	// підтвердити
     	if (matchFound = Find ('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"));	 				
	друк;
    друкувати дані;			  	 
	
    // роздільник рядків		 		  
	
    друк "--------.";		  	  
	}}
}  


'' закінчити '' '' '' '' '' '' '' '

Вікіпедія: Whitespace (мова програмування)
Інтернет-інтерпретатор Whitespace для тестування відповіді
Інтерпретатор Brainfuck для перевірки відповіді

Вихід (Whitespace / Brainfuck):

Привіт Світ
Ouput (Python):
Нічого, але працює успішно.


2
Це дійсно круто! Я думаю, вам слід оновити опис. Хіба очевидний код не є третьою програмою, яка теж щось робить? Крім того, якщо ви могли б змінити один з мозкових подій або пробілів на виконання однієї з інших функцій, я б дав вам бонус INFINITY!
СебастьянH

1
На якій мові використовується програма для видачі?
durron597

1
@ durron597 Це дивний гібрид C # та Python. Я збирався зробити це все в C #, але важко було змусити синтаксис працювати весь шлях.
гаїNL

@SebastianH Це програма, яка претендує на маскування її фактичної функції.
grovesNL

Функціональність Python занадто прозора. Після того, як ви побачите перші 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゚])(゚Θ゚))('_');

Повідомлення "Привіт Світ"
відповіли на /codegolf//a/3946/803
Оскільки я не придумав цю відповідь, зробивши це вікі спільноти


28
Ви повністю впевнені, що це не APL?
mniip

2
@mniip О так! це JS. Demo jsfiddle.net/7mqL8
Клайд Лобо

11
Я усюди бачу посмішки ..
Торкіл Холм-Якобсен

1
Це найкраще використання Unicode в JavaScript, який я коли-небудь бачив!
Коул Джонсон

4
+1 за смайлик: (o^_^o).
Амаль Муралі

31

Збірка MS-DOS x86

Оскільки вона вже не затуманена, коли вона збирається, давайте зробимо це ще гірше! ЦЕ ПОТРІБНО працювати з будь-яким асемблером, який може зібратись у файл COM, але я протестував лише TASM для використання DOS 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 [знак долара]"
2) Він змінює, здавалося б, не "місце cl" і "movsx dx cl" на "nop ',' mov ah, 9 ',' int 021h '
3) Все сильно взаєморозміщене між собою. Це також робить тест прапорів, щоб побачити, чи підтримує ваш процесор CPUID
4) Шістнадцяткові значення, перетворені в десяткові, щоб у вас не було поняття ....
5) Навіть якщо ви це зробили, він використовує xor, або, і sub для зміни існуючих код до правильних значень. Без прямих значень.
6) Якщо ваш процесор не підтримує CPUID (не Pentium або вище, див. DOSBox для прекрасного прикладу), ви бачите "Hello World". Інакше нічого не відбувається.


25
Написання програми в Асемблері досить заплутане! xD
СебастьянH

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. Компілятор змінного струму може перезаписати printf("String\n")дзвінок у puts("String")виклик. Це більш ефективно, але, мабуть, ніхто не написав своїх puts. Компілятор цього не повинен робити, тому залежно від вашого компілятора та налаштувань компілятора ви отримаєте Hello Worldабо купу простих. На printfдзвінки putsне впливає, оскільки вони не відповідають точному шаблону. Я думаю, що я маю право на отримання премії.


16

ЛОЛКОД

Ця мова вже затуманена сама собою. Ось мій код:

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, доводячи, що все добре). В основному він оголошує змінні, змінює їхні типи, вводить цикли і будує ifs і case, навіть має рядок, який би надрукував "Hello World!" якщо коли-небудь досяг (якщо тільки досяг ...). Загальна витрата обчислень :)


1
Якщо ви хочете, ви можете протестувати його тут
gilbertohasnofb

10

JavaScript (ES6)

Використання прагми 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);

будь-яке пояснення? для прагми?
masterX244

10

COBOL (IBM Enterprise COBOL)

   ID

Якщо це буде показано, дуже близько 100% програмістів IBM Mainframe COBOL скажуть, що "це навіть не програма, яка не компілюється!". Чим більше досвіду вони мають, тим менше шансів на думку, що він складеться (оскільки старі COBOL в Mainframe були суворішими).

Потім запитайте "якщо вона компілюється, що це робить?" Вони б сказали: "вона не компілюється, але якби це зробило, то це призведе до певної помилки. Можливо, мовне середовище дасть U4038 чи щось подібне".

Вдалося скоротити. У програмі COBOL є чотири РОЗДІЛИ. ІДЕНТИФІКАЦІЯ / ІД, оточення, дані, процедура. Виявляється, ПРОЦЕДУРА вимагає слова РОЗДІЛ, а інші - ні. Здогадайтесь, який з них я зняв першим, і припустив, що інші слова ДІЛЬНІСТЬ є обов'язковими ... подальше спантеличення виявило інакше. Шкода, що це не Гольф. Дво символьна програма COBOL ...

Гаразд, так, компілятор стогне і дійсно дає йому Код повернення з восьми. Зазвичай люди навіть не генерують об'єктний код для, не кажучи вже про те, щоб спробувати виконати програми з кодом повернення восьми. Однак це випадок, коли жодна з помилок рівня Е не впливає на створений код. Таким чином, код працює без проблем, якщо ви його генеруєте.
Вищенаведене джерело фактично є рівнозначним цьому:
ІДІЛІЗАЦІЯ.
РОЗДІЛ ПРОЦЕДУРИ.
ГОБАК
.
Що просто повертається туди, звідки воно прийшло.


2
Мій перший в історії спойлер. Там є код. Всі мариновані. Щури Більше досліджень ...
Білл Вудгер

Трохи менш маринований, але все ж не гарний. Пізно тут. Я побачу, чи є більше спойлерів, які я можу вкрасти з завтрашнього дня. Помилка ... пізніше сьогодні. Ідентифікатор та ПРОЦЕДУРА починаються із стовпця восьмого, GOBACK та повної зупинки / періоду у колонці 12. Ідентифікатор в оригіналі також стовпець восьмий, лише для інформації.
Білл Вудгер

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

Отримати C ++ між кодом java, який я вже використовував у іншій відповіді Hello World, був біль у попці. Зайняв деякий час, щоб знайти відповідну другу мову, де я міг переглядати коментарі за потребою, щоб вони відключили / включили по-різному на різних мовах


Використання триграфів для виходу з коментаря в C ++. Це акуратно!
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 1ділиться на 2рівні 0.1ділиться на0 не може бути оцінено і кидає ділення на нульову помилку. Нічого не друкується, і програма все-таки припиняється без помилок.

У Python 3, 1/2=> 0.5і 1/0.5=> 2.0. Немає помилок. Hello, World!друкується.


3
Я не знаю, що це досить заплутано.
Hosch250

@ hosch250 Правильно, це не дуже заплутано. Невже друга частина неправильна.
PyRulez

О Я бачу. Це робить один у Python 2, а другий у Python 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 Вибачте, виправлено.
нечисте м'ясо

2
Я також рекомендую використовувати спойлери, щоб люди не зробили те, що це робиться негайно.
PyRulez

+1 для %%%%xD
СебастьянH

7

Рубі - чи це Whitespace?

Що ж, може хтось здогадається, що я роблю? Невеликий натяк: якщо ви хочете запустити його, скопіюйте весь код у поле коду;)

Оновлення: Копіювання коду, здається, не працює через проблеми, пов’язані з Unicode? Розігрування онлайн-версії та копіювання коду, здається, працює! Слідкуйте за пробілами;)

Інтернет-версія

# 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 не працює, оскільки інтерпретатор розмітки SE замінює символи вкладок на 4 пробіли.
підземниймонорельс

7

Четвертий

Давайте створимо новий ЗАВДАННЯ.

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

Він відображає два 32-бітні числа в базі 74 (4Ah). 74, оскільки це різниця між ASCII "z" і ASCII "0" плюс один, тому я можу використовувати його для відображення невеликих слів, починаючи з числа. Перше число - "Hello" (1F836AFEh), а друге - "World" (3A91224Bh). Це дійсно друкує пробіл після номера "Світ".

Real execution


По-друге ... одна з небагатьох мов SHOUTIER ніж SQL. Ласкаво просимо на сайт!
Джонатан Ван Матре

3
Я спробував це на моєму Sinclair-ZX-Spectrum Forth, і це працює ...
Mattsteel

1
... і зрозумійте, що використання іншої бази (4F) буде відповідати іншій головоломці
Маттстель

6

PHP:

$ words = array ('Серце', 'орел', 'низький', 'самотній', 'над', 'SPACE', 'Window', 'optimus', 'гниття', 'список', 'зроблено', ' ! зроблено ');

$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".
Він знімає 1-шу букву з кожного слова з масиву.
Вар$find може мати будь-який однобайтовий рядок у 1 байт.
Використання довшого значення для var $findдасть дивні результати.


6
Не дивлячись на спойлер, я міг бачити, що ця струна повинна бути пов'язана з "Hello World"!
СебастьянH

Вибачте, якщо моя неясна спроба не найкраща. І так, візерунок занадто легкий, але принаймні я спробував щось інше. Я відредагую його пізніше і зроблю його трохи менш очевидним.
Ісмаїл Мігель

6

Брейнфук

print("Hello World")

Пояснення

Принаймні, якщо ваш компілятор ігнорує недійсні інструкції, ця програма нічого не робить.


Компілятор повинен ігнорувати некоманди, оскільки вони враховуються як коментарі.
MadTux

Я знаю, що деякі компілятори помиляються на них, хоча я не можу назвати жодного.
nyuszika7h

Нагадує мені про цей інший виклик
Qeole

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 ще не сумісний; Я не знаю про кланг.

Загальне пояснення поведінки:

Функція clear (x) потоків не очищає прапор x , вона встановлює його. Тому функція handle () фактично ставить потік у стан помилки, тому будь-яка спроба читання не вдається (і корисно кидає виняток). Таким же чином уникається вихід помилок.
Деструктор автоматичного виводу PrimeList гарантує, що будь-які дані в ньому записуються - як двійкові, а не як числа. Звичайно, "розумні дільники" - це насправді "Hello World!" закодовані в малоінтенсивній ASCII. І тому, що викинуто виняток, у BasicHandler нічого не додається, а в SmartHandler додаються лише "розумні дільники" (і ніколи не видаляються через вказаний виняток).


4

Delphi

Не впевнений, чи вважається це, але я розповім, як я бачив цей виклик.
Моя думка полягала в тому, щоб написати код, який не міг би виконати те, що ви цього очікували.

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 primes та 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, і він надрукує привіт World. З Hugs (який реалізує кооперативну багатозадачність), він завжди вийде, нічого не надрукувавши.


4

JS

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

Нічого не робить. Немає помилок. Немає результату


4

Матлаб

Ось код, який може приблизно виконувати різні операції, чи можна передбачити потік?

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 функцій.
PyRulez

4

Цей робить обидва бонуси. Подивіться на спойлери врешті-решт, щоб побачити, що це робить.

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 це просто повертає "Hello World".

Java

У Java це або повертає перші x прості номери (залежно від вхідного числа) або вартість акцій даного символу фондового ринку (наприклад, GOOG для Google). Який з них буде обраний, залежить від впровадження використовуваного JavaVM, але з Oracle JavaVM він повинен отримати біржове значення. Ви також можете змусити калькулятор простих чисел (2-й бонус), коментуючи рядок System.gc (), який, у свою чергу, зупиняє виклик finalize (), тому magicNumber ніколи не стає NaN і, таким чином, не викидається виняток, який спричинив би запас ринкова вартість отримувача замість генератора простих чисел.


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+ років тому. Насправді він друкує "Привіт, світ!" Код використовує паліндромні числа в базі 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< 

Він просто друкує "Привіт, світ". Усі кредити переходять до Вікіпедії, оскільки я досі не отримую цієї мови ...


2
ніхто не повинен розуміти цю мову ..
Sp0T

5
Деякі кажуть, що коли Малболдж нарешті зрозуміє, земля розтріщиться, і всі ми будемо поневолені працювати гігантською конвеєрною лінією, замінюючи її серцевину жувальним центром нуги. ps Ми просимо, щоб користувачі помітили свої відповіді як вікі спільноти та посилання на джерело, коли робота не є їх власною. Спасибі!!
Джонатан Ван Матре

Я майже міг зіткнутися з потрійним і багаторазовим перекодуванням, але кожна проклята операція втрачає деяку пам'ять! Жахливий роздутий смут мови.
luser droog

3

баш / ш, пітон

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 .

Коли той самий код виконується з shабо bashв режимі posix, тобто, кажучи bash --posix filename, він не дає жодного результату.

Заміна процесу не працює в shабо в тому bashвипадку, коли він працює в режимі POSIX. Коли виконується за допомогою bash, підміна процесу працює і вхід оцінюється за допомогою python. В іншому випадку підміна процесу викликає помилку, на яку переспрямовується /dev/null.


Цікаво, чи просто його приховування вважається "відсутністю результатів, помилок"?
Білл Вудгер

@BillWoodger Якщо це незаконно, то є й інші рішення (спробувати / зловити тощо), які, на мою думку, дуже схожі.
devnull

Справедливий пункт. Я вважаю, що твій лише трохи очевидніший, оскільки вихід із чого-небудь може бути прихований таким чином, але оскільки ти використовуєш те, що насправді включає цю обробку як частину самого себе, я щасливий :-)
Білл Вудгер

3

Тепер, згідно з коментарями та, прочитавши їх, це зробить 1 з 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]насправді є другою цінністю. Змініть аргумент на 0, і ця програма фактично працює відповідно до її документації.


2

Javascript

Я навіть цього не розумію

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

Зауважте, що сценарій не мій: оригінальне джерело


Як щодо того, як зробити в Community-Wiki тоді?
Білл Вудгер

2
Це якось зрозуміло. [] + [] -> '', day() - day() -> 0. Звідти це просто виглядає як десяткове представлення кожної символьної картки, а потім виконання символів String.fromCharCodeна них.
Кевін Еванс

1

Perl

Це моя перша спроба написати заплутаний код. Сподіваюся, вам сподобається.

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

Ruby 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зміни, як працює символ лопати ( <<). Після того, як це буде evald, символ лопати абсолютно нічого не робить. Ви можете бачити, як я це робив, розшифровуючи матеріали після Base64__END__

І бонус:

Прокоментуйте другий рядок, він надрукує "Hello World!". Можливо, це не враховується, оскільки воно все одно друкує один пробіл.


0

Матлаб

Дуже простий невеликий код, можливо, його можна легко розширити, щоб зробити його більш прихованим, але я залишив його меншим як доказ принципу, оскільки підхід трохи кульгавий. Досить впевнений, що неможливо з'ясувати результат без принаймні запуску частини коду.

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

0

C ++ або C & Bonus №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

Я вимагаю Bonus No. 1. clang/gccпроти clang++/g++.

З C ++

clang++ -trigraphs obfuscate.c

Складено як C ++, він виходить.

З С

gcc -trigraphs obfuscate.c

Складено як C, він друкує "Привіт, світ!"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.