एक खोया हुआ RNG बनाएं


17

खो गया एक 2-डी प्रोग्रामिंग भाषा है जहां आईपी की शुरुआत की स्थिति और दिशा पूरी तरह से यादृच्छिक है।

इससे नियतात्मक लॉस्ट प्रोग्राम बनाना बहुत मुश्किल हो जाता है। हालाँकि आज हम एक नियतात्मक कार्यक्रम नहीं लिख रहे हैं, हम एक आरएनजी लिख रहे हैं।

लॉस्ट प्रोग्राम लिखें जो कोई इनपुट नहीं लेता है और एकल अंक (0,1,2,3,4,5,6,7,8, या 9) को आउटपुट करता है, जिसमें सभी अंक आउटपुट होने की समान संभावना रखते हैं। चूँकि लॉस्ट की स्टार्ट लोकेशन और डायरेक्शन यादृच्छिकता का एकमात्र स्रोत है, ऐसा करने का एकमात्र तरीका यह है कि आपके सोर्स आउटपुट के प्रत्येक स्थान को 0 से 9 तक एक अलग संख्या में प्रत्येक अंक के आउटपुट के साथ अलग-अलग नंबर दिया जाए।

आप -Qझंडे का उपयोग करके और इस अजगर स्क्रिप्ट में पाइपिंग करके प्रत्येक अंक की संभावना की गणना कर सकते हैं

import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]

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

यह इसलिए उत्तर बाइट में कम बाइट के साथ बेहतर स्कोर किए जाएंगे।


लॉस्ट का अवलोकन

लॉस्ट क्लीं के सांचे से बहुत कुछ लेते हुए एक रैपिंग निहित IO 2D भाषा है। यहाँ एक त्वरित धोखा देती है कि खोए हुए आदेश क्या करते हैं

  • \, /, |दर्पण आईपी

  • <, ^, >, vएक दिशा में आईपी अंक

  • [यदि यह पूर्व की ओर बढ़ रहा है तो आईपी को दर्शाता है; हो जाता है ]अगर आईपी क्षैतिज रूप से आगे बढ़ रहा है

  • ]यदि यह पश्चिम की ओर बढ़ रहा है तो आईपी को दर्शाता है; हो जाता है [अगर आईपी क्षैतिज रूप से आगे बढ़ रहा है

  • ! अगला ऑपरेशन छोड़ देता है

  • ? स्टैक के शीर्ष पर चबूतरे और शून्य नहीं होने पर कूदता है

  • : ढेर के शीर्ष को दोहराता है

  • $ स्टैक के शीर्ष दो आइटम स्वैप करता है

  • ( स्टैक से चबूतरे और गुंजाइश को धक्का

  • ) दायरे से बाहर निकलता है और स्टैक को धक्का देता है

  • 0- 9स्टैक के शीर्ष पर एन धक्का

  • "एक स्ट्रिंग शाब्दिक शुरू होता है और समाप्त होता है। एक स्ट्रिंग के दौरान शाब्दिक आदेश नहीं चलाए जाते हैं और इसके बजाय उनके चरित्र मूल्यों को स्टैक पर धकेल दिया जाता है।

  • + शीर्ष दो नंबर जोड़ता है

  • * शीर्ष दो संख्याओं को गुणा करता है

  • - शीर्ष -1 से गुणा करता है

  • % सुरक्षा को बंद कर देता है

  • # सुरक्षा को चालू करता है

  • @ सुरक्षा समाप्त होने पर निष्पादन समाप्त होता है (शुरू होता है)


यदि आप स्टैक से दो मानों को स्वैप करने का प्रयास करते हैं तो क्या होता है, लेकिन केवल एक मान है या खाली स्टैक से पॉप करने का प्रयास करें?
पिपरी

@ppperry स्टैक को निहित शून्य से गद्देदार किया गया है।
पोस्ट रॉक गार्फ हंटर

1
भाषा के बारे में बहुत कम जानकारी। क्या यह लपेटता है? 'सुरक्षा' का क्या अर्थ है? भ्रामक वर्णन भ्रामक है? कैसे स्कोप का उपयोग किया जाता है?
मृत पोसुम

@DeadPossum मैंने इसे संक्षिप्त रखने की कोशिश की। यह लपेटता है। सुरक्षा को पहले से ही प्रश्न में समझाया गया है। मुझे नहीं पता कि आप कोष्ठक के बारे में क्या मतलब है। []दरवाजे के रूप में कार्य करते हैं, <>दिशाओं में इंगित ()करते हैं और गुंजाइश से स्टोर करते हैं और याद करते हैं। मानों को संग्रहीत करने के लिए स्कोप का उपयोग किया जाता है।
पोस्ट रॉक गार्फ हंटर

@HeatWizard तो सुरक्षा के लिए सिर्फ शर्त है @या इसमें अन्य यूज़केस हैं? कोष्ठक के बारे में, मैं इस भाग को नहीं समझता becomes ] if the ip is moving horizontally:। पूर्व की ओर बढ़ना क्षैतिज रूप से भी है, है ना?
मृत पोसुम

जवाबों:


12

81 101 बाइट्स

यह आगे गोल्फ हो सकता है ...

>%(0@>%(1@>%(2@>%(3@>%(4@>%(5@>%(6@>%(7@>%(8@>%(9@
^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<

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


1
दिलचस्प दृष्टिकोण! मैंने ऐसा नहीं सोचा था
पोस्ट रॉक गार्फ हंटर

1
101 बाइट्स जो डबल प्रिंट को ठीक करता है। सुरक्षा बंद करने से पहले बस एक स्टैक पॉप जोड़ा गया है ताकि यदि आप प्रारंभ में संख्या को मारते हैं, तो यह इसे पॉप कर सकता है, इसे फिर से धक्का दे सकता है, फिर मर सकता है। मैं नहीं जानता कि यह अभी भी तकनीकी रूप से एक समान यादृच्छिक है ...
अर्नोल्ड पामर

1
मैं सचमुच एक ही विचार के साथ एक ही समय में आया था ...
pppery

1
आपका आउटपुट एक समान नहीं है। 0मुद्रित होने का 7/101 मौका है ( इसके ब्लॉक के नीचे <या ^इसके अलावा, >और %प्रतीक) में से कोई भी, 1- 810/101 मौका है, और 911/101 मौका है। तब ऐसा लगता है कि यह एक मौका हो सकता है यह हमेशा के लिए चलता है।
अर्नोल्ड पामर

1
इसे लपेटना होगा, अन्यथा यह तब समाप्त होगा जब यह ऊपर जाने वाली शीर्ष रेखा पर शुरू होगा।
पिपरी

9

खोया , 54 बाइट्स

>%(0@>%(1@
@>%(2@>%(3
5@>%(4@>%(
(7@>%(6@>%
%(9@>%(8@>

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

बस pppery के जवाब से कॉपी किया गया और कुछ यादृच्छिक सामान करें। मुझे लॉस्ट लैंग्वेज के बारे में कुछ नहीं पता है। और मुझे यह भी नहीं पता कि उपरोक्त कोड के लिए क्या हो रहा है। क्या यह काम है? (मुझे नहीं पता)


आपका कोड पपीरी के रूप में आधा उत्पादन करता है, मुझे लगता है कि यह कैसे -Qकाम करता है? आउटपुट सामान्य रूप से वैसे भी वितरित किया गया लगता है। सवाल में जुड़ी हुई भाषा का पूरा अंदाजा होना अच्छा होता।
हारून

@ अरोन मुझे समझाया जाना चाहिए कि कैसे -Qकाम करता है। चूंकि भाषा यादृच्छिक है, इसलिए सभी संभावनाओं को चलाकर सत्यापन किया जाता है। -Qयह करता है और सभी परिणामों को प्रिंट करता है। कार्यक्रम जितना छोटा होता है उतनी कम संभावनाएं होती हैं और कम आउटपुट आते हैं -Q
पोस्ट रॉक गार्फ हंटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.