व्यस्त मस्तिष्क बीवर


13

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

अधिक विशेष रूप से:

  • सही करने के लिए कोशिकाओं की एक अनंत संख्या मान लें।
  • एक <जब वाम-पंथी सेल में कुछ नहीं करता है।
  • एक -जब सेल मूल्य को शून्य सेट सेल है 255
  • +-<>.निष्पादित होने पर निर्देश सभी एक चरण के रूप में गिने जाते हैं।
  • जब [या ]का सामना किया जाता है, तो यह एक कदम के रूप में गिना जाता है। हालाँकि, यदि स्थिति सही है और नियंत्रण प्रवाह कूदता है, तो संबंधित ]या फिर से एक चरण के रूप में गणना नहीं[ करता है ।
  • सबसे अधिक कदम उठाने वाला समाधान जीतता है।
  • यदि आपके समाधान में किसी प्रकार का पैटर्न है, तो लंबाई के समान कार्यक्रम को कितने चरणों में लिया जाएगा, इसके लिए एक फ़ंक्शन दे रहा है, nलेकिन यह अनिवार्य नहीं है।
  • निर्देशों की गणना करने के लिए, आप इस संशोधित दुभाषिया का उपयोग कर सकते हैं :

उदाहरण:

++[-]

सामना किए गए निर्देश हैं ++[-]-], और कार्यक्रम 7 चरणों के लिए चला।


6
मुझे आश्चर्य होगा कि अगर विजेता दुभाषिया की गिनती को समाप्त किए बिना समाप्त हो जाए। ध्यान रखें कि 6-राज्य टीएम व्यस्त बीवर कम से कम 10 ** 36534 कदम उठाता है।
पीटर टेलर

मैं सहमत हूँ। अत्यधिक संभावना है कि आप एक <50 चार बीएफ कार्यक्रम लिख सकते हैं जो वर्षों तक चल सकता है। मैं शुरू करूँगा।
कैप्टनक्रिग

पर हस्ताक्षर किए। Drb.insel.de/~heiner/BB पर व्यस्त बीवर अनुसंधान पृष्ठ बहुत दिलचस्प है, विशेष रूप से यह तथ्य कि रिकॉर्ड कार्यक्रम बहुत लंबे समय तक चलते हैं और उनके अभी भी सटीक परिणाम हैं (देखें drb.insel.de/~heiner/BB-bb -xlist.txt ) - सिमुलेशन राज्यों को याद करते हैं, सिमुलेशन चरणों आदि को बचाने के लिए "मैक्रोज़" का निर्माण करते हैं
schnaader

4
@AntonGolov: दुर्भाग्य से, इस ब्रह्मांड में, RAM और HD अनंत भंडारण उपकरणों में परिवर्तित नहीं होते हैं, जब आप उन पर बाइट्स में 256 ^ आकार से बड़े बोगस स्टोर करने का प्रयास करते हैं ...
बंद करना बंद कर दिया

1
@boothby वर्तमान कंप्यूटर्स पर ट्रान्सेंडैंटल को शामिल करते हुए सटीक गणना करना पूरी तरह से संभव है। मूल्यों के घटकों को सामान्य रोजमर्रा की कंप्यूटिंग के लिए उपयोग किए जाने वाले सामान्य floatया doubleआदिम से अधिक सार प्रतिनिधित्व में संग्रहीत किया जाना है । (उस बिंदु पर कंप्यूटर ज्यादातर बस हेरफेर कर रहा है कि समीकरण का प्रतिनिधित्व करता है)
AJMansfield

जवाबों:


15

यहां एक 41-चरित्र वाला कार्यक्रम है जो अंततः रुकता है, 10 10 (10 cont 28) से अधिक सन्निहित कोशिकाएं 1 के बराबर सेट होती हैं (इसलिए निष्पादित निर्देशों की संख्या इससे बहुत अधिक है):

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

अगर मैं गलत नहीं हूं, तो यह बीएफ-वेरिएंट भाषा में निम्नलिखित प्रोग्राम का एक सही अनुवाद है जो प्रत्येक मेमोरी सेल के लिए एक एकल बिट का उपयोग करता है (यानी, सेल सामग्री 0..25 के बजाय 0..1, इसलिए '+' केवल बिट-वैल्यू को फ्लिप करने के लिए कार्य करता है):

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

बाद के कार्यक्रम द्वारा उत्पादित सटीक मान (आसन्न 1-बिट्स की संख्या) है

3 * (2 ↑ 118842243771396506390315925503 - 1) + 1.


उपरोक्त कार्यक्रम एक फ़ंक्शन को शुरू और गणना करता है जो 2 in x की तरह बढ़ता है ( नथ अप-एरो नोटेशन में )। वैरिएंट-बीएफ प्रोग्राम के समान रूपांतरण जो एक फ़ंक्शन को शुरू और गणना करता है जो 2 x 23 x की तरह बढ़ता है, निम्नलिखित 256-वर्ण वर्ण प्रदान करता है:

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

जो अंततः रुक जाता है, 2 hal 23 6 से अधिक आसन्न कोशिकाओं को 1 के बराबर सेट करता है (इसलिए चरणों की संख्या इससे बहुत अधिक है)।

एनबी -1 : 2 6 23 6 एक "अनिश्चित रूप से बड़ी" संख्या है; उदाहरण के लिए, यहां तक ​​कि 2 6 4 6 = 2 surpass 6 पहले से ही ग्राहम की संख्या की गणना करने के लिए उपयोग किए गए अनुक्रम में पहले शब्द (3) 3) से आगे निकल जाता है ।

एनबी -2 : मुझे लगता है कि यह संभावना है कि 256 अक्षर ग्रैहम की संख्या की तुलना में बहुत बड़े आउटपुट के साथ एक फंक्शन को इनिशियलाइज़ और कंप्यूट करने के लिए पर्याप्त हैं - अगर मुझे समय मिलता है, तो शायद मैं एक लिखने की कोशिश करूँगा।

एनबी -3 : यदि किसी को उपरोक्त कार्यक्रमों के मूल में दिलचस्पी है, तो यहां "ब्रेनफ * सीके एफ" के लिए कुछ प्रोग्रामिंग संसाधन हैं , जिसमें पायथन में विभिन्न कार्यक्रम लिखे गए हैं। ("Brainf * ck F", या सिर्फ "F", जिसे मैंने स्मॉलफ * ck esolanguage का ट्यूरिंग-पूर्ण संस्करण कहा जाता है ।) मैंने अभी इन फ़ाइलों को अपलोड किया है, जो कई वर्षों से ऑफ़लाइन हैं, और अब के लिए। लिंक किया गया वेबपेज केवल एक "फाइल कैबिनेट" है - उपरोक्त कार्यक्रमों के लिए प्रासंगिक विस्तृत चर्चा के लिए फ़ाइल व्यस्त_Beavers.txt देखें।


यह इस समय एक स्पष्ट विजेता है (जब तक कि मैं सिर्फ दूसरों को कम आंक रहा हूं)। अधिक सुझावों का बहुत स्वागत है, लेकिन मैं इसे अभी के लिए स्वीकार करूंगा। यदि कोई असहमत है, तो कृपया टिप्पणी करें।
एंटोन गोलोव

जब आप इस स्तर पर पहुंच जाते हैं, तो यह मानना ​​अवास्तविक हो जाता है कि आपके पास अनंत स्मृति वाला एक दुभाषिया है। मुझे लगता है कि यह परिमित रैपिंग मेमोरी के साथ एक बेहतर चुनौती होगी, इसलिए हम वास्तव में जवाब चला सकते हैं।
captncraig

9

यहाँ एक अच्छा 39 चरित्र है:

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

यह मूल रूप से एक 3 स्थान चौड़ा 'स्लेज' बनाता है जो सही चलता है और एक से घटता है। 31,919,535,558 निर्देशों में पूरा किया गया, जिसमें अंतरतम लूप 256 ^ 3 बार निष्पादित हुआ। मेरे पास अभी भी 14 वर्णों की दर से इस सुंदर स्थान का विस्तार करने के लिए रन समय के लिए एक और क्रम के परिमाण के लिए काफी जगह है।

अनबाउंड मेमोरी के साथ या रैपिंग मेमोरी के साथ किसी भी दुभाषिया पर काम करता है।

मैं इसे पढ़ने के लिए एक अभ्यास पर छोड़ता हूं कि यह निर्धारित करने के लिए कि 2 छोरों संस्करण में सुधार कब समाप्त होगा:

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

यह अब रातोंरात चला गया है, और यह 3,000,000,000 से अधिक चरणों में है। अभी भी बाहरी पाश के एक पुनरावृत्ति के माध्यम से नहीं मिला है। दूसरे पाश के 15% के माध्यम से बमुश्किल इसे बनाया है।


2

यह कार्यक्रम शिशु संख्या में कोशिकाओं में काम करता है। एएससीआई मान 255 के साथ शुरुआत में दो मानों को आरंभ किया जाता है। मुख्य लूप के पहले घुमाव पर पहला मान 255 सेल में विभाजित होता है और वे 255 प्रत्येक के साथ आरंभिक होते हैं, मुख्य लूप के दूसरे रोटेशन में 255 कोशिकाओं में प्रत्येक मान फिर से विभाजित होता है 255 * 255 कोशिकाओं तक, मुख्य लूप के 255 रोटेशन के लिए इसी तरह से शुरू की गई कुल सेल 255 ^ 255 होगी। दूसरा मान निर्धारित करता है कि मुख्य लूप को कितनी बार दोहराया जाना है।

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

2

यह कार्यक्रम मेरे पिछले कार्यक्रम के लगभग समान है, अंतर यह है कि बाहरी लूप का निर्धारण एक विशेष सेल में निर्धारित रहता है, इसलिए दोनों कोशिकाओं की संख्या प्रारंभिक और कार्यक्रम के अंत में कुल चरणों को बढ़ाया जा सकता है

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

प्रोग्राम 255 के अंत में शुरू में सेल 255 ^

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

कक्ष 255 ^ 255 ^ 3 कार्यक्रम के अंत में आरंभीकृत

मैंने इसे और भी अधिक चरणों के लिए चलाने के लिए संशोधित किया।

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

यह मुख्य लूप के दूसरे रोटेशन के दौरान 255 ^ 255 कोशिकाओं को शुरू करता है। मुख्य लूप के दूसरे रोटेशन के दौरान 255 (255 ^ 255 * 255) कोशिकाएं 255 ^ {255 ^ (255 ^ 255 * 255) * 255} कोशिकाओं के मुख्य रोटेशन के तीसरे रोटेशन के दौरान इस तरह लूप 255 बार दोहराता है


अच्छा लग रहा है! अभी तक एक उत्तर को स्वीकार नहीं करने के लिए खेद है - मुझे इनको देखने और विकास के क्रम का पता लगाने में कुछ समय लगा है। जब आप "255 ^ 255 * 255" कहते हैं, तो क्या आपका मतलब "255 ^ (255 * 255)" है? (मुझे "255 ^ 256" अन्यथा की उम्मीद नहीं होगी।)
एंटन गोलोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.