Fractran को Brainfuck में परिवर्तित करें


18

पृष्ठभूमि

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

फ्रैक्चरन ट्यूरिंग-पूर्ण होने का कारण यह है कि यह एक रजिस्टर मशीन का अनुकरण करता है। संख्या का प्रधान गुणनखंडन रजिस्टरों की सामग्री को संग्रहीत करता है, जबकि विभाजन और गुणा, रजिस्टरों से सशर्त रूप से जोड़ने और घटाने का एक तरीका है। मैं विकिपीडिया लेख (ऊपर लिंक) पढ़ने की सलाह दूंगा।

चुनौती

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

नोट: आपका उत्तर BF प्रोग्राम नहीं है। आपका उत्तर वह कोड है जो किसी भी फ्रैक्ट्रन प्रोग्राम से बीएफ प्रोग्राम उत्पन्न करता है। लक्ष्य बीएफ कार्यक्रम को फ्रैक्ट्रन कार्यक्रम के बराबर प्राप्त करना है। (तकनीकी रूप से आप बीएफ में प्रतियोगिता कर सकते थे, लेकिन यह कठिन होगा)

विकल्प 1

आपके प्रोग्राम को बीएफ प्रोग्राम आउटपुट करना चाहिए जो निम्न कार्य करता है:

  • इसी ASCII चरित्र के रूप में एसटीडीआईएन से ठीक 1 नंबर लेता है (जिस तरह से बीएफ इनपुट काम करता है), जो कि फ्रैक्ट्रन कार्यक्रम के लिए इनपुट है।
  • इसी ASCII वर्ण के रूप में STDOUT को ठीक 1 नंबर प्रिंट करता है, जो कि फ्रैक्ट्रन प्रोग्राम से आउटपुट है।

यह विकल्प फ्रैक्ट्रन वर्चुअल मशीन से सटीक इनपुट और आउटपुट का प्रतिनिधित्व करने के लिए है।

विकल्प 2

आपके प्रोग्राम का उत्पादन करने वाला BF कोड निम्नलिखित कार्य करना चाहिए:

  • पहले से ही मेमोरी में एन्कोडेड संख्या (प्रोग्राम को चलाने से पहले) का इनपुट करके प्राइमरी फैक्ट्री लें। यदि इनपुट 28 (2 * 2 * 7) है, तो दूसरी सेल में 2 का मान होगा और सातवें सेल में 1 का मान (सेल 0 पर पॉइंटर शुरू होता है)। अन्य सभी कोशिकाएँ शून्य होंगी।
  • जब प्रोग्राम समाप्त हो जाता है, तो मेमोरी में एन्कोड किए गए आउटपुट का मुख्य गुणनखंड होने पर आउटपुट दें। यदि आउटपुट 10 है, तो प्रत्येक कोशिकाओं में 1 का मान 2 और 5 होना चाहिए। अन्य सभी अभाज्य संख्या वाले कोशिकाओं का मूल्य शून्य होना चाहिए। अन्य कोशिकाओं की सामग्री मायने नहीं रखती है।

यह विकल्प फ्रैक्ट्रन भाषा के पीछे कंप्यूटिंग मॉडल का प्रतिनिधित्व करता है।

नियम और आवश्यकताएँ

  1. इनपुट (अपने कार्यक्रम के ऊपर) STDIN पर अंशों की एक सूची होगी। अंश और हर के बीच अल्पविराम के साथ प्रति पंक्ति एक अंश होगा। एक खाली रेखा इनपुट के अंत का प्रतिनिधित्व करती है। भिन्नों को हमेशा सबसे कम शब्दों में कम किया जाएगा।
  2. आपके प्रोग्राम का आउटपुट एकल-पंक्ति, मान्य BF प्रोग्राम से STDOUT होना चाहिए। यह कार्यक्रम दो विकल्पों में से एक के अनुसार उस विशेष फ्रैक्ट्रन कार्यक्रम को अनुकरण करने में सक्षम होना चाहिए। किसी भी इनपुट के लिए, उत्पन्न बीएफ प्रोग्राम को फ्रैक्ट्रन प्रोग्राम के समान आउटपुट का उत्पादन करने में सक्षम होना चाहिए।
  3. आपको यह बताना होगा कि आपने कौन सा विकल्प चुना है।
  4. आप बीएफ मेमोरी और टेप पर सीमाएं चुन सकते हैं, और चाहे वे लपेट रहे हों
  5. कोड GOLF। साथ ही, आउटपुट किए गए BF प्रोग्राम्स का आकार मायने नहीं रखता है, केवल उस प्रोग्राम का आकार जो कन्वर्सेशन कर रहा है।
  6. कार्यक्रम में केवल मुद्रण योग्य ASCII शामिल होना चाहिए

अगर मैं कहीं भी अस्पष्ट हूं, तो पूछने में संकोच न करें। यह वर्णन करने के लिए एक बहुत ही जटिल चुनौती है।

इसके अलावा, कृपया निम्न इनपुट के लिए अपने प्रोग्राम के जेनरेट किए गए बीएफ कोड को पोस्ट करें, ताकि यह जांचने का आसान तरीका प्रदान किया जा सके कि आपका प्रोग्राम काम कर रहा है या नहीं:

33,20
5,11
13,10
1,5
2,3
10,7
7,2

यह प्रोग्राम किसी संख्या के द्विआधारी विस्तार में 1s की संख्या की गणना करता है। हालांकि, इनपुट और आउटपुट को अजीब तरीके से स्वरूपित किया गया है (जैसा कि सभी फ्रैक्ट्रन कार्यक्रमों के साथ)। इनपुट फॉर्म 2 ^ ए का है, जबकि आउटपुट फॉर्म 13 ^ बी का है।


तो मूल रूप से आप ब्रेनफक में फ्रैक्चर इंटरप्रेटर चाहते हैं। बाकी सब कुछ काफी तुच्छ है।
कैप्टनक्रिग

@ सीएमपी मैं एक ऐसा कार्यक्रम चाहता हूं जो किसी फ्रैक्ट्रन कार्यक्रम के बीएफ संस्करण का उत्पादन करता है। यह रूपांतरण करने वाला कोड BF में नहीं होना चाहिए। बीएफ कार्यक्रम अपने आप में एकल-उद्देश्य है।
PhiNotPi

1
क्या हमारे द्वारा उपयोग किए जाने वाले ब्रेनफैक दुभाषिया की सीमाएं हैं? क्या हमें बाइट आकार की कोशिकाओं का उपयोग करना चाहिए, या क्या हम अंतर कोशिकाओं का उपयोग कर सकते हैं? बंधी हुई स्मृति? रैपिंग मेमोरी? रैपिंग सेल? कुछ भी हम चाहते हैं कि यह काम करता है?
कैप्टनक्रिग

कुछ भी आप इसे काम करना चाहते हैं, लेकिन कृपया अपने उत्तर में निर्दिष्ट करें।
PhiNotPi

1
शायद बीएफ के साथ इसे हल करना संभव है ...
mbomb007

जवाबों:


7

अजगर, 182 चरस

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

import sys
I=map(eval,sys.stdin)
P='+>,'
Q=''
for i in range(1,256):
 while i:j=i;i=([i*x/y for x,y in I if i%y==0]+[0])[0]
 r=j&255;P+='-[';Q=']<[-'+'+'*r+'.'+'-'*r+']>'+Q
print P+Q

उदाहरण इनपुट के लिए आउटपुट ( ___= 246 अधिक नेस्टेड स्थितियां, मैं पूरे परिणाम को पेस्ट नहीं कर सकता क्योंकि यह बहुत बड़ा है):

+>,-[-[-[-[-[-[-[-[___]<[-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------]>]<[-+++++++++++++.-------------]>]<[-+++++++++++++.-------------]>]<[-+.-]>]<[-+++++++++++++.-------------]>]<[-+++++++++++++.-------------]>]<[-+++++++++++++.-------------]>]<[-+.-]>

1
@PhiNotPi: सच, मुझे लूपिंग और विशेष मामले का पता लगाने की आवश्यकता हो सकती है ...
कीथ रान्डेल

7
दरअसल, मुझे लगता है कि यह निर्धारित करना कि किसी दिए गए फ्रैक्ट्रन कार्यक्रम एक अंतहीन लूप है या नहीं, हॉल्टिंग समस्या के बराबर है। उसके साथ अच्छा भाग्य। :)
PhiNotPi

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

1
@ सीएमपी, प्रश्न विशेष रूप से बताता है कि विकल्प 1 के लिए इनपुट आस्की से लिया गया है।
बूथबी

1
@PhiNotPi यह निर्धारित करता है कि कोई प्रोग्राम हाट करता है या नहीं, यह किसी अन्य भाषा में कोई अन्य प्रोग्राम बनाने में सक्षम होने की तुलना में थोड़ा अलग है जैसे कि यह रुकता है यदि और केवल मूल हाल्ट। पूर्व असंभव है, जबकि उत्तरार्द्ध हर दिन संकलक द्वारा किया जाता है।
क्रंचर

3

पायथन, 420 वर्ण

यह विकल्प 1 और 2 के मिश्रण का एक प्रकार का उपयोग करता है: यह मानता है कि ब्रेनफक को बड़े पूर्णांकों के साथ लागू किया जाता है (मैं एक एसआईआर कार्यान्वयन का उपयोग करता हूं)। उदाहरण के लिए, एक फ्रैक्चर प्रोग्राम इनपुट करें 33/20,5/11,13/10,1/5,2/3,10/7,7/2। फिर, उदाहरण के लिए, 2^5कर्सर पर एक संख्या को पूर्व-लोड करें । फिर, इस अजगर स्क्रिप्ट का आउटपुट चलाएँ। 44 सेकंड प्रतीक्षा करें। परिणाम, 13^2कर्सर जहां शुरू हुआ था , वहां बैठता है। मैंने जवाब के लिए इंतजार नहीं किया 2^7

s="[->>>+<<<]+["
for l in raw_input().split(','):
 a,b=map(int,l.split('/'))
 s+="[->+>+<<]>[-<+>]>[->[->+>>+<<<]>[-<+>]>>["+"[->+>+<<]>>[-<<+>>]<[[-]<-[->+>+<<]>>[-<<+>>]<<>[[-]<<->>]<<+[<[-]>-]>>]<"*(b-1)+"[->+>+<<]>>[-<<+>>]<[[-]<-[->+>+<<]>>[-<<+>>]<<>[[-]<<<->>>]<<<++>>>]<]<<[->+>+<<]>>[-<<+>>]<[[-]<->]<[<[-]>[-<+>]<"+"[->+>+<<]>[-<+>]<"*a+"[-]>>[-<<+>>]<<<<<->>>>]<<]<<"
print s+">+<[->-<]>[-<+>]<]>>>[-<<<+>>>]"

यह मेरी पहली दिमागी पटकथा है। यह निश्चित रूप से आगे बढ़ाया जा सकता है, लेकिन मुझे आज रात तक अन्य चीजें मिल गई हैं।

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

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

यह एक अच्छी पहली Brainfuck स्क्रिप्ट है, +1। आप 5 से भी कम समय में मेरे ब्रेनफैक दुभाषिया के 2^7साथ गणना कर सकते हैं । इसके अलावा, इसके बजाय नहीं होना चाहिए (या यह कुछ क्विक है जिसके बारे में मुझे नहीं पता है)? raw_input()raw_input
कॉपी करें

@ कोपी, धन्यवाद! आप सही हैं, raw_input()आवश्यक है। मुझे आश्चर्य नहीं है कि सक्षम ब्रेनफॉक दुभाषिए मेरे भयानक भोले साधु कार्यान्वयन से बेहतर करते हैं।
बूथबी

2

पर्ल, 326 वर्ण

मैं अपने स्वयं के प्रश्न का उत्तर देने जा रहा हूं उम्मीद है कि मैं और अधिक उत्तरों को उत्तेजित करूंगा। मैं बेशक जीत का पात्र नहीं हूं। यह अनबाउंड मेमोरी और कोशिकाओं के साथ विकल्प 2 है, हालांकि यह रैपिंग कोशिकाओं पर काम करता है। प्रत्येक अंश कोड के एक ब्लॉक में परिवर्तित हो जाता है। नई पठनीयता पठनीयता के लिए है।

L:{$A=<>;
if($/eq$A){last L}
($B,$C)=eval$A;
$D=$E=$F=$G=$H=2;
while($C>1){
if($C%$H==0){
$C/=$H;
$R=">"x$H;
$L="<"x$H;
$D.=$R.'[-'.$L;
$E.=$R.'-'.$L;
if($H>2){$R.="+[->+<]]>[-<+>]<"}
else{$R.="+[-<+>]]<[->+<]>"}
$G=$R.$L.$G;
$H--}$H++}
$H=2;while($B>1){
if($B%$H==0){
$B/=$H;
$F.=">"x$H.'+'.'<'x$H;
$H--}$H++}
$I="+[-$I$D$E+$F$G]";
redo L}print$I

यहाँ उदाहरण आउटपुट है। यह इस तथ्य का लाभ उठाता है कि अन्य पात्रों को टिप्पणी के रूप में नजरअंदाज किया जाता है। यह अन्य प्रविष्टियों की तुलना में बहुत कम आउटपुट प्रतीत होता है, हालाँकि आउटपुट आकार तकनीकी रूप से महत्वपूर्ण नहीं है।

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

1

ऋषि, 431 चर

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

exec"f=factor;
J=''.join;
Q=L(a,b):Lz:a*z+b*-z;M=Q('<>');
C=Lj,k:(Ll:'[-%s+%s+%s]%s[-%s+%s]%s'%tuple(map(M,[-j,-k,l,-l,l,-l,k])))(j+k);
print '>+[>>>+'+J(map(L(n,m):reduce(Lr,(p,e):'[-%s%s%s[[-]<<+>>]%s<<%s]'%(M(4-p),C(6-p,2),'[-'*(e-1),']'*(e-1),r),f(m),'[-<<<->>>%s]'%J(map(L(p,e):M(4-p)+Q('+-')(e)+M(p-4),f(n/m))))+'<<<'+C(3,2),[map(QQ,x.split('/'))for x in raw_input().split(',')]))+'<<<<+>[-<->]<[->+<]>]'".replace('L','lambda ')

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

इनपुट दिया 33/20,5/11,13/10,1/5,2/3,10/7,7/2

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