"नमस्ते दुनिया!"


419

तो ... उह ... यह थोड़ा शर्मनाक है। लेकिन हमारे पास सादा नहीं है "हैलो, वर्ल्ड!" चुनौती अभी तक (35 संस्करण होने के बावजूद , और काउंटिंग के साथ टैग की गई है)। हालांकि यह आम भाषाओं में सबसे दिलचस्प कोड गोल्फ नहीं है, लेकिन कुछ विशिष्ट मामलों में सबसे कम समाधान खोजना एक गंभीर चुनौती हो सकती है। उदाहरण के लिए, मेरी जानकारी के लिए यह ज्ञात नहीं है कि क्या सबसे कम संभव ब्रेनफॉक समाधान अभी तक पाया गया है।

इसके अलावा, जबकि सभी विकिपीडिया (विकिपीडिया प्रविष्टि को हटा दिया गया है लेकिन आर्काइव.ऑर्ग पर एक प्रति है ), एसोलैंग्स और रोसेटा कोड में "हैलो, वर्ल्ड!" की सूची है। कार्यक्रम, इनमें से कोई भी प्रत्येक भाषा के लिए सबसे छोटा होने में रुचि नहीं है (यह भी GitHub भंडार है )। यदि हम कोड गोल्फ समुदाय में एक महत्वपूर्ण साइट बनना चाहते हैं, तो मुझे लगता है कि हमें कम से कम "हैलो, वर्ल्ड!" कार्यक्रम (हमारी मूल क्वीन चुनौती के समान ही विभिन्न भाषाओं में कुछ सबसे कम ज्ञात क्वीन हैं)। तो चलो यह करते हैं!

नियम

  • प्रत्येक सबमिशन एक पूर्ण कार्यक्रम होना चाहिए।
  • कार्यक्रम को कोई इनपुट नहीं लेना चाहिए, और Hello, World!STDOUT (यह सटीक बाइट स्ट्रीम, जिसमें कैपिटलाइज़ेशन और विराम चिह्न भी शामिल है) और एक वैकल्पिक अनुगामी न्यूलाइन, और कुछ नहीं।
  • कार्यक्रम को STDERR को कुछ भी नहीं लिखना चाहिए।
  • अगर कोई भी भाषा का निर्माण करके इसका दुरुपयोग करना चाहता है जहां खाली कार्यक्रम प्रिंट करता है Hello, World!, तो बधाई देता है, उन्होंने बहुत ही उबाऊ उत्तर के लिए मार्ग प्रशस्त किया।

    ध्यान दें कि एक दुभाषिया होना चाहिए ताकि सबमिशन का परीक्षण किया जा सके। यह अनुमति दी जाती है (और यहां तक ​​कि प्रोत्साहित किया जाता है) कि इस दुभाषिया को पहले से बिना पढ़ी हुई भाषा के लिए स्वयं लिखें।

  • प्रस्तुतियाँ बाइट्स में , एक उपयुक्त (पहले से मौजूद) एन्कोडिंग में, आमतौर पर (लेकिन जरूरी नहीं) UTF-8 में स्कोर की जाती हैं । कुछ भाषाएं, जैसे कि फ़ोल्डर , स्कोर करने के लिए थोड़ा मुश्किल है - यदि संदेह है, तो कृपया मेटा पर पूछें ।
  • यह सबसे छोटी "हैलो, वर्ल्ड!" वाली भाषा को खोजने के बारे में नहीं है। कार्यक्रम। यह सबसे छोटी "हैलो, वर्ल्ड" खोजने के बारे में है। हर भाषा में कार्यक्रम। इसलिए, मैं किसी भी जवाब को "स्वीकृत" के रूप में चिह्नित नहीं करूंगा।
  • यदि आपकी पसंद की भाषा किसी अन्य (संभावित रूप से अधिक लोकप्रिय) भाषा का एक तुच्छ संस्करण है, जिसमें पहले से ही एक उत्तर है (बेसिक या एसक्यूएल बोलियों, यूनिक्स गोले या अल्फाक की तरह तुच्छ ब्रेनफक-डेरिवेटिव का विचार करें), मौजूदा उत्तर के लिए एक नोट जोड़ने पर विचार करें। समान या बहुत समान समाधान दूसरी भाषा में भी सबसे छोटा है।

एक साइड नोट के रूप में, कृपया उन भाषाओं में उबाऊ (लेकिन मान्य) उत्तर न दें जहां गोल्फ के लिए बहुत कुछ नहीं है - ये अभी भी इस सवाल के लिए उपयोगी हैं क्योंकि यह एक कैटलॉग को यथासंभव पूरा करने का प्रयास करता है। हालांकि, ऐसा भाषाओं जहां लेखक वास्तव में कोड गोल्फ में प्रयास करने के लिए किया था में मुख्य रूप से वोट दें जवाब।

प्रेरणा के लिए, हैलो वर्ल्ड कलेक्शन की जाँच करें

कैटलॉग

इस पोस्ट के निचले हिस्से में स्टैक स्निपेट उत्तर से सूची बनाता है) क) प्रति भाषा में सबसे छोटे समाधान की सूची के रूप में और बी) एक समग्र लीडरबोर्ड के रूप में।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

## Language Name, N bytes

Nआपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

## Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:

## Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो बाद में स्निपेट में दिखाई देगा:

## [><>](https://esolangs.org/wiki/Fish), 121 bytes


2
@isaacg नहीं यह नहीं है। मुझे लगता है कि कुछ दिलचस्प भाषाएं होंगी जहां यह स्पष्ट नहीं है कि क्या मौलिकता परीक्षण संभव है।
मार्टिन एंडर

6
यदि एक ही कार्यक्रम, जैसे कि "Hello, World!", कई अलग-अलग और असंबंधित भाषाओं में सबसे छोटा है, तो क्या इसे अलग से पोस्ट किया जाना चाहिए?
aditsu

2
@ mbomb007 अच्छी तरह से यह डिफ़ॉल्ट रूप से छिपा हुआ है क्योंकि तीन कोड ब्लॉक बहुत अधिक स्थान लेते हैं। मैं उन्हें छोटा कर सकता था ताकि वे प्रत्येक पंक्ति में एक हों, लेकिन मैं कोड को बनाए रखना चाहूंगा क्योंकि मामले में कीड़े आएंगे।
मार्टिन एंडर

7
@ETHproductions "हमारे सामान्य नियमों के विपरीत, एक भाषा (या भाषा संस्करण) का उपयोग करने के लिए स्वतंत्र महसूस करें, भले ही यह इस चुनौती से नया हो।" हालांकि पोस्ट करने से पहले भाषा और कार्यान्वयन को प्रकाशित करना निश्चित रूप से उपयोगी होगा।
मार्टिन एंडर

2
@MartinEnder ... लगभग। यदि दो बीएफ समाधानों का आकार समान है, तो छोटे लेक्सिकोग्राफिक ऑर्डर के साथ यूनरी में बाइट्स की संख्या कम होगी। बेशक बीएफ के लिए अनुवादित सबसे छोटा यूनरी समाधान सबसे छोटा होने की गारंटी है।
user202729

जवाबों:


442

अटक, 0 बाइट्स

ठीक है, इससे छोटा नहीं हो सकता ... एक खाली कार्यक्रम अटकHello, World! में उत्पादन करेगा ।


57
धिक्कार है, मैं 20 मिनट देर हो चुकी थी! : पी
केड

33
Noooo c'mon सबसे तेज़ बंदूक पश्चिम प्रभाव में;)
बीटा

30
@Zuck वेल हाँ, स्टैक कोड-गोल्फिंग के लिए बनाया गया था, जैसे CJam / GolfScript / Pyth। Hello, World!बात बस कुछ मैं एक प्लेसहोल्डर विकास में जल्दी के रूप में में डाल दिया था। मैंने इसे इतने लंबे समय तक छोड़ने का इरादा नहीं किया, बस इसे हटाने के लिए कभी नहीं मिला।
Kade

132
मैं एक छोटे से समाधान के साथ आने की कोशिश कर रहा हूं, लेकिन मैं फंस गया हूं।
साइओस

51
JQuery में -1 बाइट्स। क्या आपने jQuery की कोशिश की है?
10 उत्तर

244

PHP, 13 बाइट्स

Hello, World!

हाँ। यह काम करता हैं।


261
PHP के साथ हमेशा की तरह, आप हमेशा आश्चर्य करते हैं कि यह कैसे काम कर सकता है
घातक

95
यह निश्चित रूप से काम करता है, क्योंकि <?phpकोड में कोई भी नहीं है, जिससे PHP की व्याख्या बिल्कुल भी नहीं हो पाती है :)
Lynn

58
इसका मतलब है कि यह सिर्फ एक HTML उत्तर है ...
नेल्सन

82
@ नेल्सन नहीं, यह नहीं है। PHP को जरूरी नहीं कि HTML में रखा जाए। और इसके अलावा, HTML
georgeunix

26
यह अब तक का सबसे प्रफुल्लित करने वाला उत्तर है
ओलिवर नी

240

ब्रेनफक, 78 बाइट्स

ओपन-एंडेड बाउंटी: यदि कोई इस स्कोर में सुधार कर सकता है, तो मैं उन पर इनाम (+500) पास करूंगा। @KSabएक मिल गया है 76 72 बाइट समाधान!

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

इसे ऑनलाइन आज़माएं!

पहले 28 बाइट्स --<-<<+[+[<+>--->->->-<<<]>]निम्न पुनरावृत्ति संबंध के साथ टेप को इनिशियलाइज़ करते हैं (मॉड 256):

f n = 171 · (-f n-1 - f n-2 - f n-3 + 1) , f 0 = 57 , f 1 = 123 के साथ , और f 2 = 167

171 का कारक उत्पन्न होता है क्योंकि 3 -1 (171 (मॉड 256) । जब वर्तमान मान एक सेल बैक (थ्रू <+>---) घटाया जाता है, तो हर बार 3 को प्रभावी ढंग से घटाकर 171 से मान को गुणा किया जाता है।

पर एन = 220 मूल्य अनुवाद किया जाना है शून्य है, और यात्रा बंद हो जाता है। स्टॉप पॉइंट से पहले के दस बाइट्स निम्नलिखित हैं:

[130, 7, 43, 111, 32, 109, 87, 95, 74, 0]

इसमें Hello, World!मामूली समायोजन के साथ, हंट-एंड-पेक फैशन में उत्पादन करने के लिए आवश्यक सभी घटक शामिल हैं ।

मैंने एक वैकल्पिक 78 बाइट समाधान भी पाया है:

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

इसे ऑनलाइन आज़माएं!

मैं इसे कई कारणों से पहले की तुलना में बेहतर मानता हूं: यह घर से कम कोशिकाओं का उपयोग करता है, यह कुल में कम कोशिकाओं को संशोधित करता है, और अधिक तेज़ी से समाप्त करता है।


ज्यादा जानकारी

पुनरावृत्ति संबंधों का ब्रेनफक में आश्चर्यजनक रूप से प्रतिनिधित्व है। सामान्य लेआउट निम्नलिखित है:

{...s3}<{s2}<{s1}[[<+>->{c1}>{c2}>{c3...}<<<]>{k}]

जो दर्शाता है:

f n = c 1 · f n-1 + c 2 · f n-2 + c 3 · f n-3 + ... + k

साथ में

f 0 = s 1 , f 1 = s 2 + c 1 · f 0 + k , f 2 = s 3 + c 2 · f 0 + c 1 · f 1 + k , आदि।

इसके अतिरिक्त, <+>स्टॉप पॉइंट को प्रभावित किए बिना सीमा को एक सीमा से गुणा करने के लिए परिवर्तित किया जा सकता है, और स्टॉप बिंदु >{k}को प्रभावित किए बिना फिर से एक सीमा द्वारा सीमा को स्थानांतरित करने से पहले एक शब्द जोड़ा जा सकता है ।


अन्य उदाहरण

फिबोनाची अनुक्रम

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

एन-जोनल नंबर

त्रिकोणीय संख्या

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

F n = 2 · f n-1 - f n-2 + 1 के रूप में परिभाषित , f 0 = 0 , f 1 = 1 के साथ

वर्ग संख्या

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

पेंटागनल नंबर

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

आदि।


BF क्रंच

मैंने उस कोड को प्रकाशित किया है जिसका उपयोग मैंने कुछ समाधानों को जीथब पर खोजने के लिए किया था । .NET 4.0 या उच्चतर की आवश्यकता है।

Usage: bfcrunch [--options] text [limit]

Arguments
------------------------------------------------------------
  text              The text to produce.
  limit             The maximum BF program length to search for. If zero, the length of the
                    shortest program found so far will be used (-r). Default = 0

Options
------------------------------------------------------------
  -i, --max-init=#  The maximum length of the initialization segment. If excluded, the
                    program will run indefinitely.
  -I, --min-init=#  The minimum length of the initialization segment. Default = 14
  -t, --max-tape=#  The maximum tape size to consider. Programs that utilize more tape than
                    this will be ignored. Default = 1250
  -T, --min-tape=#  The minimum tape size to consider. Programs that utilize less tape than
                    this will be ignored. Default = 1
  -r, --rolling-limit
                    If set, the limit will be adjusted whenever a shorter program is found.
  -?, --help        Display this help text.

आउटपुट तीन लाइनों में दिया गया है:

  1. कार्यक्रम की कुल लंबाई, और आरंभीकरण खंड।
  2. पथ लिया, वर्तमान टेप सूचक के साथ शुरू। प्रत्येक नोड आउटपुट के एक चरित्र से मेल खाती है, (सूचक, लागत) के रूप में दर्शाया गया है।
  3. उपयोग किए गए टेप खंड।

उदाहरण के लिए, अंतिम परिणाम bfcrunch "hello world" 70 -r -i23है:

64: ++++[[<+>->+++++>+<<]>]
49, (45, 5), (44, 3), (45, 6), (45, 1), (45, 4), (42, 4), (43, 5), (45, 3), (45, 4), (46, 2), (44, 4)
32, 116, 100, 104, 108, 132, 0, 0, 132, 0

यह पूर्ण कार्यक्रम से मेल खाता है:

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

अन्य रिकॉर्ड

नमस्ते दुनिया!

रैपिंग, 78 बाइट्स :

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

या

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

नॉन-रैपिंग, 87 बाइट्स (पहले 92 बाइट्स (मिच) ):

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

नमस्ते दुनिया!

रैपिंग, 80 बाइट्स :

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

नॉन-रैपिंग, 81 बाइट्स (पहले 92 बाइट्स (हाईरोज़) ):

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

नमस्ते दुनिया!

रैपिंग, 74 बाइट्स :

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

नॉन-रैपिंग, 84 बाइट्स :

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

Esolangs संस्करण

नमस्ते विश्व! \ N

रैपिंग, 76 बाइट्स :

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

यह घर के बचे एक सेल का उपयोग करता है, और इस प्रकार 77 माना जाएगा।

गैर-रैपिंग, 83 बाइट्स :

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

रडबीथ ने मंजूरी दे दी । प्रोफ़ाइल आउटपुट

Hello World!
Program size 83
Final tape contents:
 :   0   0  73 101 109 115 112  88  33  10   0
                                         ^
Tape pointer maximum 10
Hard wrapping would occur for unsigned cells.
Counts:     +: 720          -: 79           >: 221          <: 212
Counts:     [: 9            ]: 84           .: 13           ,: 0
Total:         1338

inversed.ru (पीटर कार्पोव)

नमस्ते दुनिया!

रैपिंग, 70 बाइट्स (पहले 78 1 ):

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

नॉन-रैपिंग, 77 बाइट्स (पहले 89?):

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

लेखक का दावा है कि सबसे छोटा हाथ-कोड "हैलो वर्ल्ड!" 89 बाइट्स है, लेकिन कोई संदर्भ नहीं देता है। मैं इसके लिए रिकॉर्ड भी दावा करता हूं।

नमस्ते दुनिया!

रैपिंग, 65 बाइट्स (पहले 66 बाइट्स):

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

यह वास्तव में हाथ से कोडित है (सबसे अच्छा मैं crunching द्वारा पाया जा सकता है 68 बाइट्स है )। पहली कोशिका 259 (3) से आरंभ होती है, और 7 बार प्रत्येक पुनरावृत्ति द्वारा 37 बार लूप किया जाता है। अगली सेल 6 से घट गई है, जिसके परिणामस्वरूप 256 - 6 · 37 = 34 है । बाकी कोशिकाओं को हर बार 4 से घटाया जाता है, प्रत्येक कोशिका को एक पुनरावृत्ति जोड़कर, प्रत्येक नए सेल को 252 (-4) में विभाजित किया जाता है। परिणाम निम्नलिखित है:

[  3,   0,   0,   0,   0,   0,   0, ...]
[252, 250, 248,   0,   0,   0,   0, ...]
[245, 244, 244, 248,   0,   0,   0, ...]
[238, 238, 240, 244, 248,   0,   0, ...]
[231, 232, 236, 240, 244, 248,   0, ...]
[224, 226, 232, 236, 240, 244, 248, ...]
...
[ 35,  64, 124, 128, 132, 136, 140, ...]
[ 28,  58, 120, 124, 128, 132, 136, ...]
[ 21,  52, 116, 120, 124, 128, 132, ...]
[ 14,  46, 112, 116, 120, 124, 128, ...]
[  7,  40, 108, 112, 116, 120, 124, ...]
[  0,  34, 104, 108, 112, 116, 120, ...]

1 दिया गया समाधान (79 बाइट्स) तुच्छ रूप से एक घटाया जा सकता है:

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

39
यह पागल है। आप में से एक को अराजकता गोल्फ के लिए 82-बाइट संस्करण प्रस्तुत करना चाहिए।
मार्टिन एंडर

117
इस सवाल का सबसे अच्छा जावा समाधान 76 बाइट्स है। जावा डेवलपर्स को साबित करने के लिए जाने के लिए केवल 9 और बाइट्स को ब्रेनफैक पर स्विच करना चाहिए।
लेवल रिवर सेंट

9
@LevelRiverSt छोटे अक्षर एक जावा से 2 बाइट्स छोटे हैं। एंडटाइम्स आ गए।
कॉनर ओ'ब्रायन

13
"जावा डेवलपर्स साबित करने के लिए जाने के लिए केवल 9 और बाइट्स को ब्रेनफैक पर स्विच करना चाहिए।" interface a{static void main(String[]A){System.out.print("No!");}}
डोरुकायहन

6
@primo 76 बाइट्स! codegolf.stackexchange.com/a/163590/15858
KSab

222

अर्नोल्ड , 71 बाइट्स

IT'S SHOWTIME TALK TO THE HAND "Hello, World!" YOU HAVE BEEN TERMINATED

सिर्फ लोलो के लिए ।।


4
मेरे लिए काम किया। पहली पंक्ति में इसे शोटाइम लगाने की कोशिश करें और आपको अंतिम पंक्ति पर समाप्त कर दिया गया है
JelloDude

72
मुझे वास्तव में इस भाषा का उपयोग करने का तरीका सीखने की जरूरत है।
बज़

3
क्या एक स्थान और एक नई पंक्ति बाइट्स की समान संख्या नहीं लेती है? और तकनीकी रूप से, IT'S SHOWTIMEऔर TALK TO THE HANDपहली और आखिरी लाइनों पर होना चाहिए।
wizzwizz4

5
@AlCode लेकिन यह अधिक सही है और बाइट्स की समान संख्या लेता है और अधिक संगतता है और यह अच्छा लग रहा है और मैं एक उपद्रव कर रहा हूं यह PPCG पर एक कोड गोल्फ चुनौती है और यह आश्चर्य की बात है कि आपका कोड पठनीय और अच्छी तरह से है क्या आपने एक अच्छी तरह से गोल्फ का जवाब दिया जो पठनीय और +1 था।
wizzwizz4

11
@ wizzwizz4 आपका बहुत-बहुत धन्यवाद, मैं भविष्य की भाषा अर्नोल्ड के साथ यथासंभव पेशेवर होने की कोशिश करता हूं!
11

203

बीज , 6016 4234 4203 बाइट्स

20 854872453003476740699221564322673731945828554947586276010721089172712854441839676581917455319274850944955030258951339804246125714958815519550291630078076933441706558540342671975808828643360922071900333028778314875248417953197990571991784126564752005357199892690656368640420204822142316716413192024742766282266114842280731756458212469988291309261528542889299297601723286769284159107438930448971911102280330101196758384815655479640836157495863547199726234352265518586460633795171196315255736880028338460236768181141732764911402112878175632130129852788301009582463631290071329795384336617491655825493435803011947670180368458659271192428341035912236946048939139042310380278430049252171822721598175984923434205610723412240162418996808671543770639111617709604242882388664919702606792443015941265168129550718541372361144081848761690730764968771245566074501485020726368378675085908872608679630368472956274468410052703615106090238423979678950131481176272880569100533049143775921798055136871254424261001442543122666701145111965968366507060931708140304772342855064834334129143038575569044150428480231956133612367393837580345180691911525531699573096952433882387811884727975431823620782822755161559988205401134640722220804177812794328129589949692446031008866917615922944976151073653201316255518389496411696741029209242119521978920200314572718584995265523235225587228975886710511855501710470163649632761488899317729943053884132314641377747687975638119132094777769497069556255954031537245957811105217875011509899497752696062748928963281605780942517262774976217663461063680912331030221981433051827519906741285738915397005702326447635845195923640649166530310494885569783989508000344280715868581532826832242144647203531393142251025361866506821695860883605004105862208004440476654027574832078603305884731766236740069411566854496824754558761536201352147934963241039597221404341132342297870517293237489233057335406510464277610336142382379135365550299895416613763920950687921780736585299310706573253951966294045814905727514141733220565108490291792987304210662448111170752411153136765318541264632854767660676223663544921028492602135525959428999005153729028491208277493747933069008199074925710651071766675870081314909460661981433426167330215548196538791617762566403934129026219366764038390123622134753742930729751695349588862441999672547791630729398908283091638866715502470152431589429837867944760012419885615525232399584379209285060418518373512154801760060312646951597932345591416241634668119867158079946680321131213357200382937049485606706114467095019612014749723443159443363662563254359712162432143334612180576945072905749883870150120687696027984317320305291407322779803583395375616762530641605634303022155218169343410634115050596030685041633824154135240376022159918501703555881290333205131375705406831260759974112248490451605422031345264183102048614606636275942039438138959188478277971377232005036301145411215067576576667743288951344423152531417111852584846747428443123174595987315325304540564683047858415059703724263652136185848573853965992798725654430360647040362341567082462847275277303225817689141675391972818943419663764371222973269129542760661385278009266471167618553065823580448848795731295589715602705860758954890415040763604082216728159486423396295188510311881004469017351709060492844398219491990895826924575575549615118821417543037296628825303328056839433114519945243963946989899508355224823109677424196639930153649890175062456649384605721510239142861693109687536600667811037619175927995599388547421689316110236566026931360164495251160997857372500940728057700473763884480342708897319990346726967220426504612260565552531158509215849649565188655100774748485416791517853427613458459889062942881409801879085054494129489535044719193283409051007851153504224002807392992520076910314763705776345053922387355156981872691537772657428096384535960466923475731297217863371650154415835785630016335858514130863258775100537612371430357576913148500310344278511588325852376442503898849856566716198848377379400158332792027967216204970114516984638014129252882482309132898416484525230488700253065644547798869056136044415413099076332059572505138116227535024546891015836838323022822272664771489129085797354578016574544759934333471793

परिणामी Befunge-98 कार्यक्रम ( इस पर आधारित ) है

"9!dlroW ,olleH"ck,@

35
वाह! आपको यह कैसे लगी?
ETHproductions

31
क्या ? यह पागलपन है।
कॉनर ओ'ब्रायन

47
आपको यह कैसा लगा?
विध्वंसक नींबू

39
क्या आपने मर्सन ट्विस्टर को रिवर्स किया था? और क्या इसके कोई सुरक्षा निहितार्थ हैं?
प्रिमो

68
मैं आपको विस्तृत (सैद्धांतिक) स्पष्टीकरण के लिए एक और +500 दूंगा।
प्राइमो

155

मॉर्निंगटन क्रिसेंट , 3614 3568 बाइट्स

छोटी लाइन के नाम का उपयोग करके 46 बाइट बचाने के लिए NieDzejkob का धन्यवाद।

Take Northern Line to Hendon Central
Take Northern Line to Bank
Take Circle Line to Bank
Take District Line to Gunnersbury
Take District Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take Circle Line to Hammersmith
Take Circle Line to Cannon Street
Take Circle Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take District Line to Acton Town
Take Piccadilly Line to Holloway Road
Take Piccadilly Line to Acton Town
Take District Line to Acton Town
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Mile End
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Acton Town
Take Piccadilly Line to Heathrow Terminals 1, 2, 3
Take Piccadilly Line to Holborn
Take Central Line to Holborn
Take Central Line to Mile End
Take District Line to Upminster
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Barking
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Barking
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Wood Lane
Take Circle Line to Victoria
Take Circle Line to Victoria
Take District Line to Gunnersbury
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Mile End
Take Central Line to Fairlop
Take Central Line to Mile End
Take District Line to Barking
Take District Line to Upminster
Take District Line to Upminster
Take District Line to Hammersmith
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Mile End
Take District Line to Gunnersbury
Take District Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take District Line to Mile End
Take District Line to Richmond
Take District Line to Mile End
Take District Line to Paddington
Take Circle Line to Paddington
Take District Line to Richmond
Take District Line to Bank
Take Circle Line to Hammersmith
Take District Line to Upminster
Take District Line to Stepney Green
Take District Line to Hammersmith
Take District Line to Stepney Green
Take District Line to Upney
Take District Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take Circle Line to Notting Hill Gate
Take District Line to Upminster
Take District Line to Upney
Take District Line to Upminster
Take District Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Mornington Crescent

इसे ऑनलाइन आज़माएं!

यह सबसे निश्चित रूप से सबप्टिमल है, लेकिन यह एसोलैंग्स पर समाधान का आधा आकार है।

Hello, World निम्न स्टेशन नामों को स्लाइस करके और परिणामों को संक्षिप्त करके बनाया गया है:

Hendon Central
▀▀
Holloway Road
  ▀▀▀
Heathrow Terminals 1, 2, 3
                       ▀▀
Wood Lane
▀▀
Fairlop
   ▀▀
Richmond
       ▀

अंत में, मैं के !रूप में चरित्र कोड कंप्यूटिंग कर रहा हूँ (2<<4)+1 == 33। इन सभी भागों को पैडिंगटन में सम्‍मिलित किया जाता है और अंत में मॉर्निंगटन क्रिसेंट में मुद्रित किया जाता है।

नोट: भाषा निर्दिष्ट नहीं करती है कि एक ही स्टेशन पर एक पंक्ति में दो बार यात्रा करना संभव है, लेकिन दुभाषिया इसकी अनुमति नहीं देता है, इसलिए मैंने इसका उपयोग किया है।


44
यह बिल्कुल शानदार है : D
बीटा डेके

32
मुझे यह भाषा बहुत पसंद है। मुझे माफ करना, जबकि मैं इस भाषा में सिस्टम प्रोग्रामिंग करता हूं।
बिल्ली

4
जहां EARTH पर यह भाषा मेरी सारी जिंदगी रही है?
स्कॉटमैक्ग्रे पहले से ही 23

30
कैमकोन टाउन और यूस्टन के बीच @ScottMcGready।
मार्टिन एंडर

3
मॉर्निंगटन क्रिसेंट अभी TIO पर है। tio.run/#mornington-crescent
डेनिस

123

बुराई , 70 बाइट्स

aeeeaeeewueuueweeueeuewwaaaweaaewaeaawueweeeaeeewaaawueeueweeaweeeueuw

यह निम्नलिखित चार आदेशों का उपयोग करता है:

a - increment the register
u - decrement the register
e - interweave the register's bits (01234567 -> 20416375)
w - write the value of the register as an ASCII character

61
यह बुराई है ...
डेविड ग्रिनबर्ग

61
खासकर जब से आपका अवतार ब्लैक हैट है।
TheDoctor

5
क्या आप मुझे इंटरव्यू प्रक्रिया समझा सकते हैं।
किशन कुमार

4
@ किशनकुमार हाँ
grc

30
यदि आप इस कार्यक्रम को ज़ोर से पढ़ते हैं, तो यह डबस्टेप बास की तरह लगता है।
जो जेड

112

ब्रेनफक, 72 बाइट्स

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

इसे ऑनलाइन आज़माएं!

और मूल गैर-रैपिंग 76 बाइट समाधान:

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

इसे ऑनलाइन आज़माएं!

अन्य कम से कम ज्ञात (मेरे ज्ञान के लिए) समाधान मैंने पाया है

'नमस्ते दुनिया!' 77 बाइट्स:

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

इसे ऑनलाइन आज़माएं!

'नमस्ते दुनिया!' 70 बाइट्स:

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

इसे ऑनलाइन आज़माएं!


मुझे यहाँ लिखे गए सी ++ प्रोग्राम का उपयोग करते हुए पाया गया: https://github.com/ksabry/bfbrute

नोट: मैं मूल रूप से इस कोड को साफ करना चाहता था, इससे पहले कि मैं इसे पोस्ट करूं, यह वास्तव में कुछ पठनीय और प्रयोग करने योग्य है, लेकिन जब से मैंने इसे एक साल से अधिक समय तक प्राप्त नहीं किया है, मैं यह आंकड़ा करता हूं कि मैं इसे अभी भी पोस्ट कर रहा हूं। यह किसी भी संभावित अनुकूलन के लिए टेम्प्लेट का भारी उपयोग करता है और समय की कमी का संकलन करता है और इसमें मेरे परीक्षण से टिप्पणी कोड का एक गुच्छा होता है लेकिन कोई उपयोगी टिप्पणी इतनी खेद नहीं है लेकिन यह थोड़ा भयानक है।

कोड के बारे में कुछ भी बहुत चालाक नहीं है, यह मुख्य है, लेकिन यह काफी अनुकूलित है। प्रमुख अनुकूलन यह है कि यह पहले बिना किसी लंबाई (16 वर्तमान) के छोरों (बिना [या ]) के सभी कार्यक्रमों के माध्यम से पुनरावृत्त करता है और यह डेटा सरणी पर किए जाने वाले सभी परिवर्तनों की एक सरणी को कैश करता है। यह केवल परिवर्तनों के अनूठे सरणी के प्रति एकल कार्यक्रम को संग्रहीत करेगा , उदाहरण के लिए केवल एक संग्रहित किया जाएगा >+<<->और <->>+<संग्रहीत किया जाएगा। यह तब सभी संभावित कार्यक्रमों के माध्यम से पुनरावृत्त करता है जो इस कैश में किसी भी प्रोग्राम से बना होता है, जिसमें उनके बीच लूप का कोई संयोजन होता है। प्रत्येक कार्यक्रम को निष्पादित करने के बाद यह पात्रों के लिए एक सरल लालची शिकार और चुम्बन करता है और कार्यक्रम के अंत में इसे जोड़ता है।

सभी कार्यक्रमों के स्थान के माध्यम से इसे चलाने के बाद मैंने देखा कि लगभग सभी सबसे छोटे कार्यक्रम (लंबाई ~ 19 तक) फॉर्म के थे *[*[*]*]। इस फॉर्म के कार्यक्रमों पर खोज को प्रतिबंधित करने से खोज काफी हद तक प्रभावित होती है। वर्तमान रिकॉर्ड धारक लंबाई 27 पर पाया गया था। यह वास्तव में लंबाई 74 होने के लिए गणना की गई थी, लेकिन मैंने एक विशेष अनुक्रम पर गौर किया, .>.>.>.जो भाग्यशाली था कि डेटा सेल में 0 यह सही है [.>]<कि इसे नीचे लाने के लिए सरलीकृत करने की अनुमति दी जाए। 72 तक।

मैंने इसे काफी समय तक चलने दिया और वर्तमान मापदंडों के साथ 29 की लंबाई तक खोज पूरी कर ली, मुझे संदेह है कि वर्तमान को केवल एक बार ऊंचा करके हरा पाना मुश्किल होगा, मुझे लगता है कि सबसे आशाजनक दृष्टिकोण संभवतः खोज स्थान को बढ़ाएगा। कुछ बुद्धिमान तरीका है।


32
पृथ्वी पर आपको यह कैसे पता चला?
डेनिस

2
@ डेनिस संभवत: मुझे अपनी प्रक्रिया की व्याख्या पोस्ट करने के लिए मिल जाएगी, जब मुझे मौका मिलेगा, साथ ही मेरे द्वारा उपयोग किए गए स्रोत कोड के साथ (एक बार मैं इसे साफ कर
दूंगा

32
अरे आपने जावा को हरा दिया।
प्रोक

18
यह कुछ डिवाइस है, इसे रैपिंग सेल ó_ prim
primo

5
इसके पीछे के एल्गोरिदम को देखना पसंद करेंगे :)
musicman523

84

पीट, 90 कोडेल

यहां छवि विवरण दर्ज करें

यह एक 30 बाय 3 इमेज है। वैकल्पिक रूप से, कोडेल आकार 10 पर:

यहां छवि विवरण दर्ज करें

3-उच्च लेआउट का उपयोग करता है ताकि मुझे केवल एक बार सूचक की आवश्यकता हो। यदि यह अभी भी गोल्फ है, तो मैं शायद एक और कॉलम में दाढ़ी रख सकता हूं, क्योंकि वहां एक पुश-पॉप नो-ऑप है।

संपादित करें: @ प्राइमो के 84 कोडेल समाधान


6
अपना खुद का इनाम लेने की कोशिश कर रहा है? मैंने सोचा कि तुम में से अधिक Sp3000;)
बीटा डिके

7
हह, सिर्फ इसलिए कि मैं एक इनाम सेट करता हूं, इसका मतलब यह नहीं है कि मैं मस्ती में शामिल नहीं हो सकता: P
Sp3000

9
एक पुश-पॉप मेरे लिए कोई विकल्प नहीं है। यह यह है
mbomb007

1
यह "भाषा" क्या है? मुझे यह पसंद है!
ज़ोल्टन श्मिट

8
"पुश-पॉप नो-ऑप" अब मेरा पसंदीदा वाक्यांश
BobTheAwesome

82

हेडस्टैक , 17 बाइट्स

हयास्टैक एक 2 डी प्रोग्रामिंग भाषा है जो तब तक निष्पादित होती है जब तक कि |स्टैक-आधारित संचालन करते समय, सभी को हिस्टैक में सुई नहीं मिलती है । सभी कार्यक्रम शीर्ष बाएं कोने से शुरू होते हैं, और ><^vकार्यक्रम के चारों ओर जाने के लिए दिशात्मक पात्रों का उपयोग कर सकते हैं । दिशा विरासत में मिली है, इसलिए आपको >सही जाने के लिए उपयोग करने की आवश्यकता नहीं है , दिशा केवल तभी बदल जाएगी जब यह एक अलग दिशात्मक चरित्र को हिट करता है।

डिफ़ॉल्ट रूप से, दुभाषिया ऊपर बाईं ओर से दाईं ओर पढ़ता है, इसलिए हम बस "हैलो, वर्ल्ड!" डाल सकते हैं। स्टैक पर, oइसे प्रिंट करने के लिए उपयोग करें, फिर निष्पादन को समाप्त करने के लिए सुई रखें।

"Hello, World!"o|

बोनस: एक और रोमांचक संस्करण:

v      >;+o|
v      "
v      !
v      d
v      l
v      r
>>"Hello, ">>>v
       W      v
       "      v
       ^<<<<<<<

जिज्ञासा से बाहर, क्या होता है यदि आप एक स्ट्रिंग में पात्रों में से एक को शामिल करते हैं?
रैंडम 832

@ Random832 एक स्ट्रिंग में, दिशात्मक पात्रों को नियमित पात्रों के रूप में माना जाता है, अर्थात आप उन्हें एक स्ट्रिंग में शामिल कर सकते हैं।
Kade

38
>; + ओ
bjb568

3
मेरी इच्छा है कि मैं यहां हर किसी के रूप में आधा स्मार्ट था, लेकिन "प्रलेखन" (पढ़ें: कुछ आदमी का फोरम पोस्ट) यह oएक संख्या के रूप में आउटपुट कहता है । यह cअंत में नहीं होना चाहिए ? कहीं भी उचित दस्तावेज नहीं है? यह सुपर दिलचस्प है!
डेविल्स एडवोकेट

2
@Scott सुपर देर से यह जवाब देने के लिए, कि मंच पोस्ट शायद मुझे था! oशीर्ष स्टैक आइटम को आउटपुट करता है, जैसे कि यदि कोई संख्या है तो वह प्रिंट करता है। cबस एक चार करने के लिए डाली जाएगी। तो, यदि आपके पास स्टैक के शीर्ष पर एक स्ट्रिंग या चार है तो oआप क्या चाहते हैं :) आखिरकार ये डॉक्स अपडेट किए जाएंगे ..
केड

70

मदद, WarDoq! , 1 बाइट

H

ही नहीं करता है मदद , WarDoq! वाक्यांश के अधिकांश सामान्य वर्तनी के लिए अंतर्निहित है, यह प्रोग्रामिंग भाषा की हमारी सामान्य परिभाषा को भी संतुष्ट करता है।

आधिकारिक ऑनलाइन दुभाषिया में इसका प्रयास करें (कोड इनपुट में जाता है )।


7
तो, HQ9 ++, अनिवार्य रूप से, एह? ;-)
AdmBorkBork 13

6
@TimmyD नहीं, HQ9 ++ नहीं ।
डेनिस

30
ओह जोर से चिल्लाने के लिए। वहाँ कुछ भी है कि इस बिंदु पर एक esolang नहीं है ? :)
AdmBorkBork

97
"Space: Begin a comment. The next non-space character ends the comment and is interpreted as usual."तो आप केवल रिक्त स्थान से बना टिप्पणी कर सकते हैं ??? मुझे लगता है कि दुनिया की सबसे उपयोगी भाषा में भी एक अनुपयोगी फीचर +1 है,
लेवल रिवर सेंट

29
@steveverrill शायद अगर टैब को भी टिप्पणियों के रूप में माना जाता है, तो हम टिप्पणी को व्हॉट्सएप कार्यक्रमों के रूप में लिख सकते हैं
ऑप्टिमाइज़र

66

मारियोलेन , 259 249 242 240 235 बाइट्स

+>+>)+)+)+++)++++((((-[!)>->.
+"+"===================#+".")
+++!((+++++++++)++++++)<.---+
++=#===================")---.
++((.-(.)).+++..+++++++.<---
 !+======================---
=#>++++++++++++++.).+++.-!>!
  =======================#=#

यह परीक्षण किया गया है रूबी कार्यान्वयन

"हैलो, वर्ल्ड!"मारियोलैंग में मैंने इसे थोड़ा सा गोल्फ में देखा। उपरोक्त सबसे छोटा है जो मैंने अब तक पाया है।

जैसा कि पहले मैंने एक ब्रेनफक समाधान से शुरू किया था, जो चार कोशिकाओं को 10 के निकटतम कई वर्णों He,और स्थान पर सेट करता है और इसे मारियोलैंग में परिवर्तित कर देता है । फिर आप लूप में सहायक मंजिल का उपयोग करके कोड को थोड़ा छोटा कर सकते हैं जो लूप की चौड़ाई को लगभग आधा कर देता है। ध्यान दें कि नीचे केवल शीर्ष से एक बार कम निष्पादित किया जाता है, इसलिए आपको सभी 4 कक्षों में प्रारंभिक काउंटर के सटीक गुणक नहीं मिलते हैं।

अंत में, मैं लूप के सामने व्यर्थ जगह का उपयोग करना चाहता था, इसलिए मैंने वहां ऊर्ध्वाधर स्थान का उपयोग करने के लिए लिफ्ट का एक गुच्छा जोड़ा। और तब मुझे एहसास हुआ कि मैं बाद में कोड को मोड़ सकता हूं कुछ और ऊर्ध्वाधर स्थान का उपयोग करने के लिए लूप के नीचे को लूप (पिछले संशोधन देखें), जिसने पांच और बाइट्स को बचाया।

यह अभी भी सही से बहुत दूर है, लेकिन यह भोले समाधान पर एक सभ्य सुधार है, मुझे लगता है।

Metagolf

कुछ स्वचालन के लिए समय ...

मैंने एक इष्टतम समाधान खोजने के लिए गणितज्ञ में एक सॉल्वर स्थापित करना शुरू कर दिया है। यह वर्तमान में मानता है कि कोड की संरचना तय हो गई है: मुद्रण के लिए 12, 4 कोशिकाओं के लिए सेट He,<space>और उन कोशिकाओं के समान क्रम के लिए काउंटर सेट । यह भिन्न होता है +लूप में s की संख्या के साथ-साथ आवश्यक सुधार भी होते हैं:

n = 12;
Minimize[
 {
  3(*lines*)+
   12(*initialiser base*)+
   Ceiling[(n - 6)/2] 3(*additional initialiser*)+
   8(*loop ends*)+
   18(*cell moves*)+
   26(*printing*)+
   43*2(*steps between letters in one cell*)+
   -2(*edge golf*)+
   4 Max[4 + a + d + g + j + 2 Sign[Sign@g + Sign@j] + 2 Sign@j + 2,
     4 + b + e + h + k + 2 Sign[Sign@h + Sign@k] + 2 Sign@k] +
   2 (Abs@c + Abs@f + Abs@i + Abs@l),
  a >= 0 && d >= 0 && g >= 0 && j >= 0 &&
   b >= 0 && e >= 0 && h >= 0 && k >= 0 &&
   n*a + (n - 1) b + c == 72 &&
   n*d + (n - 1) e + f == 101 &&
   n*g + (n - 1) h + i == 44 &&
   n*j + (n - 1) k + l == 32
  },
 {a, b, c, d, e, f, g, h, i, j, k, l},
 Integers
 ]

यह पता चला है, कि 12 के प्रारंभिक काउंटर के लिए मेरा दस्तकारी समाधान पहले से ही इष्टतम है। हालांकि, 11 का उपयोग करने के बजाय दो बाइट्स बचाता है। मैंने निम्नलिखित परिणामों के साथ 6 से 20 (समावेशी) से सभी काउंटर मूल्यों की कोशिश की:

6: {277,{a->7,b->6,c->0,d->16,e->1,f->0,g->0,h->9,i->-1,j->0,k->6,l->2}}
7: {266,{a->6,b->5,c->0,d->11,e->4,f->0,g->2,h->5,i->0,j->0,k->5,l->2}}
8: {258,{a->2,b->8,c->0,d->3,e->11,f->0,g->5,h->0,i->4,j->4,k->0,l->0}}
9: {253,{a->8,b->0,c->0,d->5,e->7,f->0,g->2,h->3,i->2,j->0,k->4,l->0}}
10: {251,{a->0,b->8,c->0,d->3,e->8,f->-1,g->4,h->0,i->4,j->3,k->0,l->2}}
11: {240,{a->1,b->6,c->1,d->1,e->9,f->0,g->4,h->0,i->0,j->3,k->0,l->-1}}
12: {242,{a->6,b->0,c->0,d->6,e->3,f->-4,g->0,h->4,i->0,j->0,k->3,l->-1}}
13: {257,{a->1,b->5,c->-1,d->6,e->2,f->-1,g->3,h->0,i->5,j->0,k->3,l->-4}}
14: {257,{a->1,b->4,c->6,d->0,e->8,f->-3,g->3,h->0,i->2,j->2,k->0,l->4}}
15: {242,{a->1,b->4,c->1,d->3,e->4,f->0,g->1,h->2,i->1,j->2,k->0,l->2}}
16: {252,{a->0,b->5,c->-3,d->4,e->2,f->7,g->0,h->3,i->-1,j->2,k->0,l->0}}
17: {245,{a->4,b->0,c->4,d->5,e->1,f->0,g->0,h->3,i->-4,j->0,k->2,l->0}}
18: {253,{a->4,b->0,c->0,d->1,e->5,f->-2,g->2,h->0,i->8,j->0,k->2,l->-2}}
19: {264,{a->0,b->4,c->0,d->5,e->0,f->6,g->2,h->0,i->6,j->0,k->2,l->-4}}
20: {262,{a->0,b->4,c->-4,d->5,e->0,f->1,g->2,h->0,i->4,j->0,k->2,l->-6}}

नोट: यह सॉल्वर मानता है कि लूप के बाद लीनियर कोड सभी शीर्ष रेखा पर है, और उपरोक्त कोड वह समाधान है जो मुड़ा हुआ है। फोल्डिंग के बारे में सॉल्वर को अवगत कराकर एक छोटा समग्र समाधान हो सकता है, क्योंकि अब मुझे +पहले भाग में 3 और एस मुफ्त में मिलते हैं, और अगले 4 निर्देशों में 2 के बजाय केवल 1 बाइट का खर्च आएगा।


2
@ अन्याय आपको मेरा पाडा उत्तर देखना चाहिए। : पी
मार्टिन एंडर

मार्टिन मुझे यह जवाब पसंद है। क्या आप हमारे आधिकारिक मंच पर इस बारे में कोई पोस्ट बनाने पर विचार करेंगे ? हम स्टेक्सएक्सचेंज एडिटर के समान उपयोग करते हैं। हमारे संपादकीय इसे स्टाफ पिक्स में जोड़ना चाहेंगे ।
विटालि कौरोव

61

डार्क , 106 बाइट्स

+h hell
h$twist sign s
s$scrawl " Hello, World!
s$read
h$twist stalker o
o$stalk
o$personal
o$echo
h$empty

मैं भाषा के विनिर्देशन के कुछ उद्धरणों को इस गूंज के तेज के लिए बोलूंगा:

अंधेरे लक्ष्यों को प्राप्त करने और सर्वोत्तम संभव वास्तविकता का निर्माण करने के लिए संपूर्ण विश्व और आयामों में हेरफेर करने पर आधारित भाषा है।

जब भी कोई सिंटैक्स त्रुटि होती है, तो प्रोग्राम की पवित्रता 1 से कम हो जाती है [...] यदि प्रोग्राम की पवित्रता शून्य तक पहुंच जाती है, तो दुभाषिया पागल हो जाता है।

जब परिवर्तन होता है तो भ्रष्टाचार एकल बिट में प्रवाहित होता है।

जब गुरु की मृत्यु हो जाती है, तो उस स्वामी से जुड़े सभी नौकर चर भी मर जाते हैं। यह समूहीकरण और सामूहिक हत्या चर के लिए उपयोगी है।

एक चर को खुद को मारने के लिए मजबूर करता है, इसे मुक्त करता है (याद रखें कि हालांकि यह क्षय को छोड़ देगा)।

एक यादृच्छिक मान के लिए एक चर सेट करता है। ग्लोबल कैओस जेनरेटर का उपयोग करता है।

यदि एक स्टाकर को आरंभीकृत नहीं किया जाता है, तो आईओ प्रदर्शन करने के किसी भी प्रयास के परिणामस्वरूप कंसोल में लिखे जाने वाले निराशाजनक संदेश संदेश दिखाई देंगे।


37
यह भाषा इतनी धातु है।
एलेक्स ए।

6
यदि हमें बुराई के क्रम में प्रोग्रामिंग भाषाओं को सूचीबद्ध करना है, तो अंधेरा बुराई होगा।
लुक्स्टॉर्म्स

35
हेलो में नरक है
खालिद .K

सुपर बुराई, तुम भी गोटो चलने की एक सेना बढ़ा सकते हैं
bobrobbob

59

शेफ , 465 बाइट्स

H.

Ingredients.
72 l h
101 l e
108 l l
111 l o
44 l C
32 l S
87 l w
114 l r
100 l d
33 l X

Method.
Put X into mixing bowl.Put d into mixing bowl.Put l into mixing bowl.Put r into mixing bowl.Put o into mixing bowl.Put w into mixing bowl.Put S into mixing bowl.Put C into mixing bowl.Put o into mixing bowl.Put l into mixing bowl.Put l into mixing bowl.Put e into mixing bowl.Put h into mixing bowl.Pour contents of the mixing bowl into the baking dish.

Serves 1.

रूबी दुभाषिया के साथ परीक्षण किया गया। वर्णमाला का सूप बनाता है।

मैंने मूल युक्ति के अनुरूप होने की कोशिश की , क्योंकि मैं जिस दुभाषिया का उपयोग theकरता था Pour contents, वह आपको निर्देश में s को छोड़ने की अनुमति देता है, मैंने ऐसा नहीं किया है।

मिश्रण का कटोरा बहुत महंगा है, इसलिए बेहतर दृष्टिकोण हो सकता है। मैंने संदेश को एन्कोड करने के लिए आधार रूपांतरण का उपयोग करने की कोशिश की, लेकिन दुर्भाग्यवश कल्पना स्पष्ट नहीं Divideकरती है कि क्या पूर्णांक या फ्लोटिंग पॉइंट डिवीजन का उपयोग किया जाता है, और मेरे पास जो दुभाषिया है वह बाद का उपयोग करता है। वहाँ भी कोई modulo ऑपरेटर नहीं है, जो या तो मदद नहीं करता है।


19
अगर कोई शेफ में गोल्फ कर सकता है तो वह सपा है।
एलेक्स ए।

11
अब वास्तविक जीवन में गोल्फ व्यंजनों का प्रयास करें। : D
mbomb007

2
योग्य, यह न केवल खाने के लिए अच्छा है, बल्कि गैर-मानक माप इकाइयों का भी उपयोग करता है। XD
thepiercingarrow

59

घर का बना , 58 बाइट्स

Universe net hatchery Hello,. World!  powers a b snowmelt 

अनुगामी स्थान महत्वपूर्ण है।

मैं आपको एक कहानी सुनाता हूं। एक बार एक बिजली संयंत्र था जो पास के सामन हैचरी को संचालित करता था। सैल्मन हैचरी ने एक युवा बेघर सामन की रचना की, जो एक वसंत को खोजने के लिए यात्रा के लिए तैयार था। इस तरह के वसंत को काव्यात्मक नाम "हैलो, वर्ल्ड!" के साथ मिला, जहां यह परिपक्व हो गया और एक नए युवा सामन को जन्म दिया। विस्तृत समुद्र की तलाश में दोनों मछलियाँ अब नीचे की ओर तैरने लगीं। लेकिन नदी के मुहाने से कुछ ही दूर, नदी में एक जाल था - परिपक्व मछली पकड़ी गई थी और केवल युवा ही फिसलने में कामयाब रहे और समुद्र और ब्रह्मांड के बाकी हिस्सों तक पहुंच गए। इस बीच, हैचरी ने अधिक सामन पैदा किया था जो ऊपर की ओर कूच किया था और इतने पर और इतने पर।

हालाँकि, भारी मात्रा में पिघलने वाली बर्फ नदी के एक अलग हिस्से की यात्रा कर रही थी। और हमारे पहले युवा सामन के बाद से "हैलो, वर्ल्ड!" सागर तक पहुँच गया है, बर्फ पिघल ब्रह्मांड मारा और ... उह ... इसे नष्ट कर दिया। और वे खुशी से कभी रहते थे ... या मुझे लगता है कि वे नहीं थे।

वे वास्तव में उपरोक्त कार्यक्रम के शब्दार्थ थे। घर का बना अजीब है।


15
यह है ... अजीब ...
kirbyfan64sos

10
मैंने पाया कि एक नया पसंदीदा सामन संचालित ब्रह्मांड विनाशक ... उह ... मेरा मतलब है "हैलो, वर्ल्ड!" कार्यक्रम। +1
ETHproductions

7
जब भी मैं इस पर वापस आती हूं, मुझे अच्छी हंसी आती है। संभवतः सबसे मनोरंजक हैलो, विश्व बनाने के लिए धन्यवाद! सभी समय का कार्यक्रम।
ETHproductions

2
यह मेरी नई पसंदीदा भाषा है।
मेगा मैन


53

पीट, 84 कोडेल

नमस्ते नमस्ते विश्व

28x3, यहाँ कोडल चौड़ाई 10 के साथ दिखाया गया है।

PietDev के साथ बनाया गया , npiet के साथ परीक्षण किया गया । कार्यक्रम का लेआउट निम्नलिखित है:

पीट लेआउट

पीला भरण कोडल्स को इंगित करता है जहां पथ ओवरलैप होता है, नारंगी भरण कोडल्स को इंगित करता है जो नियंत्रण प्रवाह के प्रयोजनों के लिए समान रंग होना चाहिए।

इसके निर्माण में सहायता करने के लिए, मैंने पिएट जैसी आज्ञाओं के साथ स्टैक-आधारित भाषा के लिए एक अल्पविकसित दुभाषिया लिखा, जिसे मैंने "पेस" ( स्रोत ) करार दिया है । इस दुभाषिया से आउटपुट ( इस इनपुट के साथ ) निम्नलिखित है:

    1 nop     blu1 []
    4 push 3  blu2 [3]
    5 dup     grn2 [3, 3]
    6 add     cyn2 [6]
    7 dup     ylw2 [6, 6]
    8 mul     grn1 [36]
    9 dup     red1 [36, 36]
   10 dup     blu1 [36, 36, 36]
   11 add     mgn1 [36, 72]
H  12 putc    blu0 [36]
   15 push 3  blu1 [36, 3]
   16 sub     mgn2 [33]
   17 dup     cyn2 [33, 33]
   20 push 3  cyn0 [33, 33, 3]
   21 mul     blu2 [33, 99]
   22 push 1  blu0 [33, 99, 1]
   23 add     mgn0 [33, 100]
   24 dup     cyn0 [33, 100, 100]
   25 push 1  cyn1 [33, 100, 100, 1]
   26 add     blu1 [33, 100, 101]
e  27 putc    cyn0 [33, 100]
   28 dup     ylw0 [33, 100, 100]
   32 push 4  ylw1 [33, 100, 100, 4]
   33 dup     mgn1 [33, 100, 100, 4, 4]
   34 add     red1 [33, 100, 100, 8]
   35 add     ylw1 [33, 100, 108]
   36 dup     mgn1 [33, 100, 108, 108]
l  37 putc    blu0 [33, 100, 108]
   38 dup     grn0 [33, 100, 108, 108]
l  39 putc    ylw2 [33, 100, 108]
   40 dup     mgn2 [33, 100, 108, 108]
   43 push 3  mgn0 [33, 100, 108, 108, 3]
   44 add     red0 [33, 100, 108, 111]
   45 dup     blu0 [33, 100, 108, 111, 111]
o  46 putc    cyn2 [33, 100, 108, 111]
   47 dup     ylw2 [33, 100, 108, 111, 111]
   48 dup     mgn2 [33, 100, 108, 111, 111, 111]
   53 push 5  mgn0 [33, 100, 108, 111, 111, 111, 5]
   54 div     ylw0 [33, 100, 108, 111, 111, 22]
   55 dup     mgn0 [33, 100, 108, 111, 111, 22, 22]
   56 add     red0 [33, 100, 108, 111, 111, 44]
   57 dup     blu0 [33, 100, 108, 111, 111, 44, 44]
,  58 putc    cyn2 [33, 100, 108, 111, 111, 44]
   59 dup     ylw2 [33, 100, 108, 111, 111, 44, 44]
   60 add     grn2 [33, 100, 108, 111, 111, 88]
   64 push 4  grn0 [33, 100, 108, 111, 111, 88, 4]
   65 dup     red0 [33, 100, 108, 111, 111, 88, 4, 4]
   66 mul     ylw2 [33, 100, 108, 111, 111, 88, 16]
   67 dup     mgn2 [33, 100, 108, 111, 111, 88, 16, 16]
   68 add     red2 [33, 100, 108, 111, 111, 88, 32]
   69 putc    mgn1 [33, 100, 108, 111, 111, 88]
   70 push 1  mgn2 [33, 100, 108, 111, 111, 88, 1]
   71 sub     red0 [33, 100, 108, 111, 111, 87]
W  72 putc    mgn2 [33, 100, 108, 111, 111]
o  73 putc    blu1 [33, 100, 108, 111]
   76 push 3  blu2 [33, 100, 108, 111, 3]
   77 add     mgn2 [33, 100, 108, 114]
r  78 putc    blu1 [33, 100, 108]
l  79 putc    cyn0 [33, 100]
d  80 putc    grn2 [33]
!  81 putc    ylw1 []

कोई पॉइंटर, स्विच या रोल कमांड का उपयोग नहीं किया जाता है। कोई भी कोडेल बर्बाद नहीं होता है; वास्तव में दो पुन: उपयोग किए जाते हैं।


बधाई हो, आपको मेरा इनाम मिला :)
LegionMammal978

@ LegionMammal978 धन्यवाद, यह काम करने के लिए मजेदार था। और मेरी क्रिसमस :)
प्राइमो

7
यह वह है जो हॉलीवुड को "हैकर" स्क्रीन पर दिखाना चाहिए।
ह्यूबर्ट ग्रेज्सकोविआक

50

व्हॉट्सएप , 192 150 146 बाइट्स

व्हॉट्सएप को केवल स्पेस, टैब और लाइनफीड की जरूरत है जबकि अन्य पात्रों को नजरअंदाज किया जाता है।
जिसे यहां प्रदर्शित करना परेशानी भरा हो सकता है।
इसलिए रिक्त स्थान के नीचे कोड और टैब बदले गए थे।
और एक '?' स्पष्टता के लिए लाइनफीड के सामने रखा गया था।
कोड चलाने के लिए, पहले बदलें। और> रिक्त स्थान और टैब द्वारा।

...;
..>>..>.>.;
..>>>>;
...>;
...>>>;
...>..;
..>>.>..;
..>>..>.>>;
..>>>>>>>;
...>..;
...>;
.;
...>>>.;
..>>...>>;
;
..;
.;
.;
>.>;
...>>.>.>>;
>...>;
..;
.;
;
;
..>;
;
;
;

कोड का Hexdump

00000000: 2020 200a 2020 0909 2020 0920 0920 0a20
00000010: 2009 0909 090a 2020 2009 0a20 2020 0909
00000020: 090a 2020 2009 2020 0a20 2009 0920 0920
00000030: 200a 2020 0909 2020 0920 0909 0a20 2009
00000040: 0909 0909 0909 0a20 2020 0920 200a 2020
00000050: 2009 0a20 0a20 2020 0909 0920 0a20 2009
00000060: 0920 2020 0909 0a0a 2020 0a20 0a20 0a09
00000070: 2009 0a20 2020 0909 2009 2009 090a 0920
00000080: 2020 090a 2020 0a20 0a0a 0a20 2009 0a0a
00000090: 0a0a

व्हॉट्सएप विधानसभा कोड:

push 0      ;null
push -74    ;! chr(33)
push -7     ;d chr(100)
push 1      ;l chr(108)
push 7      ;r chr(114)
push 4      ;o chr(111)
push -20    ;W chr(87)
push -75    ;  chr(32)
push -63    ;, chr(44)
push 4      ;o
push 1      ;l
dup         ;l
push -6     ;e chr(101)
push -35    ;H chr(72)
p:
 dup jumpz e
 push 107 add printc
 jump p
e:
 exit

टिप्पणियों:

मुझे सिर्फ यह गणना करने के लिए एक कार्यक्रम लिखना था कि 107 जोड़ना वाक्य के लिए इष्टतम गोल्फ देता है। चूंकि एक पूर्णांक कोड परिवर्तन में लेता है कि बाइट करता है। : 4 + int (abs (log2 ($ n)))
कोड अभी भी "e:" लेबल और व्हॉट्सएप पर शेयर से बाहर चलेगा ।kauaveel.ee । लेकिन वह व्हाट्सएप कोड को अन्य व्हाट्सएप कंपाइलरों पर अमान्य बना सकता है। तो उन बाइट्स समाधान से बाहर नहीं थे।

इस बात पर ध्यान दिया जाना चाहिए कि

जैसा कि केविन क्रूज़सेन ने टिप्पणियों में बताया, मेटा के अनुसार "त्रुटि से बाहर निकलने" की अनुमति देकर, व्हाट्सएप को 126 से अधिक वर्णों तक गोल्फकॉकेट किया जा सकता है ।

..>>..>.>.;
..>>>>;
...>;
...>>>;
...>..;
..>>.>..;
..>>..>.>>;
..>>>>>>>;
...>..;
...>;
.;
...>>>.;
..>>...>>;
;
..;
...>>.>.>>;
>...>;
..;
.;
;

सभा:

push -74
push -7
push 1
push 7
push 4
push -20
push -75
push -63
push 4
push 1
dup
push -6
push -35
label_0:
push 107
add 
printc
jmp label_0

मुझे पता है कि यह एक समय हो गया है, और मैं देख रहा हूँ कि आप इसका उल्लेख कर रहे हैं कि अधिकांश कंपाइलरों पर निकास-लेबल के बिना चलता है, लेकिन आप त्रुटि (त्रुटि मान) के बजाय (त्रुटि मान) का उपयोग करके एक त्रुटि के साथ बाहर निकल कर इसे 129 बाइट्स तक कम कर सकते SSNहैं SSSN(पुश 0 ), जिसे मेटा के अनुसार अनुमति दी जाती हैइसे ऑनलाइन (अतिरिक्त हाइलाइटिंग और स्पष्टीकरण के साथ) आज़माएं , या इसे ऑनलाइन कच्चा करने का प्रयास करें
केविन क्रूज़सेन

@ केविनक्रूजसेन मैं अंत में आपके संस्करण की जाँच की। यह मूल रूप से विधानसभा dup jumpz eऔर e: exitहटाए गए के साथ पुराना संस्करण है। लेकिन कम से कम व्हॉट्सएप.kauaveel.ee पर यह तब तक लूप करता रहता है जब तक कि ब्राउजर शिकायत न कर दे। मैं कम गोल्फ और मेटा "त्रुटि द्वारा बाहर निकलने" की अनुमति देने के बावजूद अपना संस्करण नहीं बदल सकता। लेकिन आप अपने संस्करण को एक नए उत्तर के रूप में प्रस्तुत करने के लिए स्वतंत्र हैं।
लुकस्टॉर्म्स

नहीं, मैं एक अलग जवाब पोस्ट नहीं करेंगे। यह मूल रूप से आपके जैसा ही है, त्रुटि से बाहर निकलने के कारण बस थोड़ा सा छोटा है। मुझे यह भी एहसास हुआ कि मैं इसे SSNशुरू में हटाकर 129 के बजाय इसे 126 तक कम कर सकता हूं , जिस स्थिति में यह Infix Plus के साथ त्रुटियां नहीं कर सकता है जब इसमें केवल एक आइटम स्टैक पर (107) है। ( इसे ऑनलाइन आज़माएँ। ) मैं अपनी टिप्पणी यहाँ तब छोड़ूँगा जब किसी के पास भी यही सुझाव होगा। और मैं पहले से ही आपके उत्तर के बारे में एक साल पहले से + 1-एड करता हूं। ;)
केविन क्रूज़सेन

1
@ केविनक्रूजसेन उस मामले में, आपके समाधान को अब जवाब में नोट किया गया है। व्हॉट्सएप गोल्फ में सबसे अधिक संभावना वाली भाषाओं में से एक है। लेकिन बाइट को बचाने के लिए आपके निष्कर्षों का उल्लेख करने योग्य है।
लुकस्टॉर्म्स

49

जावा, 79 ९

class H{public static void main(String[]a){System.out.print("Hello, World!");}}

जावा के पुराने संस्करण आपको एक स्थिर ब्लॉक (51 बाइट्स) का उपयोग करने की अनुमति दे सकते हैं, लेकिन वर्तमान में मुझे mainविधि को बायपास करने का तरीका नहीं पता है ।


7
के enumबजाय का उपयोग करें class
थॉमस एडिंग

6
@ThomasEding क्या कंपाइलर वास्तव में काम करता है? मैंने कई बार इस टिप की कोशिश की है , और इसके साथ बाइट्स को बचाने में कभी सक्षम नहीं हुआ है।
15

4
@ चमकदार आह, यह 1.5 के लिए काम कर सकता है। मैं यह पता लगाने के लिए इसे स्थापित नहीं करने जा रहा हूं, हालांकि, लेकिन पिछले 10 वर्षों में जारी की गई किसी चीज से चिपक गया हूं। अगर मैं जावा 5 को फिर कभी नहीं देख
पाऊंगा तो

2
@ TheDoctor जो मैंने देखा है, प्रसंस्करण आमतौर पर यहां एक अलग भाषा के रूप में देखा जाता है। आपको इसे उत्तर के रूप में पोस्ट करना चाहिए, या कम से कम ओपी से स्पष्टीकरण मांगना चाहिए।
जियोबिट्स

5
उपयोगकर्ता OptiFine ने स्पेसर का उपयोग करके interfaceऔर खाई को हटाकर 3 बाइट को बचाने का सुझाव दिया public। मैंने निम्नलिखित नीति को संपादित करने से मना कर दिया है, लेकिन चूंकि वे टिप्पणी नहीं कर सकते हैं, मैंने सोचा कि मैं आपको बता दूं ताकि आप चाहें तो इसका उपयोग कर सकें।
मार्टिन एंडर

48

सीएसएस, 30 बाइट्स

:after{content:"Hello, World!"

कैस्केडिंग स्टाइल शीट्स (CSS) एक विशिष्ट प्रोग्रामिंग भाषा नहीं है, लेकिन यह निश्चित आउटपुट को काफी अच्छी तरह से कर सकती है। यह सामग्री के साथ हर तत्व के बाद एक छद्म तत्व बनाकर किया जाता है Hello, World!। तो केवल एक तत्व ( <html>) का चयन किया जाता है, यह मानता है कि हम सबसे बुनियादी HTML दस्तावेज़ का उपयोग कर रहे हैं, अर्थात

<html><style>:after{content:"Hello, World!"</style></html>

यह फ़ायरफ़ॉक्स के उल्लेखनीय अपवाद के साथ सबसे प्रमुख ब्राउज़रों में काम करता है, जो चयनकर्ता को तत्वों <html>और <body>तत्वों पर लागू होता है । यह भी है कि स्टैक स्निपेट्स काम नहीं करते हैं, क्योंकि हमेशा एक शरीर तत्व होता है जो स्टाइल के रूप में अच्छी तरह से हो जाता है। नीचे परीक्षण करने के लिए थोड़ा संशोधित संस्करण है।

* :after{content:"Hello, World!"


3
आप * *चयन करने के लिए भी उपयोग कर सकते हैं body
jimmy23013

18
@ jimmy23013 गौरवशाली रूप से अक्षम लगता है। धन्यवाद
NinjaBearMonkey

1
जो भी कारणों * :afterसे काम करने के लिए लग रहा था।
jimmy23013

12
मैं अपने आप से पूछ रहा हूं कि सीएसएस में कौन से अक्षर "भाषा" के लिए अपभ्रंश हैं।
ज़ैबिस

10
@zaibis शायद PHP के लिए एक ही पत्र :)
fcalderan

48

HTML, 13 बाइट्स

Hello, World!

पाठ स्वचालित रूप से में डाला जाता है <body>, और प्रदर्शित किया जाता है।


159
वाह। यह वास्तव में कट्टर कोडिंग कौशल है
ब्लूव्हील

46
HTML एक प्रोग्रामिंग भाषा नहीं है, लेकिन एक मार्कअप भाषा है (यही कारण है कि यह एमएल के साथ समाप्त होता है)।
CoDEmanX

31
लेकिन HTML STDOUT में मुद्रित नहीं है।
हर्षिल शर्मा

25
-1 एचटीएमएल एक वैध भाषा के लिए आवश्यकताओं को पूरा नहीं करता है
डाउनगेट

123
-1 पर्याप्त नहीं jQuery
वैलेंटाइन लोरेंत्ज़

45

लिनक्स के लिए x86_64 मशीन कोड, 32 बाइट्स

जब लिनक्स एक नई प्रक्रिया शुरू करता है, तो सभी रजिस्टर (आरएसपी को छोड़कर) शून्य होते हैं, इसलिए हम केवल कम बाइट को संशोधित करके RAX = 1 प्राप्त कर सकते हैं। X86-64 सिस्टम V ABI इसकी गारंटी नहीं देता है, लेकिन यह वास्तव में लिनक्स क्या करता है। यह कोड केवल _startस्थिर निष्पादन योग्य के रूप में काम करता है ।

0000000000000000 <_start>:
   0:   e8 0d 00 00 00          call   12 <hello>
   5:   48 65 6c 6c 6f
   a:   2c 20 57 6f 72
   f:   6c 64 21 5e 40

0000000000000012 <hello>:
  12:   5e                      pop    rsi
  13:   40 b7 01                mov    dil,0x1
  16:   b2 0d                   mov    dl,0xd
  18:   b0 01                   mov    al,0x1
  1a:   0f 05                   syscall
  1c:   b0 3c                   mov    al,0x3c
  1e:   0f 05                   syscall

कॉल निर्देश अगले पते को धकेलता है, जिसमें स्टैक पर हैलो वर्ल्ड स्ट्रिंग है। हम स्ट्रिंग का पता पॉप करते हैं rsi

फिर अन्य तर्कों को एक के syscallलिए सेट किया जाता है sys_write, जो स्ट्रिंग को प्रिंट करता है।

कार्यक्रम के साथ समाप्त होता syscallहै sys_exitsys_writeलिखित बाइट्स की संख्या लौटाता है, इसलिए RAX की ऊपरी बाइट्स पहले के बाद शून्य हैं syscall(जब तक कि इसमें कोई त्रुटि न हो), इसलिए mov al, 60हमें RAX = देता है__NR_exit केवल 2 बाइट्स में ।

आप इस कार्यक्रम को इसके स्टडआउट ( ./a.out >&-) को बंद करके बना सकते हैं , इसलिए sys_write()वापस आ जाएगा -EBADF, दूसरा syscallवापस आ जाएगा -ENOSYSऔर फिर निष्पादन समाप्त हो जाएगा। लेकिन हमें write()त्रुटियों को इनायत से संभालने की जरूरत नहीं है ।


विशेष रूप से यह केवल लिनक्स पर काम करता है , जहां __NR_write1 है। यह विभिन्न x86-64 यूनिक्स सिस्टम में मानक नहीं है। आप एक ताजा प्रक्रिया में प्रवेश करने से पहले RSP को छोड़कर सभी रजिस्टरों को शून्य करने के लिनक्स व्यवहार पर भी निर्भर करते हैं (इसलिए यह केवल तभी काम करता है जब आप इसे स्थैतिक निष्पादन योग्य बनाते हैं, अन्यथा डायनेमिक लिंकर ऊपरी बाइट्स में कचरा छोड़ देगा raxऔर आप ' मिल जाएगा -ENOSYS)। X86-64 सिस्टम V ABI का कहना है कि रजिस्टरों में प्रवेश पर मनमानी कचरा मूल्य हो सकते हैं _start, लिनक्स कर्नेल खुद को जानकारी लीक से बचने के लिए शून्य चुनता है।
पीटर कॉर्डेस

आप DIL के लिए REX उपसर्ग की आवश्यकता के बजाय mov al, 1/ mov edi, eax(2 बाइट्स) के साथ एक बाइट बचा सकते हैं , क्योंकि__NR_write == STDOUT_FILENO = 1
पीटर कॉर्डेस

यह केवल एक लिनक्स स्टैटिक एक्ज़ीक्यूटेबल में काम करता है, इसलिए आपके स्ट्रिंग का पता वर्चुअल एड्रेस स्पेस के कम 2G में होने की गारंटी दी जाती है ( नॉन-पीआईई एक्जीक्यूटिव्स के लिए डिफॉल्ट मेमोरी मॉडल उन सभी सिंबल्स को डालता है जहाँ उन्हें जीरो या साइन के रूप में इस्तेमाल किया जा सकता है- विस्तारित 32-बिट तुरंत)। इस प्रकार आप 5-बाइट mov esi, msg(NASM) उर्फ mov esi, OFFSET msg(GAS .intel_syntax) का उपयोग कर सकते हैं । आखिरी के बाद अपनी स्ट्रिंग रखें syscallcall/pop64-बिट RIP- सापेक्ष LEA से 1 बाइट छोटा है, लेकिन mov सबसे अच्छा है।
पीटर कॉर्डेस

30 बाइट संस्करण के लिए NASM स्रोत (मेरे डेस्कटॉप पर चेक किया गया आकार), tio.run/##TY8/…
पीटर

42

हेक्सागोनी , 37 32 बाइट्स

सूचना: मैं पहले व्यक्ति के लिए 500 प्रतिनिधि की बाउंटी दे रहा हूँ जो साइड-लेंथ 3 के षट्भुज में एक वैध समाधान ढूंढता है या साइड-लेंथ का एक अधिकतम इष्टतम समाधान है 4. यदि आप ऐसा समाधान नहीं ढूंढ सकते हैं लेकिन मेरे स्कोर को एक साइड-लेंग 4 हेक्सागोन में हरा देने का प्रबंधन करें (कार्यक्रम के अंत में अधिक नो-ऑप्स प्राप्त करके, जिसे स्रोत कोड से छोड़ा जा सकता है), मैं इसके लिए एक छोटा सा इनाम देने को तैयार हूं ।

H;e;P1;@/;W;o;/l;;o;Q/r;l;d;2;P0

इसे ऑनलाइन आज़माएं!

मैं गर्व से अपनी दूसरी 2 डी प्रोग्रामिंग भाषा प्रस्तुत करता हूं, और (मेरी जानकारी के लिए) हेक्सागोनल ग्रिड पर पहली बार 2 डी भाषा।

स्रोत कोड बहुत 2D नहीं दिखता है, यह करता है? ठीक है, व्हाट्सएप हेक्सागोनी में वैकल्पिक है। सबसे पहले, स्रोत कोड अगले केंद्रित हेक्सागोनल संख्या में बिना ऑप्स ( .) के साथ गद्देदार होता है । अगली ऐसी संख्या 37 है, इसलिए हम अंत में पांच नो-ऑप्स डालते हैं। फिर स्रोत कोड को नियमित षट्भुज में पुन: व्यवस्थित किया जाता है:

   H ; e ;
  P 1 ; @ /
 ; W ; o ; /
l ; ; o ; Q /
 r ; l ; d ;
  2 ; P 0 .
   . . . .

यह भी चलाने योग्य है। इसे ऑनलाइन आज़माएं!

हेक्सागोनी में 6 अलग-अलग अनुदेश बिंदुओं और एक मेमोरी लेआउट सहित एक बहुत ही कायरता सुविधाओं का एक गुच्छा है, जो एक हेक्सागोनल ग्रिड का लाइन ग्राफ है, लेकिन यह कोड केवल एक आईपी और एक मेमोरी एज का उपयोग करता है, इसलिए अब इसके बारे में चिंता न करें।

यहाँ प्रासंगिक आदेशों का अवलोकन किया गया है:

  • पत्र केवल वर्तमान मेमोरी एज को उनके ASCII मान पर सेट करते हैं
  • ; वर्तमान मान को मापता है, मोडुलो 256, STDOUT को बाइट के रूप में।
  • / वह दर्पण है जो आपसे अपेक्षा के अनुसार व्यवहार करता है (जिससे IP 120 डिग्री का मोड़ लेता है)।
  • वे लेबिरिंथ में अंकों का काम करते हैं : वे वर्तमान सेल को 10 से गुणा करते हैं और फिर खुद को जोड़ते हैं।
  • @ कार्यक्रम को समाप्त करता है।

अब अंतिम पकड़ यह है कि स्रोत किनारों के सभी 3 जोड़े को लपेटता है। इसके अलावा, अगर आईपी छह कोनों में से एक के माध्यम से ग्रिड छोड़ता है, तो कूदने के लिए दो संभावित पंक्तियां हैं। जो चुना जाता है वह इस बात पर निर्भर करता है कि वर्तमान मूल्य सकारात्मक है या गैर-सकारात्मक। निम्न एनोटेट संस्करण दिखाता है कि जहां हर बार आईपी ग्रिड से बाहर निकलता है:

         H ; e ;     -> 1
5 ->    P 1 ; @ /    -> 4
3 ->   ; W ; o ; /   -> 2
1 ->  l ; ; o ; Q /
4 ->   r ; l ; d ;   -> 5
2 ->    2 ; P 0 .    -> 3
         . . . .

इसलिए यदि हम सभी दिशा परिवर्तन को हटा देते हैं, तो यह कार्यक्रम निम्नलिखित रैखिक कोड को उबालता है:

H;e;l;;o;Q2;P0;W;o;r;l;d;P1;@

क्या साथ है Q2, P0और P1? पत्र आसानी से मुद्रित होते हैं क्योंकि हम किनारे को संबंधित मूल्य पर सेट कर सकते हैं। अल्पविराम के लिए, स्थान और विस्मयादिबोधक चिह्न, जो काम नहीं करता है। हम भी बस के साथ उनके मूल्य निर्धारित नहीं कर सकते 44, 32, 33क्रमशः, क्योंकि स्मृति बढ़त गैर शून्य के साथ शुरू करने के लिए है, और व्यक्तिगत अंक कि कहर बरपाने के सभी प्रकार के हैं के शब्दों की वजह से। अगर हम ऐसा करना चाहता था, हम कुछ के साथ शून्य करने के लिए धार मूल्य पुनर्स्थापित करने के लिए की तरह होगा *, +, -, &या ^पहले। हालाँकि, चूंकि मूल्य मुद्रित होने से पहले modulo 256 लिया जाता है, हमें मानों को 44, 32, या 33 पर सेट करने की आवश्यकता नहीं है। उदाहरण के लिए,Q2 किनारे का मान सेट करेगा 81*10 + 2 = 812, जो है44जब सापेक्ष लिया256। इस तरह हम उन तीन अक्षरों में से प्रत्येक पर एक बाइट बचा सकते हैं। (दुर्भाग्य से, सेल के पास पहले से मौजूद मूल्य से एक अंक के साथ वहां पहुंचना कभी संभव नहीं है। मनोरंजक रूप से, जहां यह काम करता है वह oहै World, क्योंकि इससे भी प्राप्त किया जा सकता है W9।)

आप इस CJam स्क्रिप्ट का उपयोग कर सकते हैं का उपयोग सभी अक्षर-अंकों के संयोजन को खोजने के लिए जो किसी दिए गए चरित्र में परिणाम करता है।

मुझे यकीन नहीं है कि यह इष्टतम है। मुझे संदेह है कि इसे साइड-लेंथ 3 के हेक्सागोन में करना संभव है (जहां आपके पास केवल 19 अक्षर उपलब्ध होंगे), लेकिन संभव है कि इसे हेक्सागोन में हल किया जा सके, जिसमें साइड-लंबाई 4 में 32 से कम कमांड हों, जैसे कि ग्रिड के अंत में और नो-ऑप्स हैं।


1
दमयन्ती, तूने मुझे हरा दिया। मैं खुद कार्डिनल के समान हेक्सागोनल भाषा की तरह काम कर रहा हूं।
ML

आपको यह समाधान कैसे मिला? हाथ से या पाशविक-बल से? वैसे भी, +1 :)
अदनान

1
Q2, P0और P1बहुत चालाक है। मैं मोडुलो 256 भाग को नहीं जानता था।
अदनान

1
@ अदनान जिस व्यक्ति ने GitHub पर mod-256 भाग का सुझाव दिया था, उसने वास्तव में उदाहरण के साथ ऐसा किया था कि तब लाइनफीड्स को M8;(या g4;) के रूप में मुद्रित किया जा सकता था , जिसे मैंने तब से कई बार उपयोग किया है। यह मेरे लिए कभी नहीं हुआ जब तक कि मैंने इस परिवर्तन को करने के बाद इस उत्तर को फिर से प्रस्तुत नहीं किया।
मार्टिन एंडर

2
नोट: यह कुछ समय पहले घटाकर ३१ कर दिया गया था। H;e;P;2Q/d;l;r/l;$@;o];o;W;03&;
मिच श्वार्ट्ज 10

38

मैलबोल, 112 बाइट्स

('&%:9]!~}|z2Vxwv-,POqponl$Hjihf|B@@>,=<M:9&7Y#VV2TSn.Oe*c;(I&%$#"mCBA?zxxv*Pb8`qo42mZF.{Iy*@dD'<;_?!\}}|z2VxSSQ

मैं देख रहा हूँ अगर वहाँ एक छोटे से एक है। पिछली बार से बेहतर कंप्यूटर मिला है, इसलिए मैं काफी तेजी से उत्पन्न कर सकता हूं।

शो के लिए, यहाँ "हैलो वर्ल्ड!" अल्पविराम के बिना।

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

37

फूरियर , 15 बाइट्स

फूरियर के लिए बड़ा परिवर्तन!

`Hello, World!`

यह चार वीडियो पर कोशिश करो!

हां, प्रत्येक वर्ण के ASCII कोड टाइप करने के दिन हमेशा के लिए चले गए हैं: फूरियर अब तरह के समर्थन करता है। जब आप backticks में एक स्ट्रिंग संलग्न करते हैं, तो उस स्ट्रिंग को आउटपुट किया जाएगा।

ध्यान दें कि आप उस स्ट्रिंग के आउटपुट के अलावा कुछ नहीं कर सकते हैं: आप इसे एक चर में संग्रहीत नहीं कर सकते हैं, यह संचायक में संग्रहीत नहीं है और कोई स्ट्रिंग हेरफेर उपकरण नहीं हैं।


यहां, आप ट्रेन के मलबे को ढूंढ सकते हैं जो पुराने फूरियर था । ;)

72a101a+7aa+3a44a32a87a111a+3a-6a-8a33a

इसे ऑनलाइन आज़माएं!

अब, आप में से कुछ शायद फूरियर से पहले मिले होंगे और भाषा से काफी परिचित हो सकते हैं। पूरी भाषा एक संचायक पर आधारित है: एक वैश्विक चर जो बहुत सारे ऑपरेटर उपयोग करते हैं।

कोड का सबसे महत्वपूर्ण हिस्सा aऑपरेटर है। यह संचायक के संख्यात्मक मूल्य को लेता है और इसे पायथन कोड का उपयोग करके एक चरित्र में परिवर्तित करता है chr(accumulator)। यह तब STDOUT में मुद्रित होता है।

दुर्भाग्य से, मुझे अभी तक फूरियर का उपयोग करने का मौका नहीं मिला ( कुहनी से हलका धक्का , पलक झपकना ), इसका मुख्य कारण स्ट्रिंग्स और स्ट्रिंग ऑपरेटरों की कमी है। फिर भी, यह अभी भी कई अन्य चुनौतियों के लिए उपयोग करने योग्य है (इसके EsoLangs पृष्ठ के उदाहरण अनुभाग देखें)।

ध्यान दें कि यह Esolangs सूची में मेरे प्रवेश से कम है क्योंकि मैंने वास्तव में नहीं सोचा था कि मैं इसे और अधिक गोल्फ कर सकता हूं। और फिर, जब फूरियर स्ट्रिंग गोल्फिंग चुनौती लिख रहा था, मुझे एहसास हुआ कि मैं काफी छोटा जा सकता हूं।

ध्यान दें

यदि आप वैरिएंट सिंटैक्स के बारे में सोच रहे थे, तो जियोबिट्स ने एक प्रोग्राम लिखा था जो चर का उपयोग करता है और यह एक ही लंबाई है:

72a101a+7aa+3~za44a32a87aza+3a-6a-8a/3a

इसे ऑनलाइन आज़माएं!


क्या उपयोग करने योग्य है? क्या यह प्रयोग करने योग्य है?
कैलक्यूलेटरफैलीन

35

सी-- , 155 बाइट्स

target byteorder little;import puts;export main;section"data"{s:bits8[]"Hello, World!\0";}foreign"C"main(){foreign"C"puts("address"s);foreign"C"return(0);}

दुर्भाग्य से, केवल ज्ञात सी-- कंपाइलर, क्विक सी-- का अब रखरखाव नहीं है। यह एक गर्दन का निर्माण करने में एक दर्द है, लेकिन यह है संभव ...


8
वास्तव में आकर्षक भाषा - मैंने इसके बारे में पहले कभी नहीं सुना, और यह निश्चित रूप से एक महत्वाकांक्षी परियोजना है जो वे (कर रहे हैं) कर रहे हैं। लेकिन कोड गोल्फ के संदर्भ में, मुझे नहीं लगता कि यह कोई दावेदार होगा। मेरा मतलब है ...
खतरा

11
@TimmyD यह वास्तव में एक कोडांतरक है। वहाँ एक कारण यह जावा को खो देता है ... :)
kirbyfan64sos

मेरे पास तुम्हारें लिए एक अच्छी खबर है। जबकि C-- परियोजना अपने आप में काफी मृत प्रतीत होती है, एक संस्करण काफी जीवित है। ग्लासगो हास्केल कम्पाइलर (GHC) असेंबली या LLVM से पहले अंतिम चरण के रूप में C-- का उपयोग करता है, और यह संस्करण अभी भी सक्रिय रूप से बनाए रखा गया है। इसे स्थापित करने के लिए (जीएचसी के बाकी हिस्सों के साथ) कोई भी परेशानी नहीं होनी चाहिए।
दिन

@ फ़ेडरर वास्तव में मैंने सीधे उनके Cmm बैकएंड का उपयोग करने की कोशिश की, लेकिन मेरे पास कुछ अजीब मुद्दे थे और वास्तव में कभी भी इस पर ध्यान नहीं दिया (\\ _ (ツ) _ / ¯
kirbyfan64sos

आप संभवतः हास्केल मेलिंग सूचियों पर कुछ सहायता प्राप्त कर सकते हैं। Glasgow-haskell-users@haskell.org, या शायद haskell-cafe@haskell.org आज़माएं।
dfeuer

33

सी, 30 बाइट्स

main(){puts("Hello, World!");}

काफी हद तक वेनिला, लेकिन मैं इसे किसी भी तरह से करने के लिए एक सामान्य रूप से सोचने योग्य तरीका नहीं सोच सकता (जब तक कि किसी तरह की कच्ची असाम चाल काम कर सकती है?)। फिर भी, सबसे अधिक असहिष्णुता धड़कता है!


3
यह एक अलग उत्तर के लायक नहीं है, लेकिन पूरी तरह से आईएसओ अनुरूप C89 और C99 उत्तर क्रमशः 39 main(){puts("Hello, World!");return 0;}और 53 #include <stdio.h> int main(){puts("Hello, World!");}बाइट्स हैं। थोड़ा और अगर आपको लगता है कि मुख्य (शून्य) की आवश्यकता है।
रैंडम 832

20
@ Random832: पूर्व के लिए, main(){return!puts("Hello, World!");}दो बाइट्स कम हैं।
लिन

15
कार्यक्रम h29 बाइट्स छोटा है। नोट: आपको इसे -Dh='main(){puts("Hello, World!");}'आधा ट्रोलिंग के साथ संकलित करना होगा , आधा खुद को संकलक के साथ दुर्व्यवहार करना होगा।
19

19
@matega यह स्पष्ट रूप से धोखा है। यह धोखा न हो इसके लिए आपको फ़ाइल को केवल __FILE__(8 बाइट्स) बनाना होगा और फ़ाइल को नाम देना होगा main(){puts("Hello, World!");}। तब यह पूरी तरह से धोखा नहीं है;)
C0deH4cker

दरअसल, 2017 के नियमों में क्रमशः 34 और 38 बाइट होंगे।
कैलक्यूलेटरफल

32

अपठनीय , 843 755 732 666 645 629 577 बाइट्स

' "'" " '" "'" " '"' " '" "" "" "'" " '" ""' "" ' ""' "" ' ""' "" ' ""' "" ' "'" " '" "" "" "'" " '" "'" " '" ""' "" ' ""' "" ' ""' "" ' ""' "" ' ""' "" ' ""' "" ' ""' "" ' "" "" ""' "" ' ""' "" " '" "'" " '" "'" " '" "'" " ' "" '" "'" " '" "'" " '" "'" " '" "'" " '"' "" ' ""' "" ' ""' "" ' ""' "" ' " " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " ' "" ' ""' "" ' ""' "" "" "" ' "" "" "" "" "" "'" " '" "'" " '" "'" " '" "' "" '" "'" " '" "'" " '" "'" "" "" " '" ""' "" ' ""' "" ' ""' "" ' ""' "" ' " " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " '" "'" " ' "" ' ""' "" ' ""' "" ' ""' "" ' "" "'" ' "" "" "" "" "" "" "" "" ""' " '"" "" "" "" "" ' "'" "" "" "" "" ' ""' "" " '"' "" ' ""' "" ' "'" " '" " ' ""' "" "" "" "" " '" ""' " '" "" "" "" ""' "" " '"' "" "" "" "" " '" " '" "'" "" ' "'" " '" "" "" "" "" """ ' "" "'" ' ""' "" ' ""' " '" "'" " '" "'" "" "" "" "" ' "" "'" ' "" "" "" "" " '" ""' " '" "" "" "" ""' "" ' ""' "" " '"' "" ' "" "" "" "" """" ' "" "'" ' ""' "" ' ""' " '" "'" " '" "'" "" "" "" "" ' "" "'" ' "" "" "" "" " '" ""' " '" "" "" "" ""' "" ' ""' "" " '"' "" ' "" "" "" "" """" "" " '" ""' " '" "" "" "" ""' "" ' ""' "" " '"' "" ' "" "" "" "" """" "" " '" ""' " '" "" "" "" ""' "" ' ""' "" " '"' "" ' "" "" "" "" ""

अपठनीय कार्यक्रमों को एक चर-चौड़ाई फ़ॉन्ट के साथ प्रदर्शित किया जाना चाहिए, इसलिए वे भाषा के नाम का सम्मान करते हैं। मैं थोड़ा निराश हूं कि मेरे अधिक परिष्कृत दृष्टिकोण बहुत लंबे समय तक बने रहे। अपठनीय में लूप्स बहुत महंगे हैं ...

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

अपठनीय के केवल दस कार्य हैं; इनमें से छह इस कोड में उपयोग किए जाते हैं:

'"        p Print.
'""       + Increment.
'"""      1 Return 1.
'""""""   : Set.
'"""""""  = Get.
'"""""""" - Decrement.

मेरे एकल-वर्ण संकेतन का उपयोग करने और कुछ व्हाट्सएप और टिप्पणियों को जोड़ने के बाद, उपरोक्त कोड निम्नलिखित जैसा दिखता है। मल्टी-लाइन स्टेटमेंट्स को नीचे से ऊपर तक निष्पादित किया जाता है।

p+++                                        Print 3 + variable 2 (o).
 pp                                         Print variable 2 two times (l).
  :+1+++++++                                Save 8 + variable 3 in variable 2.
   p+                                       Print 1 + variable 3 (e).
    :++1+++++++++++++                       Save 13 + variable 4 in variable 3.
     :+++1+++++++++++++++                   Save 43 + variable 0 in variable 4.
      p++++++++++++++++++++++++++++         Print 28 + variable 0 (H).
       :-1++++++++++++                      Save 44 in variable 0.
        :1+++++++++++++++++++++++++++++++1  Save 32 in variable 1.
p=-1                                        Print variable 0 (,).
p=1                                         Print variable 1 ( ).
p=+++1                                      Print variable 4 (W).
p+++                                        Print 6 + variable 2 (r).
 p+++=+1                                    Print 3 + variable 2 (o).
p=+1                                        Print variable 2 (l).
p=++1                                       Print variable 3 (d).
p+=1                                        Print 1 + variable 1 (!).

मैंने इस सीजेएम कार्यक्रम के माध्यम से उपरोक्त छद्मकोड के अनियोजित संस्करण को चलाकर वास्तविक स्रोत कोड तैयार किया है ।


3
तुम्हारी किस बारे में बोलने की इच्छा थी? यह बहुत पठनीय है!
ऑप्टिमाइज़र

19
@ ऑप्टिमाइज़र फिक्स्ड।
डेनिस

4
फिर भी पठनीय! (निश्चित रूप से मैं सच कह रहा हूं। आप मुझ पर विश्वास क्यों नहीं करेंगे?)
ऑप्टिमाइज़र

5
ऐसा लगता है कि आकार, और अपठनीयता के संदर्भ में इस भाषा को एक बेहतर हफ़मैन कोडिंग से लाभ होगा।
प्राइमो सिप

30

Befunge 98 , 19 18 बाइट्स

नया उत्तर (अंडरग्राउंडोरेल से)

"ck,@!dlroW ,olleH

व्याख्या

  • " स्ट्रिंग मोड शुरू करता है
  • इसके बाद आने वाली हर चीज स्टैक पर धकेल दी जाती है। स्टैक अब हैHello, World!@,kc
  • अंत मारने के बाद, दुभाषिया प्रारंभ पर वापस जाता है
  • यह "फिर से सामना करता है , स्ट्रिंग मोड को समाप्त करता है
  • 12 को स्टैक में धकेल दिया जाता है ( c)
  • k स्टैक के शीर्ष मूल्य को लेता है और अगले कमांड को निष्पादित करता है जो निर्देश सूचक कई बार देख सकता है
  • ,स्टैक से एक मूल्य प्राप्त करता है और इसे चार के रूप में आउटपुट करता है। इसे अंतिम kनिर्देश द्वारा 12 बार निष्पादित किया गया है , और एक बार और जब दुभाषिया वास्तव में ,निर्देश पढ़ता है
  • @ कार्यक्रम समाप्त करता है

पुराने उत्तर के साथ अंतर यह है कि हम चतुराई से पुन: उपयोग करते हैं " से लाइन के अंत में हिट होने पर बेफुंज के लूपिंग व्यवहार का उपयोग करके चरित्र का । चूंकि यह कम सहज हो सकता है, मैं पुराने को भी दे रहा हूं। इसके अलावा, आपने देखा होगा कि स्टैक में अभी भी कुछ अक्षर ( ck,@) होंगे क्योंकि इस अच्छी चाल के कारण, कुछ गड़बड़ हो जाती है अगर हम कभी उसके बाद कुछ करना चाहते थे।

पुराना उत्तर

"!dlroW ,olleH"ck,@

यह फन और बफुन 98 के लिए काम करता है

व्याख्या

  • बीच की ""हर चीज स्टैक पर धकेल दी जाती है। ( 'H'अब शीर्ष पर है।)
  • c (12) स्टैक पर धकेल दिया जाता है
  • k स्टैक के शीर्ष मूल्य को लेता है और अगले कमांड को निष्पादित करता है जो निर्देश सूचक कई बार देख सकता है।
  • ,स्टैक से एक मूल्य प्राप्त करता है और इसे चार के रूप में आउटपुट करता है। इसे अंतिम kनिर्देश द्वारा 12 बार निष्पादित किया गया है , और एक बार और जब दुभाषिया वास्तव में ,निर्देश पढ़ता है
  • @ कार्यक्रम समाप्त करता है

2
मुझे नहीं लगता कि 93 है हैk
Sp3000

1
खैर, अब है कि यह 98 है केवल आप उपयोग कर सकते cके लिए 93+
पुरकाकूदरी

3
18 में:"ck,@!dlroW ,olleH
भूमिगत

1
यह "स्ट्रिंग को शुरू करने के लिए हिट करता है, उस स्ट्रिंग के लिए लाइन के बाकी हिस्सों को जोड़ता है, चारों ओर लपेटता है और "स्ट्रिंग को समाप्त करने के लिए समान हिट करता है । अब पूरे कार्यक्रम को छोड़कर शीर्ष पर "धकेल दिया गया है !dlroW ,olleH। फिर यह शीर्ष 12 अक्षरों को उसी तरह प्रिंट करता है जिस तरह से आपका काम करता है और रुक जाता है @
अंडरग्राउंडोरेल

1
18 बाइट समाधान के लिए, मेरा दुभाषिया `हैलो, वर्ल्ड` (अग्रणी स्थान, कोई विस्मयादिबोधक) पैदा नहीं करता है। अराजकता गोल्फ दुभाषिया (उपयोग फार्म,, Befunge-98, पेस्ट कोड का चयन पेश करें) एक ही है।
प्राइमो सिप

29

JSFuck , 6293 6289 6277 बाइट्स

यह सबसे लंबे समय तक "सबसे कम हैलो, विश्व! कार्यक्रमों" में से एक के रूप में उल्लेख प्राप्त कर सकता है (वास्तव में मुझे नहीं पता कि क्या यह इष्टतम है, लेकिन यह सबसे छोटा है जिसे मैं प्राप्त करने में कामयाब रहा)।

चेतावनी: केवल फ़ायरफ़ॉक्स और सफारी में काम करता है

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

थोड़ा लंबा संस्करण (+4 बाइट्स) भी है जो क्रोम और Microsoft एज में भी काम करता है:

JSFuck से अपरिचित लोगों के लिए, यह जावास्क्रिप्ट लिखने के बारे में है जैसे कि केवल छह वर्ण थे, और यह कई बार बहुत पागल हो सकता है।

यह तालिका दिखाती है कि हैलो, वर्ल्ड में उपयोग किए जाने वाले पात्र कैसे हैं ! कार्यक्रम JSFuck में एन्कोडेड हैं। सादा पाठ कोड बस है alert("Hello, World!")

+----------+--------------------------------------+---------------------------+
|JavaScript|               write as               |           JSFuck          |
+----------+--------------------------------------+---------------------------+
|     a    | (false+[])[1]                        | (![]+[])[+!![]]           |
|     l    | (false+[])[2]                        | (![]+[])[!![]+!![]]       |
|     e    | (true+[])[3]                         | (!![]+[])[!![]+!![]+!![]] |
|     r    | (true+[])[1]                         | (!![]+[])[+!![]]          |
|     t    | (true+[])[0]                         | (!![]+[])[+[]]            |
|     (    | ([]+[]["fill"])[13]                  | 114 bytes                 |
|     "    | ([]+[])["fontcolor"]()[12]           | 539 bytes                 |
|     H    | btoa(true)[1]                        | 1187 bytes                |
|     o    | (true+[]["fill"])[10]                | 105 bytes                 |
|   space  | ([]["fill"]+[])[20]                  | 107 bytes                 |
|     W    | (NaN+self())[11]                     | 968 bytes                 |
|     d    | (undefined+[])[2]                    | ([][[]]+[])[!![]+!![]]    |
|     !    | atob((Infinity+[])[0]+false)[0]      | 1255 bytes                |
|     )    | (0+[false]+[]["fill"])[20]           | 114 bytes                 |
+----------+--------------------------------------+---------------------------+

यहाँ तार "fill", "fontcolor"आदि को लिखा जाना चाहिए "f"+"i"+"l"+"l","f"+"o"+"n"+"t"+"c"+"o"+"l"+"o"+"r" एन्कोड करने की।

वैश्विक पहचानकर्ता self, atobऔर btoaजैसे लिखे जाते हैं Function("return self")()

Function खुद होना चाहिए []["fill"]["constructor"]

अल्पविराम ","मुश्किल है, मुझे यकीन नहीं है कि यह कैसे काम करता है, लेकिन यह []["concat"]एक सरणी बनाने के लिए फ़ंक्शन का उपयोग करता है । जब मेरे पास और परीक्षण करने का समय होगा तो मैं एक अपडेट पोस्ट करूंगा।


मैंने JScrewIt का उपयोग करके इसे इनकोड किया - ऐसे परिष्कृत उपकरण बनाने के लिए GOTO 0 को क्रेडिट :

  • फ़ायरफ़ॉक्स खोलें (आप कोई अन्य ब्राउज़र चुन सकते हैं), लेकिन फ़ायरफ़ॉक्स केवल कोड सबसे छोटा है।)
  • JScrewIt पर नेविगेट करें : http://jscrew.it
  • इनपुट: alert("Hello, World!")
  • निष्पादन योग्य कोड: जाँच की गई
  • संगतता: केवल यह ब्राउज़र

यह "हैलो" के बाद अल्पविराम की उपस्थिति के लिए इस सवाल के मेरे जवाब से अलग है ।

दिलचस्प है, ES6 सिंटैक्स

alert`Hello, World!`

एन्कोड करने के लिए के बजाय दो बैकटिक एन्कोडिंग के उच्च जटिलता की वजह से (1500 या तो) और भी अधिक बाइट्स लेता है ("और ")


वैसे यह एंड्रॉइड पर क्रोम में काम करता है
बीटा डेके

क्रोम पर OS X पर भी काम करता है
C0deH4cker

1
आपने यहाँ बहुत अच्छा काम किया! अंतिम अपडेट की जांच करना सुनिश्चित करें।
गोटो 0

4
@ GOTO0 रुको ... आप JScrewIt के लेखक हैं, है ना?
मुझे और मेरी बिल्ली

1
आप इसे कैसे कार्य कहते हैं?

29

पाडा , 83 68 बाइट्स

~.O~Ow~q~Owo~O~Oww~Q~qwo~q~O~wQ~q~w~q~q~Q~Ow~Q~Q~wo~q~w.~q~w.~.wO~qw

मेरा मानना ​​है कि यह एक रेखीय कार्यक्रम के लिए इष्टतम है (यानी एक जो नियंत्रण प्रवाह ऑपरेटरों का उपयोग नहीं करता है ?और *)। यह समग्र रूप से इष्टतम हो सकता है, लेकिन मुझे नहीं पता कि कोड की इतनी कम मात्रा में उन अतिरिक्त ऑपरेटरों का उपयोग करने के बारे में कैसे जाना है (या प्रोग्रामेटिक रूप से संभावनाओं का पता कैसे लगाया जाए)।

ईमेल द्वारा लेखक के साथ चर्चा शुरू करने के बाद भाषा ने हाल ही में कुछ बदलाव किए हैं। हालाँकि, मैंने एक संदर्भ कार्यान्वयन लिखा है पिछले हफ्ते भाषा की वर्तमान स्थिति के लिए , इसलिए उपरोक्त कोड वास्तव में चलने योग्य है।

Metagolf

मूल रूप से, मैंने इस चुनौती के लिए अपने संदर्भ कार्यान्वयन के आउटपुट का उपयोग किया था और उसी के आधार पर एक हाथ से तैयार किया गया समाधान बनाया था। हालाँकि, यह सिर्फ एक दृष्टिकोण था।

इसलिए इसके बजाय मैंने गणितज्ञ में एक सॉल्वर लिखा जो वास्तव में पाडा डेटा संरचनाओं और ऑपरेटरों के बारे में जानता है ताकि एक इष्टतम समाधान खोज सकें। औसतन, यह स्ट्रिंग की लंबाई के साथ रैखिक रूप से बढ़ता है (हालांकि कुछ वर्ण संयोजन दूसरों की तुलना में थोड़ा धीमा हैं) और इसके लिए लगभग 1.5 घंटे लगते हैं Hello, World!

तो मैं सॉल्वर लिखने के बारे में कैसे जाना। सबसे पहले, हम देखते हैं कि हमें केवल 6 ऑपरेटरों पर विचार करने की आवश्यकता है: ~.oOqQ(साथ ही wप्रत्येक मुद्रित वर्णों के लिए आवश्यक )। स्टैक या बिट लॉक का उपयोग करना रैखिक कोड में उपयोगी नहीं है, और मुझे विश्वास नहीं है कि ?और *68 बाइट्स से कम में प्रभावी रूप से उपयोग किया जा सकता है।

पडा की स्थिति (स्टैक और ताले की अनदेखी) में 7 स्विच और 8 बिट्स होते हैं, इस तरह से व्यवस्थित:

       /
   /       \
 /   \   /   /
0 1 0 0 1 0 0 0

तो यह संभव है कि राज्यों। मेरा पहला प्रीप्रोसेसिंग चरण राज्यों का एक निर्देशित ग्राफ स्थापित करना था जहां प्रत्येक किनारे एक ही ऑपरेशन से मेल खाती है। यही है, ग्राफ में 32768 कोने हैं, जिनमें से प्रत्येक में 6 डिग्री (विचाराधीन 6 में से प्रत्येक के लिए एक आउटगोइंग एज) है। हम इस ग्राफ का उपयोग किसी भी दो राज्यों के बीच सबसे छोटे रास्ते को खोजने के लिए कर सकते हैं (यह ग्राफ अकेले गोल्फिंग पाडा के लिए काफी उपयोगी हो सकता है)।215 = 32768

अब प्रत्येक चरित्र के लिए, हम wउस स्थिति तक पहुँचना चाहते हैं जहाँ वह चरित्र प्रिंट करता है। ऐसे कितने राज्य हैं? wबाइट को बिट से पढ़ता है इसे (चक्रवात) पर गिराया जाता है। तो चरित्र के बिट्स के 8 संभावित घुमाव हैं जो सभी उस चरित्र को प्रिंट कर सकते हैं। उन घुमावों में से प्रत्येक के लिए, तीन स्विच तय किए गए हैं ( wसही स्थिति में ड्रॉप करने के लिए )। यह 4 मनमाने स्विच छोड़ता है। इसलिए हमने अपने कोड में प्रत्येक के लिए संभव स्टेट्स प्राप्त किए हैं ।8 * 24 = 128w

उन लोगों के साथ हम एक और ग्राफ समस्या को हल कर सकते हैं: एक ग्राफ का निर्माण करें जिसमें एक स्रोत शीर्ष है, फिर प्रत्येक चरित्र के लिए एक "परत" और एक सिंक शीर्ष। परतें प्रत्येक शीर्ष के लिए 128 राज्यों से मिलकर बनती हैं, स्रोत नोड कार्यक्रम की प्रारंभिक स्थिति से मेल खाती है (सभी स्विच बाईं ओर और सभी बिट शून्य हैं)। सिंक नोड विशेष रूप से किसी भी राज्य से मेल नहीं खाता है। हमें प्रत्येक लेयर में एक लेयर से प्रत्येक लेयर पर अगली लेयर में निर्देशित किनारों को मिला है, जहां एज वेट हमारे पहले ग्राफ में दोनों राज्यों के बीच की दूरी है। अंतिम परत से सिंक तक किनारों का वजन सभी 0. है, अर्थात, हम उन सभी किनारों को तौल सकते हैं। यह गणना का सबसे महंगा कदम है और इसके लिए 1.5 घंटे लगते हैं Hello, World!

इस ग्राफ की स्थापना के साथ, हम स्रोत से सबसे छोटी पथ को बहुत जल्दी सिंक कर सकते हैं (यह मेरी मशीन पर 0.05 s लिया)। के लिए Hello, World!वांछित राज्य हैं:

0, 16960, 22052, 13828, 13828, 30389, 12487, 8307, 27299, 23450, 18922, 22778, 18682, 18459

जहां कम से कम 7 बिट्स स्विच के अनुरूप होते हैं और पाडा के बिट्स के लिए सबसे महत्वपूर्ण 8 बिट्स।

अब हम पहले ग्राफ पर वापस जाते हैं और बाद के राज्यों की प्रत्येक जोड़ी के बीच सबसे छोटे पथ के अनुरूप वास्तविक किनारों (यानी संचालन) को ढूंढते हैं, और उनमें से प्रत्येक को एक के साथ समाप्त करते हैं w। Voilà, एक इष्टतम समाधान (उपरोक्त मान्यताओं के आधार पर)।

यहाँ पूर्ण गणितज्ञ है अगर कोई भी कभी भी पडा में एक अलग स्ट्रिंग मेटाफॉल्फ करना चाहता है:

string = "Hello, World!";
width = StringLength@string;
getState[letter_, state_] := (
  {shift, switchState} = IntegerDigits[state - 1, 16, 2];
  bits = RotateRight[
    IntegerDigits[ToCharacterCode[letter][[1]], 2, 8], shift];
  switchState = IntegerDigits[switchState, 2, 4];
  switches = {-1, -1, -1, -1, -1, -1, -1};
  {top, middle, bottom} = IntegerDigits[shift, 2, 3];
  switches[[1]] = top;
  If[top < 1,
   switches[[2]] = middle;
   If[middle < 1,
    switches[[4]] = bottom,
    switches[[5]] = bottom
    ],
   switches[[3]] = middle;
   If[middle < 1,
    switches[[6]] = bottom,
    switches[[7]] = bottom
    ]
   ];
  For[i = 1, i <= 7, ++i,
   If[switches[[i]] < 0,
    switches[[i]] = First@switchState;
    switchState = Rest@switchState
    ]
   ];
  {bits, switches}
  )
encode[state_] := FromDigits[Join @@ state, 2]
decode[id_] := Partition[IntegerDigits[id, 2, 15], 8, 8, 1, {}]
getBitFromSwitches[switches_] := (
  If[switches[[1]] < 1,
   If[switches[[2]] < 1,
    1 + switches[[4]],
    3 + switches[[5]]
    ],
   If[switches[[3]] < 1,
    5 + switches[[6]],
    7 + switches[[7]]
    ]
   ]
  )
toggle[list_, index_] := ReplacePart[list, index -> 1 - list[[index]]]
stateEdges = Flatten@Table[
    {bits, switches} = decode@id;
    bit = getBitFromSwitches@switches;
    {
     Labeled[id \[DirectedEdge] encode@{bits~toggle~bit, switches}, 
      "~"],
     Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~1}, "."],
     If[switches[[1]] < 1,
      {
       Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~2}, 
        "o"],
       Labeled[
        id \[DirectedEdge] encode@{bits, switches~toggle~1~toggle~3}, 
        "q"],
       If[switches[[2]] < 1,
        Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~4}, 
         "O"],
        Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~5}, 
         "O"]
        ],
       If[switches[[3]] < 1,
        Labeled[
         id \[DirectedEdge] 
          encode@{bits, switches~toggle~1~toggle~3~toggle~7}, "Q"],
        Labeled[
         id \[DirectedEdge] 
          encode@{bits, switches~toggle~1~toggle~3~toggle~6}, "Q"]
        ]
       },
      {
       Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~3}, 
        "o"],
       Labeled[
        id \[DirectedEdge] encode@{bits, switches~toggle~1~toggle~2}, 
        "q"],
       If[switches[[3]] < 1,
        Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~6}, 
         "O"],
        Labeled[id \[DirectedEdge] encode@{bits, switches~toggle~7}, 
         "O"]
        ],
       If[switches[[2]] < 1,
        Labeled[
         id \[DirectedEdge] 
          encode@{bits, switches~toggle~1~toggle~2~toggle~5}, "Q"],
        Labeled[
         id \[DirectedEdge] 
          encode@{bits, switches~toggle~1~toggle~2~toggle~4}, "Q"]
        ]
       }
      ]
     }
    ,
    {id, 0, 2^15 - 1}];
stateGraph = 
  Graph[# & @@@ stateEdges, EdgeLabels -> Rule @@@ stateEdges];
uid = 0;
layers = Join[{{{uid++, 0}}}, 
   Table[{uid++, encode@getState[#, i]}, {i, 128}] & /@ 
    Characters@string, {{{uid++, -1}}}];
edges = Flatten[Table[
      from \[DirectedEdge] to
      ,
      {from, #},
      {to, #2}
      ] & @@@ Partition[layers, 2, 1], 2];
Timing[weights = (
     {from, to} = Last /@ List @@ #;
     If[to < 0,
      0,
      GraphDistance[stateGraph, from, to]
      ]
     ) & /@ edges;]
characterGraph = Graph[edges, EdgeWeight -> weights];
Timing[path = 
  Last /@ Most@
    FindShortestPath[characterGraph, {0, 0}, layers[[-1]][[1]]]]
(PropertyValue[{stateGraph, #}, EdgeLabels] & /@ 
      DirectedEdge @@@ 
       Partition[FindShortestPath[stateGraph, ##], 2, 1] <> "w" & @@@ 
   Partition[path, 2, 1]) <> ""

एक दिलचस्प भाषा = पर मेटागुल्फ़ करने के लिए)। यह मुझे आश्चर्यचकित करता है कि आपका दिन क्या है? oO
जस्टफॉल

4
@ अन्याय मैं वर्तमान में एक मास्टर की डिग्री और पीएचडी की पढ़ाई के बीच में हूँ (इसलिए मैंने निश्चित रूप से अपने हाथों पर बहुत अधिक समय दिया है अगर यह आपका निहितार्थ था;))। (यह आम तौर पर हालांकि चैट के लिए चर्चा का अधिक है :))
मार्टिन एंडर

पाडा का मतलब होता है जब बाजा इंडोनेशिया / मलय में। क्या यह प्रासंगिक है?
XiKuuKy

@XiKuuKy afaik, भाषा को पाडा कहा जाता है, क्योंकि इसका मतलब क्रोएशियाई में "गिरना" है।
मार्टिन एंडर

और इसका उत्तर ( यहां देखें )। आप शायद इस अद्भुत हैलो वर्ल्ड समस्या का वर्णन करने के लिए एक में 2 उत्तर जोड़ सकते हैं।
विटालि कौरोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.