गैर-निर्धारक उत्पादन का सबसे छोटा कोड


83

आपको आउटपुट का उत्पादन करने की आवश्यकता है जो गैर-नियतात्मक है

इस मामले में, इसका मतलब यह माना जाएगा कि आउटपुट हमेशा एक ही परिणाम नहीं होगा।

नियम:

  • एक छद्म यादृच्छिक संख्या जनरेटर जिसमें हमेशा एक ही बीज होता है उसकी गिनती नहीं होती है।

  • आप प्रत्येक निष्पादन के एक अलग (अज्ञात) समय पर चलाए जा रहे कार्यक्रम पर भरोसा कर सकते हैं।

  • आपके कोड की प्रक्रिया आईडी (यदि यह दुभाषिया द्वारा तय नहीं है) को गैर-नियतात्मक माना जा सकता है।

  • आप वेब-आधारित यादृच्छिकता पर भरोसा कर सकते हैं।

  • आपका कोड गैर-रिक्त इनपुट नहीं ले सकता है। संबंधित मेटा पोस्ट

  • कार्यक्रम को रोकने की आवश्यकता नहीं है, लेकिन आउटपुट प्रदर्शित किया जाना चाहिए।

लीडरबोर्ड


33
@ mbomb007 C में कई चीजें हैं जो बस "अपरिभाषित" व्यवहार हैं। किसी भी दिए गए दुभाषिए को किसी भी स्थिति में जो चाहे वह करने की अनुमति है। अगर हम जानते हैं कि आप एक बरसाती मंगलवार को एक हस्ताक्षर किए पूर्णांक को ओवरफ्लो करने की कोशिश करते हैं, तो आप एक पिज्जा ऑर्डर कर सकते हैं, लेकिन अन्य सभी दिनों में आपकी स्क्रीन से एक ट्राउट कूद होगी। इसलिए आप वास्तव में कभी यह नहीं जान पाएंगे कि यह वास्तव में निर्धारक है या किसी भी कार्यान्वयन में नहीं है।
मार्टिन एंडर

12
@MartinEnder मुझे यकीन नहीं है कि अगर यह मायने रखता है। हम यहां उनके कार्यान्वयन द्वारा भाषाओं को परिभाषित करते हैं, विनिर्देश द्वारा नहीं (जैसा कि कार्यान्वयन के बिना भाषाओं की अनुमति नहीं है)
नाथन मेरिल

2
@MartinEnder हाँ, मैं नाथन से सहमत हूँ।
mbomb007

7
ध्यान दें कि C में अपरिभाषित व्यवहार अक्सर क्रैश की ओर जाता है, और UNIX और Linux पर क्रैश होने से कोर फाइलें होती हैं जिनमें उनके अंदर प्रोसेस आईडी होती है। जो वर्तमान में शब्द के रूप में प्रश्न का अनुपालन करता प्रतीत होगा।

5
जब तक मैंने गलत नहीं समझा, सवाल ने उस कोड के लिए नहीं पूछा जो अपरिभाषित व्यवहार का लाभ उठाता है। यह उस कोड के लिए पूछता है जो गैर-नियतात्मकता की गारंटी के लिए परिभाषित व्यवहार का लाभ उठाता है।
WGroleau 3

जवाबों:


110

WinDbg, 1 बाइट

#

वाह! WinDbg से 1 बाइट समाधान की उम्मीद कभी नहीं की!

#डिस्सैम्फ़र्ट पैटर्न की खोज करता है, लेकिन चूंकि कोई पैरामीटर नहीं है, इसलिए यह अगले असेंबली इंस्ट्रक्शन को जो भी डंप / प्रक्रिया आप से जुड़ा हुआ है, उसे वापस करने के लिए देखता है। प्रारंभिक पता सेट करने के लिए तर्क सुनिश्चित नहीं है, लेकिन यह करता है।

नमूना उत्पादन:

0:000> #
Search address set to 75959556 
user32!NtUserGetMessage+0xc
75959556 c21000          ret     10h

0:000> #
user32!NtUserGetMessage+0xf 
75959559 90              nop

0:000> #
user32!NtUserMessageCall 
7595955a 90              nop

0:000> #
user32!NtUserMessageCall+0x1 
7595955b 90              nop

0:000> #
user32!NtUserMessageCall+0x2 
7595955c 90              nop

0:000> #
user32!NtUserMessageCall+0x3 
7595955d 90              nop

0:000> #
user32!GetMessageW
7595955e 8bff            mov     edi,edi

0:000> #
user32!GetMessageW+0x2 
75959560 55              push    ebp

0:000> #
user32!GetMessageW+0x3 
75959561 8bec            mov     ebp,esp

0:000> #
user32!GetMessageW+0x5 
75959563 8b5510          mov     edx,dword ptr [ebp+10h]

9
कूलर के जवाबों में से एक, यह मेरी राय में "वर्तमान तिथि" समाधान पर जीतना चाहिए।
मैजिक ऑक्टोपस Urn

इसके बाद यह 386 इंटेल सीपीयू असेंबली में कुछ समारोह की शुरुआत के कदम से कदम-कदम पर नापसंदगी लगती है
RosLuP

60

जावा 7, 33 30 27 बाइट्स

int a(){return hashCode();}

क्योंकि जावा।


49
क्योंकि जावा। जावा का शायद सबसे अच्छा स्पष्टीकरण।
एफ। जॉर्ज

5
@carusocomputing मेरे पास toStringपिछले संस्करण में था , लेकिन फिर वापसी का प्रकार Stringजो इससे अधिक लंबा है int। बाइट्स बचाओ! :]
प्रहार

12
क्या यह एक फ़ंक्शन के रूप में मान्य है? hashCode()के लिए यहाँ एक संक्षिप्त नाम है this.hashCode(), इसलिए यह केवल एक उदाहरण विधि के रूप में काम करेगा, न कि एक स्थिर विधि। उस स्थिति में, आपको कॉलर में ऑब्जेक्ट बनाने के लिए अतिरिक्त कोड की आवश्यकता होगी। यह प्रासंगिक है क्योंकि यह एक ऐसी वस्तु बनाने के लिए कोड है जो नोंडेटर्मिनिज़्म के लिए जिम्मेदार है।

15
जावा 8 में: ()->hashCode()14 बाइट्स के लिए। बस 'कह;)
ओलिवियर ग्रेजायर

4
@ लिप्स मैं पोस्ट के लिए डिफ़ॉल्ट सबमिट संरचना पर चर्चा करते हुए मेटा पोस्ट के आधार पर जा रहा हूं । जब तक चुनौती निर्दिष्ट नहीं करती कि फुल प्रोग्राम की आवश्यकता है तब तक फंक्शंस की अनुमति डिफ़ॉल्ट रूप से दी जाती है।
पोक

52

MATLAB, 3 बाइट्स

why

whyलगभग किसी भी प्रश्न का उत्तर प्रदान करता है। कुछ उदाहरण:

why
The programmer suggested it.

why
To fool the tall good and smart system manager. 

why
You insisted on it.

why
How should I know?

यह किसी भी randफंक्शन से छोटा है जिसके बारे में मैं सोच सकता हूं।


33
MATLAB के लिए अंतर्निहित है इस ? क्यों?
ETHproductions

59
@ETHproductions प्रोग्रामर ने सुझाव दिया
एडी कर्टिस 16

40

आर, 1 बाइट

t

फ़ंक्शन के स्रोत कोड और एक मेमोरी पॉइंटर पते को आउटपुट करता है जो आर के शुरू होने पर हर (पुनः-) के साथ बदलता है।


36

है ना? , 0 बाइट्स


एक खाली प्रोग्राम अभी भी आउटपुट का उत्पादन करता है। पायथन दुभाषिया की अंतिम पंक्तियाँ जो निष्पादित की जाती हैं:

print "..."
f = open('Notes.txt', 'w')
f.write(time.strftime("%c") + " - The user tried to give me commands again. I still have no idea what they are talking about...\n")

एक कार्यक्रम के अंत में, पायथन दुभाषिया प्रिंट करेगा ..., फिर वह एक टेक्स्ट फाइल बनाएगा / खोलेगा जिसे Notes.txtस्ट्रिंग लिखा जाएगा और जिसमें वर्तमान समय सामने हो।


5
उन सभी चीजों के बारे में, जो मैंने सोचा था कि लोग मेरे GitHub पर उपयोग करेंगे, मुझे नहीं लगता था कि एक मजाकिया भाषा की व्याख्या एक होगी: P
Kade

@ कैड मैं वास्तव में इसका उपयोग एक और सवाल के जवाब के लिए करने के लिए जा रहा था (केवल एक बाइट के साथ एक ध्वनि खेलने के लिए सबसे छोटा कोड) - लेकिन यह सवाल अब बंद हो गया है।
mbomb007

हालांकि यह गैर-प्रतिस्पर्धात्मक होगा जब तक कि मैं मूल .NET दुभाषिया को नहीं देखता, मुझे लगता है।
mbomb007

30

भूलभुलैया , 5 बाइट्स

v
!
@

या तो प्रिंट 0या कुछ नहीं (50% प्रत्येक मौका)।

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

एक बहुत विशिष्ट मामला है जिसमें भूलभुलैया यादृच्छिक व्यवहार प्रदर्शित करता है:

  • निर्देश सूचक के सामने और उसके पीछे एक दीवार होनी चाहिए।
  • अनुदेश सूचक के बाईं और दाईं ओर एक गैर-दीवार होनी चाहिए।
  • स्टैक का वर्तमान शीर्ष शून्य होना चाहिए।

यदि उन सभी शर्तों को पूरा किया जाता है, तो आईपी जिस दिशा में चलती है, उसे (समान रूप से) बेतरतीब ढंग से चुना जाता है। शीर्ष पर चेरी यह है कि उन तीन स्थितियों को नियमित नियंत्रण प्रवाह में मिलना असंभव है, जिसका अर्थ है कि जब तक आप रनटाइम पर स्रोत कोड को संशोधित नहीं करते हैं।

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

स्रोत कोड रोटेशन निर्देशों ( <^>v) की मदद से आईपी ​​को इस स्थिति में लाना संभव है। ऐसा ही एक उदाहरण सबसे ऊपर देखने को मिलता है। आईपी ​​शुरू में पूर्व की ओर इशारा करता है और शीर्ष पर शुरू होता है। vघूमता वर्तमान स्तंभ ताकि हम पाते हैं:

@
v
!

आईपी ​​इस रोटेशन के साथ आगे बढ़ता है ताकि vपूर्व की ओर इशारा करते हुए यह अभी भी चालू है । सभी शर्तें अब पूरी हो गई हैं, इसलिए आईपी या तो बेतरतीब ढंग से ऊपर या नीचे जाएगा। यदि यह ऊपर जाता है, तो कार्यक्रम तुरंत समाप्त हो जाता है। यदि यह नीचे जाता है, तो यह शून्य को प्रिंट करता है, स्तंभ को फिर से घुमाता है, और फिर समाप्त करता है।

इसके उपयोग के तीन अन्य कार्यक्रम हैं (एक जिसमें प्रिंट भी है 0, एक जिसमें प्रिंट 00और एक पर प्रिंट 000):

v
@
!

"
>@!

"
>!@

(वास्तव में तीन अन्य कार्यक्रमों की तुलना में बहुत अधिक हैं, क्योंकि आप नल बाइट्स प्रिंट करने के .बजाय भी उपयोग कर सकते हैं !, या इसे "बड़ी संख्या में आदेशों के साथ बदल सकते हैं , लेकिन मेरा मानना ​​है कि वे सभी आवश्यक रूप से समान काम करते हैं।)


30

Befunge (-93 और -98), 3 बाइट्स

?.@

?एक यादृच्छिक दिशा में निष्पादन भेजता है। यदि यह ऊपर या नीचे जाता है, तो यह वापस लूप में आता है ?और रीरोल्स करता है। यदि यह बायीं ओर जाता है, तो प्रोग्राम राउंड को लपेटता है @और इस प्रकार बिना कुछ छपाये बाहर निकल जाता है। यदि यह सही हो जाता है, तो यह प्रिंट करता है 0( .जब स्टैक खाली होता है तब निर्मित आउटपुट ) और फिर से बाहर निकल जाता है @


यह समाप्त करने की गारंटी नहीं है, लेकिन मैं इसे ठीक 1 पोस्ट करने जा रहा था
डैनियल

आप अल्पविराम को एक अवधि के रूप में आउटपुट 0 में एक अशक्त वर्ण (ASCII मान 0) के बजाय संख्या के रूप में बदलना चाहते हैं। +1
MildlyMilquetoast

यह .उस कार्यक्रम में था जिसे मैं परीक्षण के लिए उपयोग कर रहा था, लेकिन किसी तरह ,जब मैं इसे पीपीसीजी पर कॉपी करता था। फिक्स्ड।

7
@ डोप्प्प ने इसे लगभग निश्चित रूप से समाप्त कर दिया है, हालांकि प्रायिकता के साथ 1. मैं इसे एक गारंटी के रूप में
लूंगा

@JamesHolderness मुझे लगता है कि आप इसे 1 में कर सकते हैं। यकीन नहीं अगर यह मायने रखता है ...
MildlyMilquetoast

29

Minecraft, 5 4 बाइट्स

op 8

एक सर्वर के कंसोल या एक कमांड ब्लॉक में टाइप करके और इसे पावर देकर उपयोग किया जाता है। A को प्रस्तुत करके चैट इंटरफ़ेस से चलाया जा सकता है /

आमतौर पर यह कुछ भी नहीं करता है, लेकिन यदि सर्वर पर उपयोगकर्ता नाम "8" के साथ एक खिलाड़ी है, तो उन्हें ऑपरेटर की अनुमति दी जाएगी। ध्यान दें कि जबकि Minecraft को आमतौर पर उपयोगकर्ता नाम के लिए 3 वर्णों की आवश्यकता होती है, इस प्रतिबंध से पहले कम नाम की लंबाई वाले कुछ खाते बनाए गए थे।

वह संस्करण जिसे इन उपयोगकर्ता नामों में से एक के बिना गैर-निर्धारक के रूप में प्रदर्शित किया जा सकता है या उपयोगकर्ता ऑपरेटर की अनुमति देने का जोखिम यहां है:

me @r

सभी को संदेश प्रदर्शित करता है, संदेश एक यादृच्छिक खिलाड़ी का उपयोगकर्ता नाम है। opआदेश केवल एक स्ट्रिंग शाब्दिक, किसी भी स्क्रिप्ट नहीं है कि एक स्ट्रिंग रिटर्न लेता है।

meआदेश वास्तव में इसे प्रदर्शित होता है, पहला उदाहरण के लिए काम नहीं करेंगे "<your-username> 8"। जब एक कमांड ब्लॉक से चलाया जाता है, तो यह नियतात्मक नहीं होगा क्योंकि सभी कमांड ब्लॉकों में समान "उपयोगकर्ता नाम" होता है, लेकिन इसे चैट इंटरफेस से चलाने पर /एक अतिरिक्त बाइट की आवश्यकता होगी ।


तो /बाइट गिनती में शामिल नहीं है?
फलन

11
@ Challenger5 स्लैश कमांड ब्लॉक में वैकल्पिक है, सर्वर कंसोल में अनुमति नहीं है, और चैट इंटरफ़ेस में अनिवार्य है।
पावेल

2
वास्तव में, यह 4 बाइट + 2 ब्लॉक (कमांड ब्लॉक और रेडस्टोन स्रोत) होना चाहिए, या 6 बाइट्स
रुडोल्फजेलिन

2
@RudolphJelinek आप इसे कमांड ब्लॉक के बिना कंसोल से चला सकते हैं।
पावेल

1
एक अन्य गैर-निर्धारक विकल्प helpएक कमांड ब्लॉक में होगा, जो 4 बाइट्स है (और पायरेटेड गेम्स की आवश्यकता नहीं है)।
19

21

sh + procps, 1 बाइट

w

यह सबसे छोटा समाधान है जो मुझे पता है कि बाहरी निष्पादन में कॉल करने के माध्यम से काम करता है। procpsवर्तमान सिस्टम स्थिति ( psऔर दोस्तों) के बारे में जानकारी की रिपोर्टिंग के लिए जिम्मेदार पैकेज है , और डिफ़ॉल्ट रूप से अधिकांश लिनक्स वितरण पर स्थापित है; wइसमें सबसे छोटी नाम वाली कमांड है, और लॉग-इन करने वाले उपयोगकर्ताओं के बारे में जानकारी देता है, लेकिन इसके अलावा कुछ नॉनडेटर्मिनिस्टिक जानकारी भी।


21

सूचित करें 7, 6 बाइट्स

x is y

यह एक मान्य सूचना 7 कार्यक्रम नहीं है, क्योंकि न तो "x" और न ही "y" को परिभाषित किया गया है। तो यह एक त्रुटि फेंकता है।

हालाँकि, इन्फॉर्म 7 के कुछ त्रुटि संदेश- इनमें से एक को यादृच्छिक रूप से शामिल किया गया है। इसलिए यह जो पाठ प्रिंट करता है वह तकनीकी रूप से गैर-नियतात्मक है।

कुछ संभावित आउटपुट में शामिल हैं:

मुसीबत। वाक्य 'x y' है, ऐसा प्रतीत होता है कि दो चीजें समान हैं - मैं 'x' और 'y' को दो अलग-अलग चीजों के रूप में पढ़ रहा हूं, और इसलिए यह कहने का कोई मतलब नहीं है कि एक दूसरा है: यह कहने जैसा होगा वह 'एडम्स जेफरसन' है। यह सब ठीक होगा यदि दूसरी चीज़ एक तरह का नाम थी, शायद गुणों के साथ: उदाहरण के लिए 'वर्जीनिया इज ए लाइटेड रुम' में कहा गया है कि वर्जीनिया नाम की कोई चीज मौजूद है और यह एक 'कमरा' है, जो एक तरह का मुझे पता है के बारे में, 'प्रकाश' नामक एक संपत्ति के साथ संयुक्त जिसके बारे में मुझे भी पता है।

मुसीबत। वाक्य 'x y' है, ऐसा प्रतीत होता है कि दो चीजें समान हैं - मैं 'x' और 'y' को दो अलग-अलग चीजों के रूप में पढ़ रहा हूं, और इसलिए यह कहने का कोई मतलब नहीं है कि एक दूसरा है: यह कहने जैसा होगा वह 'एडम ईव' है। यह सब ठीक होगा यदि दूसरी चीज़ एक प्रकार का नाम है, शायद गुणों के साथ: उदाहरण के लिए 'लैंड ऑफ नोड एक हल्का कमरा है' कहते हैं कि लैंड ऑफ नोड नाम की कोई चीज मौजूद है और यह एक 'कमरा' है, जो है एक तरह के बारे में मुझे पता है, 'लाइटेड' नामक एक संपत्ति के साथ संयुक्त जिसके बारे में मुझे भी पता है।

मुसीबत। वाक्य 'x y' है, ऐसा प्रतीत होता है कि दो चीजें समान हैं - मैं 'x' और 'y' को दो अलग-अलग चीजों के रूप में पढ़ रहा हूं, और इसलिए यह कहने का कोई मतलब नहीं है कि एक दूसरा है: यह कहने जैसा होगा वह 'क्लार्क केंट लेक्स लूथर' है। यह सब ठीक होगा यदि दूसरी चीज़ एक तरह का नाम है, शायद गुणों के साथ: उदाहरण के लिए 'मेट्रोपोलिस एक रोशनदार कमरा है' कहता है कि मेट्रोपोलिस नाम की कोई चीज़ मौजूद है और यह एक 'कमरा' है, जो कि एक तरह से मुझे पता है के बारे में, 'लाइटेड' नामक एक संपत्ति के साथ संयुक्त जिसके बारे में मुझे भी पता है।

मुसीबत। वाक्य 'x y' है, ऐसा प्रतीत होता है कि दो चीजें समान हैं - मैं 'x' और 'y' को दो अलग-अलग चीजों के रूप में पढ़ रहा हूं, और इसलिए यह कहने का कोई मतलब नहीं है कि एक दूसरा है: यह कहने जैसा होगा वह 'आइशिलस यूरिपाइड्स' है। यह सब ठीक होगा यदि दूसरी चीज़ एक तरह का नाम थी, शायद गुणों के साथ: उदाहरण के लिए 'अंडरवर्ल्ड एक रोशनदार कमरा है' कहते हैं कि अंडरवर्ल्ड नाम की कोई चीज मौजूद है और यह एक 'कमरा' है, जो एक प्रकार है जो मुझे पता है के बारे में, 'प्रकाश' नामक एक संपत्ति के साथ संयुक्त जिसके बारे में मुझे भी पता है।


7
यहां तक ​​कि त्रुटि संदेश क्रिया हैं!
विनाशकारी नींबू

21

जावास्क्रिप्ट, 4 बाइट्स

Date

एक फ़ंक्शन जो वर्तमान दिनांक / समय लौटाता है। मुझे लगता है कि यह सबसे छोटा है जो इसे मिलेगा ...

व्याख्या

चूंकि यह बहुत भ्रम पैदा कर रहा है कि यह मान्य क्यों है, मैं समझाने की कोशिश करूंगा।

जावास्क्रिप्ट में, एक फ़ंक्शन प्रविष्टि मान्य है यदि इसे एक चर को सौंपा जा सकता है और फ़ंक्शन की तरह बुलाया जा सकता है। उदाहरण के लिए, यह फ़ंक्शन एक मान्य प्रविष्टि है:

function(){return Date()}

क्योंकि यह एक ऐसा फंक्शन है जिसे एक वैरिएबल को सौंपा जा सकता है जैसे:

f=function(){return Date()}

और फिर f()आवश्यक के रूप में कई बार के साथ चलाएं । हर बार, यह वर्तमान दिनांक / समय स्ट्रिंग लौटाता है, जिसे ओपी द्वारा गैर-नियतात्मक कहा गया है।

यह ES6 तीर फ़ंक्शन भी मान्य है:

_=>Date()

इसके साथ असाइन किया जा सकता है f=_=>Date(), फिर f()दूसरे के साथ चलाएं ।

अब, यहां एक और मान्य प्रविष्टि है:

Date

क्यों? क्योंकि अन्य दो प्रविष्टियों की तरह, इसे इसके साथ असाइन किया जा सकता है f=Dateऔर फिर बुलाया जा सकता है, अन्य दो f()के समान ही वापस आ जाएगी। कोशिश करो:


1
क्या आपको Date()फ़ंक्शन को लागू करने के लिए इसकी आवश्यकता नहीं है ?
दूध

4
@milk Dateएक ऐसा फंक्शन है, जिसे जब बिना किसी इनपुट के कहा जाता है, तो वर्तमान तिथि / समय का उत्पादन होता है। _=>Date()एक स्पष्ट रूप से मान्य प्रविष्टि है जो बिल्कुल वैसा ही काम करती है, इसलिए Dateएक मान्य प्रविष्टि है।
21

1
यह समझ आता है।
दूध

2
Dateमेरे ब्राउज़र के जावास्क्रिप्ट कंसोल में टाइप करने से नियतात्मक उत्पादन होता है, यह हमेशा यह उत्पादन करता है function Date() { [native code] }:। आप शायद मतलब है Date(), 6 बाइट्स।
अंक

2
अगर ऊपर "तारीख" "मॉलोक (8)" या "समय (0)" से ठीक है, तो सी में भी ठीक होगा
रोजलूपी

12

बैश (क्रेप्स-एनजी), 2 बाइट्स

ps

$$ इसका भी हल है।


1
यदि ऐसा है, तो wकम है और भी procps से आता है।
लियोरी

1
आपने इसे मेरे उत्तर की डुप्लिकेट में संपादित किया ।

@ ais523 उफ़, क्षमा करें।
R

11

अजगर 2, 11 बाइट्स

print id(1)

1
वही मैंने पाया। मैं था id(0), हालांकि। :)
mbomb007

2
मैंने आपको हरा दिया, तकनीकी रूप से, चूंकि मैं ओपी हूं और मुझे प्रश्न पोस्ट करने से पहले मिला। मैं प्रश्न पोस्ट नहीं करना चाहता था और तुरंत अपना सबसे छोटा उत्तर पोस्ट करना चाहता था।
mbomb007

11

अजगर, 2 बाइट्स

O0

स्पष्टीकरण:

 0 0
O  Random float in [0, 1)

ऐसा नहीं है कि, जब है Oहै 0अपने तर्क के रूप में, यह बस के बीच एक यादृच्छिक नाव रिटर्न 0और 1अनन्य,।

चलो यह सिर्फ यह की बिल्ली के लिए करते हैं!

इसके अलावा, ऐसा लगता है कि यह क्रमबद्ध रेट्रो हो सकता है (34718 / mbomb007 के लिए धन्यवाद):

दिलबर्ट: 8 सितंबर, 1992


अजगर, 2 बाइट्स

OT

स्पष्टीकरण:

 T 10
O  Random integer in [0, 10]

इसके बजाय इस boooooooooooooring संस्करण का प्रयास करें>:(



10

पॉवरशेल, 4 2 बाइट्स

(4 अभी भी 4 की तरह लग रहा है )

ps

यह उर्फ ​​है Get-Processजिसके लिए वर्तमान प्रक्रिया सूची को तालिका के रूप में आउटपुट किया जाएगा, जिसमें हैंडल, निजी मेमोरी, सीपीयू समय आदि शामिल हैं।

निम्नलिखित के माध्यम से कुछ के माध्यम से इसे निष्पादित करें:

C:\Tools\Scripts\golfing>powershell.exe "ps"

1
मुझे स्वीकार करना होगा, मैंने यह देखने के लिए जाँच की कि क्या वास्तव में इसे पार किया गया था। तुम सच में भी नहीं बता सकते।
कैरिजनेट

@Carcigenicate मैं यह बता सकता हूं कि क्या यह पाठ (उबंटू 16.04.1, क्रोम 54.0.2840.100) का चयन किए बिना पार कर गया है।
आउटगॉल्फ

Android पर भी दिखाई देता है, हालांकि स्पष्ट रूप से नहीं: p
tomsmeding

यह iOS ऐप में ठीक लगता है।
माटूस पिओत्रोस्की

मेरे पास इसे स्वयं करने के लिए प्रतिनिधि नहीं है, लेकिन आप 04 कर सकते हैं और इसे हड़ताल कर सकते हैं।
बोबसन 14


9

कमोडोर 64 बेसिक, 4 बाइट्स

1S|0

PETSCII प्रतिस्थापन: |=SHIFT+Y

शून्य पेज एक कमोडोर 64 की स्मृति के 256 बाइट्स कि तेजी से रैम के बाकी की तुलना पहुँचा जा सकता है के एक क्षेत्र है। नतीजतन, प्रोग्राम (जैसे कि बेसिक इंटरप्रेटर) अक्सर उपयोग किए जाने वाले डेटा के लिए इसका उपयोग करते हैं, और सीपीयू स्वयं अपनी आंतरिक स्थिति में से कुछ को यहां संग्रहीत करता है। सामग्री बिना सूचना के परिवर्तन के अधीन है।

ऊपर, बुनियादी, बेसिक कार्यक्रम 1 SYS 0यानी है। मेमोरी स्थान पर ट्रांसफर निष्पादन 0. यह शून्य पृष्ठ को कोड के रूप में निष्पादित करना शुरू करता है। आम तौर पर, जब BASIC दुभाषिया एक प्रोग्राम चलाना शुरू करता है, तो पहले 16 बाइट्स होते हैं

2F 37 00 AA  B1 91 B3 22
22 00 00 4C  00 00 00 00

इसलिए SYS 0निम्नलिखित पर अमल करेंगे

00: ROL-AND $37,A  - Undocumented opcode: rotate the value at memory location 0x37 left, and store the result in the accumulator
02: BRK            - Call the interrupt vector

समग्र परिणाम READY.उपयोगकर्ता को BASIC संकेत और वापसी नियंत्रण का उत्पादन करने के लिए है। हालाँकि, स्मृति स्थान 0x00 CPU का I / O दिशा रजिस्टर है, और स्मृति स्थान 0x01 CPU का I / O पता रजिस्टर है। यदि आपने ऐसा कुछ किया है जो प्रोग्राम को चलाने से पहले इनको बदल देता है, तो परिणाम अप्रत्याशित हो सकते हैं, जिसमें कचरा डालने से लेकर कंप्यूटर लॉक करने तक (आमतौर पर मेमोरी लोकेशन 0x07 में समाहित किया गया है, यदि एक निर्देश के रूप में निष्पादित किया जाता है, तो यह एक अनएक्सपेक्टेड ऑपकोड है HALT) ।

वैकल्पिक रूप से, एक और अधिक विश्वसनीय अप्रत्याशित कार्यक्रम चार-बाइट है

1?TI

सिस्टम पावर-ऑन के बाद से, जिफ़ियों में (सेकंड का 1/60), बीता हुआ समय प्रिंट करता है।


8

05AB1E , 2 बाइट्स

žd

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

निष्पादित मशीन के आंतरिक घड़ी से वर्तमान माइक्रोसेकंड को आउटपुट करता है।

या आप ऐसा कुछ कर सकते हैं ...

05AB1E , 3 बाइट्स

A.r

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

एक अनियमित रूप से निचली स्थिति वाले वर्णमाला को आउटपुट करता है।

या यह भी काम करता है:

A.R

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

वर्णमाला से एक यादृच्छिक पत्र आउटपुट करता है।

या यह भी काम करता है, और कूलर है:

05AB1E , 9 बाइट्स

"ž"A.RJ.V

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

आउटपुट इनमें से एक है:

ž 23  > ža           push current hours
        žb           push current minutes
        žc           push current seconds
        žd           push current microseconds
        že           push current day
        žf           push current month
        žg           push current year
        žh           push [0-9]
        ži           push [a-zA-Z]
        žj           push [a-zA-Z0-9_]
        žk           push [z-aZ-A]
        žl           push [z-aZ-A9-0_]
        žm           push [9-0]
        žn           push [A-Za-z]
        žo           push [Z-Az-a]
        žp           push [Z-A]
        žq           push pi
        žr           push e
        žs           pop a, push pi to a digits (max. 100000)
        žt           pop a, push e to a digits (max. 10000)
        žu           push ()<>[]{}
        žv           push 16
        žw           push 32
        žx           push 64
        žy           push 128
        žz           push 256


8

सी, 25 21 बाइट्स

4 बाइट बचाने के लिए pseudonym117 का धन्यवाद।

main(i){putchar(&i);}

के साथ संकलित gcc -o test lol.c(हाँ, मैं अपनी फ़ाइल के नाम के साथ काफी मूल हूं ...), और साथ चला ./test

यह वही करता है जो यह कहता है: स्मृति पते के अनुरूप चरित्र को प्रिंट करता है i, जिसे रनटाइम पर परिभाषित किया गया है, इसलिए यह गैर-नियतात्मक होना चाहिए।


1. क्या आप &स्टैक पर किसी वैरिएबल के मान को नहीं छोड़ सकते ? 2. आपके पास स्टैक पर चीजों की एक निरंतर संख्या है, इसलिए मेमोरी पता iस्थिर है?
रिले

2
iयह सामान्य रूप से कहा जाता है argc, इसलिए आप सही हैं, यह हमेशा 1 होगा जब तक कि अधिक तर्क न हों। मुझे विश्वास नहीं हो रहा है कि मैं इसे याद नहीं करूंगा। मुझे अभी भी यकीन नहीं है कि स्थान क्यों बदलता है, लेकिन अगर यह काम करता है तो यह काम करता है।
रिले

1
यह ASLR के कारण आधुनिक ऑपरेटिंग सिस्टम पर बदल जाता है , यह एक सुरक्षा सुविधा है जो पते का अनुमान लगाने के लिए कारनामों के लिए कठिन बनाता है। आपको कुछ पुराने OS पर एक सुसंगत परिणाम मिलेगा।

1
आप की जगह एक छोटे से बचा सकता है putcharके साथreturn
ceilingcat

1
पैरामीटर के प्रकार की घोषणा नहीं करने के लिए चेतावनी के साथ आधुनिक संकलक पर, आप कर सकते हैं:main(){printf("%d");}
Myria

7

पायथन 2, 29 बाइट्स

import os
print os.urandom(9)

अफसोस की बात है कि पहली बार स्मार्टफोन पर कोड लिखना नहीं है।


6

पर्ल, 5 बाइट्स

say$$

प्रक्रिया आईडी और एक नई पंक्ति आउटपुट करता है।



5

पाइके, 1 बाइट

C

यहाँ यह कोशिश करो!

वर्तमान समय को आउटपुट करता है


1
मैं काफी निश्चित हूँ कि यह नियतात्मक है।
R

@EasterlyIrk को हटाए गए एक टिप्पणी mbomb में कहा गया कि यह ठीक था
Blue

ओह ठीक है। मेरे लिए नियतात्मक लगता है, लेकिन ओपी नियम।
R

मेरे संपादित इतिहास में मेरे पास उचित यादृच्छिकता के साथ एक 3 बाइट संस्करण था
ब्लू

@EasterlyIrk यदि वर्तमान समय नियतात्मक है, तो छद्म यादृच्छिक संख्याएँ हैं, क्योंकि वे वही हैं जिनके साथ वे बीजारोपण कर रहे हैं। लक्ष्य "यादृच्छिकता" नहीं है। लक्ष्य गैर-निर्धारणवाद है।
mbomb007

5

जीसीसी / क्लैंग के साथ C89, 20 बाइट्स

GCC या Clang के साथ निर्मित होने पर अन्य C समाधान हर बार बस अलग हो जाते हैं। हालांकि, यह।

main(n){puts(&n+1);}

जो दिखता है:

$ for _ in `seq 1 50`; do ./test_89; done
���z�U
�VW��U
�F��U
�v�f2V
��FV
���*=V
�6���U
�20wU
��
�+V
�6
   �U
��V�uU
�v��V
���K�U
��7�qU
�6S�jU
�&�WU
��wV
��6l�U
���U
�F�ߨU
�f���U
���s7V
�f��?V
��;B�U
�;��U
��GV
�� ��U
�vKV
�V?]wU
�����U
��.�U
�v"�XU
��uhpU
��LD�U
�����U
�6X�U
��M�.V
�69��U
��ԤV
���U
����U
�vx4.V
�֝+xU
�F��U
�֤BQV
��#�U
���1^U
����sU
��4�U
��AݗU

बहुत सारे अनौपचारिक कबाड़ लेकिन यह nondeterministic है!


क्यों "मुख्य (n) {पुट (& n + 1);}" और नहीं "मुख्य (n) {पुट (& n);}"?
RosLuP

@RosLuP आपका दूसरा विकल्प, जो आकस्मिक पर्यवेक्षक के लिए स्पष्ट लगता है, बाइट को n के मूल्य पर देता है (जब n 1 है, तो putsइसका पता 1 देता है, और जब n 2 होता है, तो putsइसका पता 2 देता है)। N के पते पर 1 जोड़कर, जो 4-बाइट चौड़ी की ओर इंगित करना चाहिए int, एक कबाड़ मूल्य के साथ एक कबाड़ पता देता है जो अगले NUL बाइट तक बहुत कुछ बाइट्स के साथ संग्रहीत होता है। यह व्यवहार जीसीसी और क्लैंग के बीच प्रजनन योग्य है और पूरी तरह से मुझसे परे है। मुझे लगता है कि मैं StackOverflow पर पूछूंगा।
बिल्ली

मैं इस तरह से "पुट (& n)" पढ़ता हूं: यह n का पता लगाने के लिए देता है, मान लीजिए कि n = 0x01020304 पुट छप में परिवर्तित हो जाएगा 04 03 02 01 या इसके विपरीत
RosLuP

1
याद रखें कि आपका nअभी भी प्रारंभिक रूप से argcजो सामान्य रूप 0से आपके सामान्य परीक्षण के मामले में कहा जाता है, के साथ आरंभ किया गया है , इसलिए &n, putsएक खाली स्ट्रिंग (जिसके परिणामस्वरूप सूचक आकार == पूर्णांक आकार और सभी सामग्री) के परिणामस्वरूप एक '\ 0' बाइट के लिए काफी नियतात्मक सूचक प्राप्त होता है। । &n+1हालाँकि, आम तौर पर कहे जाने वाले argv(कम से कम एबीआई पर पता है जो रजिस्टरों के बजाय रिवर्स ऑर्डर में स्टैक पर पैरामीटर पास करते हैं, और एक स्टैक के साथ जो उच्च से निम्न पते तक बढ़ता है), जिसे एएसएलआर मानते हैं, प्रत्येक में एक अलग सूचक होना चाहिए समय।
गुंट्रम ब्लोम

@GuntramBlohm आप सही हैं और यह बहुत दिलचस्प है, हालांकि मेरे लिए पॉइंटर्स 8 बाइट्स हैं और इनट्स 4 बाइट्स हैं।
बिल्ली

5

PHP, 12 बाइट्स

<?=uniqid();

583f4da627ee3माइक्रोसेकंड में वर्तमान समय के आधार पर एक अद्वितीय आईडी आउटपुट करता है ।


<?=time();<- 10 बाइट्स।
इस्माइल मिगुएल

@IsmaelMiguel 1'000'000 uniqid()की तुलना में कहीं अधिक अनिर्धारित है time();)
मारियो

मैं ऑपोजिट नहीं कह रहा हूं। लेकिन एक और जवाब का प्रस्ताव। आप उस एक को लेने के लिए स्वतंत्र हैं।
इस्माइल मिगुएल

@IsmaelMiguel किसी और पहले से ही ... एक ही जवाब दिया
मारियो

5

ग्रूवी, 9 बाइट्स

{print{}}

आउटपुट:

Script1$_run_closure1@2c8ec01c

क्योंकि यह क्लोज़र के मेमोरी एड्रेस को आउटपुट करता है, यह गैर-नियतात्मक है।


और मुझे लगा कि कोटलिन सबसे कम संभव JVM समाधान का रास्ता था।
एफ। जॉर्ज

इसे एक फ़ाइल में डालने और चलाने की कोशिश करते हुए groovy Script1.groovy, मुझे एक त्रुटि मिलती है Ambiguous expression could be either a parameterless closure expression or an isolated open code block;:। मैं इसका प्रयोग कैसे करूं?
पाओलो एबरमन

इसे क्लोजर वैरिएबल पर असाइन करें, फिर कॉल करें।
मैजिक ऑक्टोपस Urn


5

विंडोज पर बोरलैंड सी, 12 बाइट्स

m(){puts();}

मैं इसे फिर से लिखता हूं क्योंकि वे कहते हैं कि एक फ़ंक्शन का उपयोग करना संभव है। कंपाइलर ने तर्क की जाँच नहीं की है इसलिए इसे संकलित करें; लेकिन एक पते को 'कोई नहीं' जानता है और बाइट 0x00 खोजने तक उस पते को किस बिंदु पर प्रिंट करना शुरू करता है। यह ठीक नहीं हो सकता है यदि वह पता प्रोग्राम से आरक्षित मेमोरी से बाहर है, लेकिन यहां कुछ प्रिंट करें


यह nondeterministic आउटपुट नहीं देता है, यह सिर्फ हर बार segfaults करता है।
बिल्ली

वैकल्पिक रूप से, यदि आप एक segfault के अलावा कुछ मिलता है, क्या संकलक ??
बिल्ली

@ यह एक बोरलैंड सी कंपाइलर + विंडोज 7 ओएस है। मैं कैसे देखता हूं: उपरोक्त कोड को स्टैक के ऊपर पता मिलता है (जहां इस मामले में फ़ंक्शन मुख्य () में लौटने का पता है) और मुख्य स्थान कोड के अंदर उस पते से पढ़ा जाता है ... इसलिए यह संकलक आउटपुट पर निर्भर करता है। लेकिन मैं 100% नहीं जानता ... यह आपके ओएस में संभव कोड स्थान पठनीय नहीं है और इस से => सेग दोष
RosLuP

1
@RosLuP: यह सिर्फ जो भी स्टैक मेमोरी में था (या दूसरे arg- पासिंग रजिस्टर में x86-64 के लिए और सबसे RISC कॉलिंग कन्वेंशन जो रजिस्टरों में पहले कुछ args पास करते हैं) को प्रिंट करेगा। यह ढेर का पता नहीं छापेगा। X86-64 में, इसे प्रिंट करने की कुछ हद तक संभावना होगी argv, क्योंकि कंपाइलर शायद उस रजिस्टर में मुख्य के दूसरे arg के साथ प्रिंटफ को कॉल करेगा। ठीक यही बात gcc6.2 लिनक्स को लक्षित करने के साथ होती है: Godbolt कंपाइलर एक्सप्लोरर पर स्रोत + asm देखें : मुख्य RSI को पहले नहीं छूता है call printf
पीटर कॉर्डेस

1
@RosLuP: argvस्टैक पर है, लेकिन बहुत ऊपर नहीं। इसका पता स्टैक ASLR से प्रभावित होता है, हालांकि, इसलिए यह काम करता है। यह कम अच्छी तरह से काम करेगा -m32। आप शायद हमेशा शून्य प्राप्त करेंगे, क्योंकि mainस्टैक को संरेखित करना है इसलिए प्रारूप स्ट्रिंग के ऊपर स्टैक स्लॉट ताजा स्टैक मेमोरी हो सकती है जिसे कभी भी छुआ नहीं गया है (और शायद हमेशा शून्य है, क्योंकि कर्नेल बजाय शून्य पृष्ठों द्वारा जानकारी लीक से बचता है। पुराने डेटा से भरे यूजर-स्पेस पेज देना)।
पीटर कॉर्ड्स

5

बेबी लैंग्वेज , 0 बाइट्स



मैंने इसे मूल रूप से प्रस्तुत नहीं किया क्योंकि मुझे लगा कि इसने प्रश्न को स्थगित कर दिया है। मैं गलत था; भाषा के समय में एक दुभाषिया बनाया गया था। यह संभवत: कम से कम धोखा देने वाला 0-बाइट समाधान है जिसे मैंने देखा है (यह देखते हुए कि 0-बाइट प्रोग्राम निर्दिष्ट है कि कार्यक्रम क्या पूछता है, और गोल्फिंग चुनौतियों पर धोखा देने के उद्देश्य से नहीं)।

बेबी भाषा को उस प्रोग्राम को अनदेखा करने के लिए निर्दिष्ट किया गया है जो यादृच्छिक रूप से कुछ करता है। (Esolang पृष्ठ पर लिंक दुभाषिया एक यादृच्छिक कानूनी BF प्रोग्राम उत्पन्न करता है और इसे चलाता है।) जो इस चुनौती के लिए एक सही फिट की तरह लगता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.