विस्तार का विस्तार


31

इस क्रम में चार गणितीय अभिव्यक्तियों को एक, ए और बी से अधिक दो पूर्णांक दिए गए हैं:

  1. सादे अभिव्यक्ति A ^ B (A से शक्ति B)। जैसे अगर A = 2 और B = 3 2^3,।

  2. ए। जैसे दोहराया गुणन के संदर्भ में ए ^ बी का विस्तार 2*2*2

  3. ए। उदाहरण के दोहराया परिवर्धन के संदर्भ में ए ^ बी का विस्तार 2+2+2+2

  4. बार-बार जोड़ने के मामले में ए ^ बी का विस्तार 1. जैसे 1+1+1+1+1+1+1+1

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

2^3
2*2*2
2+2+2+2
1+1+1+1+1+1+1+1

या शायद एक रेखा पर समान संकेतों द्वारा अलग किया गया है:

2^3=2*2*2=2+2+2+2=1+1+1+1+1+1+1+1

गणित संचालकों के बगल में रिक्त स्थान डाले जा सकते हैं

2^3 = 2 * 2 * 2 = 2 + 2 + 2 + 2 = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1

समान रूप से मान्य आउटपुट होगा जब A = 2 और B = 3।

आप करने के लिए वैकल्पिक प्रतीकों का उपयोग कर सकते हैं ^, *और +है, लेकिन तभी जब नए प्रतीकों (जैसे अपनी भाषा के लिए और अधिक मुहावरेदार हैं **के बजाय ^अजगर में)।

आप मान सकते हैं कि ए और बी पर्याप्त रूप से छोटे हैं ताकि ए ^ बी आपकी भाषा के डिफ़ॉल्ट पूर्णांक प्रकार को ओवरफ्लो नहीं करेगा (यह देखते हुए कि उस प्रकार का एक उचित अधिकतम, 255 कम से कम है)।

बाइट्स में सबसे छोटा कोड जीतता है।

परीक्षण के मामलों

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

2^2 = 2*2 = 2+2 = 1+1+1+1
2^3 = 2*2*2 = 2+2+2+2 = 1+1+1+1+1+1+1+1
2^4 = 2*2*2*2 = 2+2+2+2+2+2+2+2 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
2^5 = 2*2*2*2*2 = 2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^2 = 3*3 = 3+3+3 = 1+1+1+1+1+1+1+1+1
3^3 = 3*3*3 = 3+3+3+3+3+3+3+3+3 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^4 = 3*3*3*3 = 3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^5 = 3*3*3*3*3 = 3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
4^2 = 4*4 = 4+4+4+4 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
4^3 = 4*4*4 = 4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
10^2 = 10*10 = 10+10+10+10+10+10+10+10+10+10 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
13^2 = 13*13 = 13+13+13+13+13+13+13+13+13+13+13+13+13 = 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1

@JonathanAllan हाँ, आपको मेरे द्वारा देखे गए सभी टाइपो मिल गए। अच्छी नौकरी! बाबाजी का थुल्लु।
आर। कप

2
आपको @JonathanAllan की ओर से धन्यवाद। आर। कप ने मुझे अपने सभी 3 के बारे में चिंता की
केल्विन के शौक

खैर, (सौभाग्य से) =किसी भी व्यक्ति के बाईं ओर कोई गलत स्थान नहीं थे 3
आर। कप

5
कृपया अगली बार "नथ के अप ऐरो नोटेशन" का विस्तार न करें
मैथ्यू रो

1
यदि हम एक स्ट्रिंग के रूप में STDIN से इनपुट पढ़ते हैं, तो 2^3एक वैध इनपुट प्रारूप है? या इसके लिए स्पेस / अल्पविराम / लाइनफीड-पृथक या कुछ और होना चाहिए?
मार्टिन एंडर

जवाबों:


11

पायथन 3.6 , 88 74 बाइट्स

-2 बाइट्स दादा के लिए धन्यवाद (उपयोग ~)
-5 बाइट्स एरवान के लिए धन्यवाद (पायथन 3.6 से एफ-स्ट्रिंग्स का उपयोग करें)

lambda a,b:f"{a}^{b}={a}{f'*{a}'*~-b}={a}{f'+{a}'*~-a**~-b}=1"+"+1"*~-a**b

ऑनलाइन किसी के पास?

कैसे?

यह दो पूर्णांक इनपुट aऔर bप्रत्येक से अधिक लेने वाला एक अनाम फ़ंक्शन है 0(भले ही विनिर्देश केवल उन से अधिक के लिए हो 1)।

Python 3.6 में एक नया फीचर उपलब्ध है, जिसका नाम है प्रारूपित स्ट्रिंग लिटरल या "एफ-स्ट्रिंग्स"। ये रन-टाइम मूल्यांकित स्ट्रिंग निर्माण की अनुमति देते हैं। एक अग्रणी f(या F) ऐसा निर्माण करता है, जैसे f"blah"या f'blah'। एफ-स्ट्रिंग के अंदर ब्रेसिज़ की एक जोड़ी के बीच कुछ भी {...}, एक अभिव्यक्ति का मूल्यांकन किया जाना है।

जैसे f"{a}^{b}={a}{f'*{a}'*~-b}={a}{f'+{a}'*~-a**~-b}=1"मूल्यांकन करता है में से प्रत्येक के a, b, a, f'*{a}'*~-b, a, और f'+{a}'*~-a**~-b}अभिव्यक्ति, रखने के रूप में ^, =, =, और =1तार, जो सभी के एक साथ concatenated हो जाता है के रूप में।

aऔर bभाव का निरूपण करने के लिए मूल्यांकन aऔर bक्रमशः।

f'*{a}'और f'+{a}'बदले में भी इन भाव के अंदर च-तार है, जो करने के लिए मूल्यांकन कर रहे हैं aएक प्रमुख के साथ '*'और एक प्रमुख '+'क्रमश:

और भागों के aलिए आवश्यक संचालन और संचालन की संख्या बनाने के लिए ध्यान दें कि वहाँ एक साथ गुणा किया जाएगा और एक साथ जोड़ा जाएगा। प्रत्येक मामले में तब s की संख्या की तुलना में एक कम ऑपरेटर संकेत की आवश्यकता होती है । इसलिए हम एफ-स्ट्रिंग्स को दोहरा सकते हैं और (उपयोग करते हुए ) कई बार जब तक ऑपरेटर होते हैं और प्रत्येक को एक के साथ प्रस्तुत करते हैं । है और है ।*+b aa**(b-1) aaf'*{a}f'+{a}'*a(b-1)~-b(a**(b-1))-1~-a**~-b

उसी का 1उपयोग किया (a**b)-1जा रहा है के लिए किया जाता है ~-**b, लेकिन हमें 1निरंतर होने के बाद से एफ-स्ट्रिंग्स के ओवरहेड की आवश्यकता नहीं है, इसलिए एक मानक स्ट्रिंग को दोहराया जाता है +


पहले पायथन संस्करण, 81:

lambda a,b:'%s^%s=%s=%s=1'%(a,b,('*%s'%a*b)[1:],('+%s'%a*a**~-b)[1:])+'+1'*~-a**b

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


आप को बदल नहीं सकता (b-1)के साथ ~-b?
दादा

हां आप सही कह रहे हैं, मैंने याद किया।
जोनाथन एलन

1
आप 5 बाइट्स जीत सकते हैं, यदि आप अजगर 3.6 से एफ स्ट्रिंग का उपयोग करते हैं:lambda a,b:f"{a}^{b}={(f'*{a}'*b)[1:]}={(f'+{a}'*a**~-b)[1:]}=1"+'+1'*~-a**b
एरवन

@ इरान हाँ, जब मैं वापस (अब) आया तो मैं एफ स्ट्रिंग्स का उपयोग करने की योजना बना रहा था। मैं एक जोड़े को और भी बचा सकता हूं।
जोनाथन एलन

1
हमेशा टैडपोल ऑपरेटरों को देखने के लिए अच्छा है।
जैक ब्रूनस्टीन

11

क्यूबिक्स, 238 234 217 151 110 100 बाइट्स

बची 14 बाइट्स ETHProductions की बदौलत

u'^.:s+.;;;\-?W?rsos\(rrOIO:ur>'=o;^u.;;.>$.vUo^'rsu1;;@!\q?s*su;;IOu*+qU../;(*\(s.;<..r:''uq....qu\

विस्तारित:

          u ' ^ . :
          s + . ; ;
          ; \ - ? W
          ? r s o s
          \ ( r r O
I O : u r > ' = o ; ^ u . ; ; . > $ . v
U o ^ ' r s u 1 ; ; @ ! \ q ? s * s u ;
; I O u * + q U . . / ; ( * \ ( s . ; <
. . r : ' ' u q . . . . q u \ . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

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

इसे यहाँ आज़माएँ

व्याख्या

कोड में दो छोरों के साथ 8 चरण होते हैं। मैं भाग द्वारा कोड भाग पर जाऊंगा।

चरण 1 (ए ^ बी)

          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
I O : u . . . . . . . . . . . . . . . .
U o ^ ' . . . . . . . . . . . . . . . .
; I O u . . . . . . / ; ( * \ . . . . .
? ? r : . . . . . . ? . . . \ ? ? ? ? ?
. . . . ? . . . . . ? . . . . . . . . .
          ? ? ? ? ?
          . . . . .
          . . . . .
          . . . . .
          . . . . .

यह उन हिस्सों के साथ क्यूब है जो हटाए गए पहले चरण के लिए अप्रासंगिक हैं। प्रश्नचिह्न दिखाता है कि आईपी जिस ओपी पर जाएगा, वह अपना रास्ता और अधिक स्पष्ट कर देगा।

IO:'^o;IO:r*(; # Explanation
I              # Push the first input (A)
 O             #   output that
  :            #   duplicate it
   '^          # Push the character "^"
     o         #   output that
      ;        #   pop it from the stack
       I       # Push the second input (B)
        O      #   output that 
         :     #   duplicate
          r    #   rotate top 3 elements
           *   # Push the product of the top two elements
            (  #   decrease it by one
             ; #   pop it from the stack (making the last
               #   two operations useless, but doing it
               #   this way saves 10B)

अब, स्टैक इस तरह दिखता है: A, B, A, B

चरण 2 (प्रिंट लूप के लिए तैयार)

प्रिंट पाश 3 तर्कों (स्टैक पर शीर्ष 3 तत्वों) लेता है: P, Qऔर RPपुनरावृत्तियों की राशि Qहै, विभाजक (वर्ण कोड) है और Rदोहराने की संख्या है। सौभाग्य से, लूप उस आवश्यकता का भी ध्यान रखता है जिसके परिणामस्वरूप स्ट्रिंग को समाप्त होना चाहिए R, नहीं Q

हम दोहराना चाहते हैं A*वास्तव में B, कई बार तो विभाजक है *। ध्यान दें कि स्टैक के रूप में शुरू होता है A, B, A, B। एक बार फिर, मैंने सभी अप्रासंगिक निर्देशों को हटा दिया। आईपी Sउत्तर की ओर इशारा करते हुए शुरू होता है ।

          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
. . . . r . . . . . . . . . . . . . . .
. . . . r . . . . . . . . . . . . . . .
. . . . * . . . . . . . . . . . . . . .
. . . . ' . . . . . . . . . . . . . . .
. . . . S . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

'*rr # Explanation
'*   # Push * (Stack: A, B, A, B, *)
  rr # Rotate top three elements twice

स्टैक अब है A, B, B, *, A

चरण 3/6/8 (प्रिंट लूप)

संकल्पना

E . . . . .
? r s o s u 
\ ( r r O <
. . . . . S

आईपी Sउत्तर की ओर इशारा करते हुए लूप में प्रवेश करता है , और Eफिर से उत्तर की ओर इशारा करते हुए लूप से बाहर निकलता है । इस स्पष्टीकरण के लिए, स्टैक को सेट किया गया है [..., A, B, C]। निम्नलिखित निर्देशों को निष्पादित किया जाता है। ध्यान दें कि आईपी प्रश्न चिह्न से पहले लूप को नहीं छोड़ सकता है, इसलिए पहले चार निर्देशों को हमेशा निष्पादित किया जाएगा।

Orr(?rsos # Explanation
O         # Output `C`
 rr       # Rotate top three elements twice (Stack: [..., B, C, A])
   (      # Decrease A by one (Stack: [..., B, C, A-1])
    ?     # If top of stack (A) > 0:
     r    #    Rotate top of stack (Stack: [..., A-1, B, C])
      s   #    Swap top elements (Stack: [..., A-1, C, B])
       o  #    Output top of stack (B) as character code
        s #    Swap top elements (Stack: [..., A-1, B, C]
          #
          # ... and repeat ...

कार्यान्वयन

यहाँ फिर से क्यूब है, अप्रासंगिक भागों को हटा दिया गया है। आईपी Sपूर्व की ओर इशारा करते हुए शुरू होता है ।

          . . . . .
          . . . . .
          . . . . .
          ? r s o s
          \ ( r r O
. . . . . S ' = o ; ^ u . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

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

'=o; # Explanation
'=   # Push =
  o  #     Output
   ; #     Pop from stack

लूप के अंदर, ऊपर की व्याख्या है।

चरण 4 (आईपी को अलग करना)

चूंकि हम कई बार उपरोक्त लूप का उपयोग करते हैं, और वे सभी आईपी को एक ही स्थान पर समाप्त करने का कारण बनते हैं, हमें कई रनों के बीच अंतर करना होगा। सबसे पहले, हम विभाजक के बीच अंतर कर सकते हैं (पहले रन में ए है *, जबकि रन दो और तीन में एक +विभाजक है)। दोहराए गए संख्या के मूल्य की जांच करके हम रन 2 और 3 के बीच अंतर कर सकते हैं। यदि यह एक है, तो कार्यक्रम समाप्त हो जाना चाहिए।

पहली तुलना

यहाँ यह क्यूब पर कैसा दिखता है। आईपी ​​एस पर शुरू होता है और उत्तर की ओर इशारा करता है। स्टैक शामिल हैं [..., * or +, A or 1, 0]। नंबर 1 दिखाता है कि आईपी कहाँ समाप्त होगा यदि यह पहला लूप है (उत्तर की ओर इशारा करते हुए) और नंबर 2 से पता चलता है कि जहाँ यह दूसरा (या तीसरा) लूप है (पूर्व की ओर इशारा करते हुए) तो आईपी ख़त्म हो जाएगा।

          u ' . . .
          s + . 1 .
          ; \ - ? 2
          S . . . .
          . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

;s'+-? # Explanation
;      # Delete top element (0)
 s     # Swap the top two elements (Stack: 1/A, */+)
  '+   # Push the character code of + 
    -  # Subtract the top two elements and push
       #  that to the stack (Stack: 1/A, */+, +, (*/+)-+)
     ? # Changes the direction based on the top
       # item on the stack. If it's 0 (if (*/+) == +)
       # the IP continues going right, otherwise, it
       # turns and continues going north.

यदि आईपी अब है 1, तो स्टैक है [A, *, +, -1]। अन्यथा, ढेर है [A or 1, +, +, 0]। जैसा कि आप देख सकते हैं, दूसरे मामले के ढेर में अभी भी एक अज्ञात है, इसलिए हमें एक और तुलना करनी होगी।

दूसरी तुलना

क्योंकि आईपी चरण 5 से गुजर चुका है, स्टैक इस तरह दिखता है [A^(B-1) or nothing, A or 1, +, +, 0]:। यदि पहला तत्व है nothing, तो दूसरा तत्व है 1, और रिवर्स भी है। क्यूब इस तरह दिखता है, आईपी एस पर शुरू होता है और पूर्व की ओर इशारा करता है। यदि यह दूसरा लूप है, तो आईपी समाप्त होता हैE पश्चिम की ओर इशारा करते हुए । अन्यथा, कार्यक्रम हिट @और समाप्त हो जाता है।

          . . . . .
          . . . . ;
          . . . S W
          . . . . .
          . . . . .
. . . . . . . . . . . . . ; . . . . . .
. . . . . . . . . E @ ! \ q . . . . . .
. . . . . . . . . . . . ( * . . . . . .
. . . . . . . . . . . . q u . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

नियंत्रण प्रवाह के लिए कुछ भी नहीं करने वाले निर्देशों को नीचे सूचीबद्ध किया गया है।

;;q*q(!@
;;       # Delete top two elements (Stack [A^(B-1)/null, A/1, +])
  q      # Send top element to the bottom (Stack [+, A^(B-1)/0, A/1])
   *     # Push product of top two elements 
         #    (Stack [+, A^(B-1)/0, A/1, A^B/0])
    q    # Send top element to the bottom 
         #    (Stack [A^B/0, +, A^(B-1)/0, A/1])
     (   # Decrease the top element by 1 
         #    (Stack [A^B/0, +, A^(B-1)/0, (A-1)/0])
      !  # If (top element == 0):
       @ #  Stop program

स्टैक अब है [A^B, +, A^(B-1), A-1], बशर्ते कार्यक्रम समाप्त नहीं हुआ।

चरण 5 ("A +" (दोहराने A ^ (B-1)) की तैयारी)

अफसोस की बात है कि क्यूबिक्स के पास पावर ऑपरेटर नहीं है, इसलिए हमें एक और लूप की जरूरत है। हालांकि, हमें पहले स्टैक को साफ करने की आवश्यकता है, जिसमें अब शामिल है[B, A, *, +, -1]

सफाई करना

यहाँ फिर से घन है। हमेशा की तरह, आईपी एस (उत्तर की ओर इशारा करते हुए) से शुरू होता है, और पश्चिम की ओर ई पर समाप्त होता है।

          . . . ? .
          . . . ; .
          . . . S .
          . . . . .
          . . . . .
. . . . . . . . . . . . . . . . > $ . v
. . . . . . . . . . . . . . . . . . . ;
. . . . . . . . . . . . . . . . . . E <
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

;; # Explanation
;; # Remove top 2 elements (Stack: [B, A, *])

ए ^ (बी -1) की गणना

एक अन्य लूप जो प्रिंट लूप के समान ही काम करता है, लेकिन यह थोड़ा अधिक कॉम्पैक्ट है। आईपी ​​शुरू होता है S, पश्चिम की ओर इशारा करते हुए, स्टैक के साथ [B, A, *]। आईपी Eउत्तर की ओर इशारा करते हुए बाहर निकलता है ।

          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
. . . . . . . . . . . . . . E . . . . .
. . . . . . . . . . . . . . ? s * s u .
. . . . . . . . . . . . . . \ ( s . ; S
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

लूप बॉडी निम्नलिखित है।

;s(?s*s # Explanation
;       # Pop top element.
 s      # Shift top elements.
  (     # Decrease top element by one
   ?    # If not 0:
    s   #    Shift top elements again
     *  #    Multiply
      s #    Shift back
        #
        # ... and repeat ...

परिणामी स्टैक है [A, A^(B-1), 0]

स्टैक की सफाई (फिर से)

अब हमें प्रिंट लूप को फिर से प्राप्त करने की आवश्यकता है, जिसमें स्टैक के शीर्ष के साथ है [..., A^(B-1), +, A]। ऐसा करने के लिए, हम निम्नलिखित को निष्पादित करते हैं। यहाँ फिर से घन है,

          . . ^ ? :
          . . . . .
          . . . . .
          . . . . .
          E . . . .
. . . . . s . . . . . . . . ; . . $ . .
. . . . . + q U . . . . . . S . . s . .
. . . . . ' u q . . . . . . . . . ? . .
. . . . . . . ? . . . . . . . . . ? . .
. . . . . . . ? . . . . . . . . . ? . .
          . . ? . .
          . . ? . .
          . . ? . .
          . . ? . .
          . . ? . .

;:$sqq'+s # Explanation
;         # Delete top element (Stack: [A, A^(B-1)])
 :        # Copy top element
  $s      # No-op
    qq    # Send top two elements to the bottom
          #   (Stack: [A^(B-1), A^(B-1), A])
      '+  # Push +
          #   (Stack: [A^(B-1), A^(B-1), A, +])
        s # Swap top two elements
          #   (Stack: [A^(B-1), A^(B-1), +, A])

चरण 7 (अंतिम लूप की तैयारी)

स्टैक अब है [A^B, +, A^(B-1), A-1], आईपी शुरू होता है S, पश्चिम में जा रहा है, और Eसही पर समाप्त होता है ।

          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
. . . . . E . . . . . . . . . . . . . .
. . . . . . u 1 ; ; S . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .

निष्पादित किए गए निर्देश:

;;1 # Explanation
;;  # Delete top two elements
  1 # Push 1

स्टैक अब जैसा दिखता है [A^B, +, 1], और आईपी प्रिंट लूप में प्रवेश करने वाला है, इसलिए हम काम कर रहे हैं।


2
हां कृपया एक स्पष्टीकरण दें, कम से कम एक अनऑर्ग्लॉइड क्यूब नेट संस्करण बनाएं
विनाशकारी नींबू

मैंने व्याख्या पूरी कर ली है
ल्यूक

यह भाषा किसने बनाई ... यह हेक्स-एगोनी की तरह है लेकिन क्यूब-एगोनी। कोई व्यक्ति 3 डी हेक्स-एगोनी बनाता है।
मैजिक ऑक्टोपस अर्ने

1
@carusocomputing और क्या पॉलीहेड्रोन एक 3 डी हेक्स, एचएम होगा?
mbomb007

1
आप शायद एक ऐसी भाषा बना सकते हैं जो tessellated tetrahedrons के 3D संरचना पर चलती है।
mbomb007

7

MATL , 46 बाइट्स

XH'^'i'='XJ2G:"H'*']xJ&Gq^:"H'+']xJ&G^:"1'+']x

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

यहां "उचित तरीके" की सीमा को बढ़ाते हुए, लेकिन अभिव्यक्तियों को अलग किया जाता है।

व्याख्या

पहली अभिव्यक्ति:

XH'^'i'='XJ

XH         % implicitly take input A, save it to clipboard H
'^'        % push literal '^'
i          % take input B
'='        % push literal '='
XJ         % copy '=' to clipboard J, we'll use this twice more so it's worth it

दूसरी अभिव्यक्ति:

2G:"H'*']xJ

2G         % paste the second input (B) again
:"         % do the following B times
  H        % paste A from clipboard H
  '*'      % push literal '*'
]          % end loop
x          % delete the final element (at the moment we have a trailing *)
J          % paste '=' from clipboard J

तीसरी अभिव्यक्ति:

&Gq^:"H'+']xJ

&G         % paste all of the input, ie push A and B
q          % decrement B
^          % power, giving A^(B-1)
:"         % do the following A^(B-1) times 
  H        % paste A from clipboard H
  '+'      % push literal '+'
]          % end loop
x          % delete the final element (at the moment we have a trailing +)
J          % paste '=' from clipboard J

चौथी अभिव्यक्ति:

&G^:"1'+']x

&G         % paste all of the input, ie push A and B
^          % power, giving A^B
:"         % do the following A^B times 
  1        % push 1
  '+'      % push '+'
]          % end loop
x          % delete the final element (at the moment we have a trailing +)
           % (implicit) convert all to string and display

6

जावास्क्रिप्ट (ईएस 7), 78 बाइट्स

करी सिंटैक्स में इनपुट लेता है (a)(b)। एक स्ट्रिंग आउटपुट करता है।

a=>b=>a+'^'+b+(g=o=>'='+a+('+*'[+!o]+a).repeat(b-1))()+g(b=a**~-b)+g(b*=a,a=1)

परीक्षण के मामलों



3

05AB1E , 30 बाइट्स

mUð¹'^²J'*¹«²×'+¹«X¹÷ׄ+1X×)€¦

स्पष्टीकरण:

mU                               # Store a^b in variable X
  ð                              # Push a space character to the stack (will be deleted at the end, but this is needed to keep the character count low)
   ¹'^²J                         # Push the string "a^b" to the stack
        '*¹«                     # Push the string "*a" to the stack
            ²×                   # Repeat b times
              '+¹«               # Push the string "+a" to the stack
                  «X¹÷×          # Repeat a^b / a times
                       „+1       # Push the string "+1" to the stack
                          X×     # Repeat a^b times
                            )    # Wrap stack to array
                             €¦  # Remove the first character from each element in the array

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


¹²'^ý ¹'*¹«²<׫¹²m¹÷¹s×S'+ý 1¹²m×S'+ý», आपने मुझे 5 बाइट्स से क्यों हराया :(?
मैजिक ऑक्टोपस अर्ने

1
क्योंकि मैं। : पी
ओकेक्स

किसी कारण से मैंने आपका उत्तर देखा और "80 बाइट्स" पढ़ा और अपने आप को सोचा, "आसानी से हरा", तो मैंने 80 के लक्ष्य को ध्यान में रखते हुए मेरा निर्माण किया ... फिर, मुझे लगता है कि कुछ चीज़ों में माइंस कम है और इसलिए तुम्हारा है हाहा
मैजिक ऑक्टोपस यूरन

¹²«¹²×¹¹²m©¹÷×1®×)vySN"^*++"èý,निकट है ;)। आप केवल 1 अब जीत रहे हैं;)।
मैजिक ऑक्टोपस यूरन


2

जावा 7, 170 बाइट्स

String c(int a,int b){String s="=",r=a+"^"+b+s+a;double i=0,x=Math.pow(a,b);for(;++i<b;r+="*"+a);r+=s+a;for(i=0;++i<x/a;r+="+"+a);r+=s+1;for(i=0;++i<x;r+="+1");return r;}

Ungolfed:

String c(int a, int b){
  String s = "=",
         r = a+"^"+b+s+a;
  double i = 0,
         x = Math.pow(a,b);
  for(; ++i < b; r += "*"+a);
  r += s+a;
  for(i = 0; ++i < x/a; r += "+"+a);
  r += s+1;
  for(i = 0; ++i < x; r += "+1");
  return r;
}

टेस्ट कोड:

इसे यहाँ आज़माएँ।

class M{
  static String c(int a,int b){String s="=",r=a+"^"+b+s+a;double i=0,x=Math.pow(a,b);for(;++i<b;r+="*"+a);r+=s+a;for(i=0;++i<x/a;r+="+"+a);r+=s+1;for(i=0;++i<x;r+="+1");return r;}

  public static void main(String[] a){
    System.out.println(c(2,2));
    System.out.println(c(2,3));
    System.out.println(c(2,4));
    System.out.println(c(2,5));
    System.out.println(c(3,2));
    System.out.println(c(3,3));
    System.out.println(c(3,4));
    System.out.println(c(3,5));
    System.out.println(c(4,2));
    System.out.println(c(4,3));
    System.out.println(c(10,2));
    System.out.println(c(13,2));
  }
}

आउटपुट:

2^2=2*2=2+2=1+1+1+1
2^3=2*2*2=2+2+2+2=1+1+1+1+1+1+1+1
2^4=2*2*2*2=2+2+2+2+2+2+2+2=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
2^5=2*2*2*2*2=2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^2=3*3=3+3+3=1+1+1+1+1+1+1+1+1
3^3=3*3*3=3+3+3+3+3+3+3+3+3=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^4=3*3*3*3=3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
3^5=3*3*3*3*3=3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
4^2=4*4=4+4+4+4=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
4^3=4*4*4=4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
10^2=10*10=10+10+10+10+10+10+10+10+10+10=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
13^2=13*13=13+13+13+13+13+13+13+13+13+13+13+13+13=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1

1

पिप , ३ 38 ३५ 34 बाइट्स

-nध्वज के लिए कोड के 33 बाइट्स, +1 ।

Ya**b[gJ'^aRLbJ'*aRLy/aJ'+1XyJ'+]

A और B को कमांड-लाइन तर्क के रूप में लेता है; प्रति पंक्ति एक अभिव्यक्ति प्रिंट करता है। इसे ऑनलाइन आज़माएं!

व्याख्या

Ya**bसेटअप कोड है: चर a**bमें यान y। उसके बाद, हमारे पास एक सूची (इन []) है जिसमें हमारे चार भाव हैं:

  • gJ'^: पूर्ण ar लेने gसूची (यहाँ युक्त एक सूची, aऔर b) और Jपर यह oin^
  • aRLbJ'*: तब की प्रतियों के साथ एक सूची बनाने के लिए Rएपीट इस् ट का उपयोग करेंLbaJ पर यह oin*
  • aRLy/aJ'+: (यानी ) प्रतियों के RLसाथ एक सूची बनाने के लिए उपयोग करें , तबy/aa**(b-1)aJ उस पर oin करें+
  • 1XyJ'+: 1, स्ट्रिंग-गुणा से y, Joined पर+

सूची को -nध्वज के लिए विभाजक के रूप में नई रेखा के साथ मुद्रित किया गया है ।


1

जावास्क्रिप्ट 115 113 113 बाइट्स

एक-एक बाइट को बंद करने के लिए @Neil और @TuukkaX को धन्यवाद और 9 बाइट को बंद करने के लिए @ETHproductions और ल्यूक को।

a=>b=>[a+'^'+b,(a+'*').repeat(b-1)+a,(a+'+').repeat(Math.pow(a,b-1)-1)+a,1+'+1'.repeat(Math.pow(a,b)-1)]

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


आप करी सिंटैक्स का उपयोग कर सकते हैं a=>b=>:।
5

क्यों नहीं '=1'+'+1'.repeat?
नील

आप आगे बाइट के साथ बचा सकते हैं .join:a=>b=>[a+'^'+b,(a+'*').repeat(b-1)+a,(a+'+').repeat(Math.pow(a,b-1)-1)+a,1+'+1'.repeat(Math.pow(a,b)-1)].join`=`
ETHproductions

यदि आप व्याख्या करते हैं "जब तक वे क्रम में हैं और स्पष्ट रूप से अलग हैं, तब तक चार भाव किसी भी उचित तरीके से आउटपुट हो सकते हैं।" यह भी शामिल करने के लिए चार अलग-अलग तत्वों के साथ एक सरणी लौटाने, आप भी जरूरत नहीं है .join()...
ल्यूक

1

जेली , 29 बाइट्स

*⁹’,¤;@
,`;1ẋ"ç
,W;çj"“^*++”Y

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

कैसे?

*⁹’,¤;@ - Link 1, get list lengths: a, b
    ¤   - nilad followed by link(s) as a nilad
 ⁹      - right: b
  ’     - decrement: b-1
   ,    - pair with right: [b-1, b]
*       - exponentiate: [a^(b-1), a^b]
     ;@ - concatenate with reversed arguments: [b, a^(b-1), a^b]

,`;1ẋ"ç - Link 2, create lists: a, b
 `      - monad from dyad by repeating argument
,       - pair: [a, a]
  ;1    - concatenate 1: [a, a, 1]
      ç - last link (1) as a dyad: [b, a^(b-1), a^b]
     "  - zip with the dyad...
    ẋ   -     repeat list:  [[a, a, ..., a], [a, a, ..., a], [1, 1, ..., 1]]
                                <- b ->       <- a^(b-1) ->     <- a^b ->

,W;çj"“^*++”Y - Main link: a, b
,             - pair: [a, b]
 W            - wrap: [[a, b]]
   ç          - last link (2) as a dyad: [[a, a, ..., a], [a, a, ..., a], [1, 1, ..., 1]]
  ;           - concatenate [[a, b], [a, a, ..., a], [a, a, ..., a], [1, 1, ..., 1]]
      “^*++”  - list of characters: ['^', '*', '+', '+']
     "        - zip with the dyad...
    j         -     join: ["a^b", "a*a*...*a", "a+a+...+a", "1+1+...+1"]
            Y - join with line feeds
              - implicit print

1

टिनिस्पिल उत्तर , 178 186 बाइट्स

(load library
(d W(q((_ N S #)(i(e # 1)(c N _)(W(c S(c N _))N S(s # 1
(d ^(q((x y)(i y(*(^ x(s y 1))x)1
(d X(q((A B)(list(list A(q ^)B)(W()A(q *)B)(W()A(q +)(^ A(s B 1)))(W()1(q +)(^ A B

उत्तर का उपयोग लाइनों के अंत में निहित समापन कोष्ठक में 8 बाइट बचाता है। एक फ़ंक्शन को परिभाषित करता है Xजो दो नंबर लेता है और अभिव्यक्तियों की सूची देता है। प्रत्येक अभिव्यक्ति को छोटा किया जाता है, ऑपरेटरों के आसपास रिक्त स्थान के साथ (वास्तव में, यह संख्या और ऑपरेटर प्रतीकों की एक सूची है):

((2 ^ 3) (2 * 2 * 2) (2 + 2 + 2 + 2) (1 + 1 + 1 + 1 + 1 + 1 + 1 + 1))

उम्मीद है कि यह आउटपुट प्रारूप स्वीकार्य है। इसे ऑनलाइन आज़माएं! (कई परीक्षण मामलों के साथ)।

व्याख्या

(load library)

हमें मानक पुस्तकालय से दो कार्यों की आवश्यकता है: listऔर *

(d W(q((_ N S #)(i(e # 1)(c N _)(W(c S(c N _))N S(s # 1))))))

एक फ़ंक्शन W("बुनाई" के लिए छोटा) को परिभाषित करें जो एक संचायक _, एक संख्या N, एक प्रतीक Sऔर एक गिनती लेता है #। हम इस फ़ंक्शन का उपयोग हमारी अधिकांश अभिव्यक्तियों को उत्पन्न करने के लिए (W () 2 (q +) 3)करेंगे : उदाहरण के लिए, इसका परिणाम होगा(2 + 2 + 2)

यदि गिनती 1 है (e # 1), तो संचयकर्ता के सामने की संख्या को सही करें (c N _)और वापस लौटें। अन्यथा, पुनरावृत्ति:

  • नया संचायक है (c S(c N _)): पिछले संचयकर्ता के सामने का प्रतीक और संख्या;
  • N तथा S एक ही हैं;
  • नई गिनती है (s # 1) : गिनती - १।

संचायक मुहावरा एक पुनरावृत्ति गहराई त्रुटि को रोकने के लिए, उचित पूंछ पुनरावृत्ति प्राप्त करने के लिए आवश्यक है । (यह परिवर्तन बाइट काउंट के लिए +8 के लिए जिम्मेदार है। 13^2मामला पिछले संस्करण में काम नहीं किया था।)

(d ^(q((x y)(i y(*(^ x(s y 1))x)1))))

दुर्भाग्य से, पुस्तकालय में इस समय कोई प्रतिपादक कार्य नहीं है, इसलिए हमें एक को परिभाषित करना होगा। ^लेता है xऔर y। यदि yसत्य (नॉनज़रो) है, तो हम परिणाम y-1( (s y 1)) के साथ पुनरावृत्ति करते हैं और परिणाम को गुणा करते हैं x। अन्यथा, yशून्य है और हम लौटते हैं1

(नोट: यह फ़ंक्शन उचित पूंछ पुनरावर्तन का उपयोग नहीं करता है । मेरा मानना ​​है कि घातांक काफी छोटा होगा कि यह कोई फर्क नहीं पड़ेगा। टीआईओ पर कुछ प्रयोग ने अधिकतम 325 के अधिकतम घातांक का संकेत दिया, जो मैं तर्क दूंगा कि इस प्रश्न के लिए पर्याप्त होना चाहिए। अगर ओपी असहमत है तो मैं इसे बदल दूंगा।)

(d X(q((A B)(list(list A(q ^)B)(W()A(q *)B)(W()A(q +)(^ A(s B 1)))(W()1(q +)(^ A B))))))

अंत में, समारोह हम में रुचि रखते हैं, Xलेता है, Aऔर Bऔर रिटर्न चार मदों की एक सूची:

  • (list A(q ^)B): एक सूची युक्त A, एक शाब्दिक ^, और B;
  • (W()A(q *)B): कॉल Wकी एक सूची प्राप्त करने के लिए Bकी प्रतियां A, शाब्दिक साथ गूंथा *;
  • (W()A(q +)(^ A(s B 1))): कॉल Wकी एक सूची प्राप्त करने के लिए A^(B-1)की प्रतियां A, शाब्दिक साथ गूंथा +;
  • (W()1(q +)(^ A B)): कॉल Wकी एक सूची प्राप्त करने के लिए A^Bकी प्रतियां 1, शाब्दिक साथ गूंथा +

1

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

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

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

टिप्पणियाँ

  1. दो इनपुट को इस तरह से चुना जाना चाहिए, जो कि A**Bअधिक न हो 255। ऐसा इसलिए है क्योंकि ब्रेनफक केवल एक बाइट के मूल्यों को संग्रहीत कर सकता है।
  2. यदि एक इनपुट 9 से बड़ा है, तो अगले ASCII वर्ण का उपयोग करें। 10हो जाता है :, 11हो जाता है ;आदि इसका कारण यह है Brainfuck केवल एक बाइट के आदानों ले सकते हैं।

व्याख्या

यहाँ मेरा कुछ टिप्पणी कोड है। मैं इस पर बाद में विस्तार करूंगा।

,.                      print A
> +++++ +++
[
    > +++++ +++++ ++    set up 96 (for ^ sign)
    > +++++ +++         set up 64 (for = sign)
    > +++++             set up 40 (for plus and * sign)
    <<< -
]
> --.                   print ^
< ,.                    print B
>
> ---.                  print =
> ++                    prepare *

> +++++ +++             convert B from char code
[
    <<<< ----- -
    >>>> -
]

<<<< -                  print loop "A*"
[
    < .
    >>>> .
    >> +
    <<<<< -
]
< .                     print final A
>>> .                   print =


<< +++++ +++            convert A from char code
[
    < ----- -
    > -
]

<
[                       duplicate A
    > +
    >>>> +
    <<<<< -
]

>>>>>                   exponentiation (A**(B minus 1))
>>+<[->[-<<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<<]>[-<+>]<<]<

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

>[<+>-]                 move

<<<<< <<< +++++ +++     convert A to char code
[
    > +++++ +
    < -
]

>>>> +                  convert * to plus sign
>> -                    print loop "A plus"
[
    <<<< < .
    >>> .
    >> -
]
<<<<< .                 print final A
>> .                    print =

>>>>                    move
[
    < +
    > -
]

                        multiply A**(B minus 1) by A
<<[->[->+>+<<]>>[-<<+>>]<<<]        

>>> +++++ +++           generate the char code for 1 (49)
[                           generate 8*6 = 48
    <<< +++++ +
    >>> -
]
<<< +                       add one

>> -                    print loop "1 plus"
[
    << .
    < .
    >>> -
]
<< .                    print final 1

0

पायथ, 32 31 बाइट्स

AQjMC,"^*++"[Q*]GH*^GtH]G*]1^GH

इनपुट के रूप में [2,10], आउटपुट के रूप में लेता है["2^10", "2*2*2*2*2*2*2*2*2*2", "2+2+...

स्पष्टीकरण:

Q = eval(input())                     #  
G, H = Q                              #  AQ
operators = "^*++"                    #        "^*++"
operands = [Q,                        #              [Q
  [G]*H,                              #                *]GH
  G**(H-1)*[G]                        #                    *^GtH]G
  [1]*G**H                            #                           *]1^GH
]                                     #
map( lambda d: join(*d),              #    jM
     zip(operators, operands)         #      C,...
)                                     #

इसे यहाँ आज़माएँ।



0

आर, 147 बाइट्स

w=switch;function(A,B)for(s in letters[1:4]){cat(rep(w(s,d=1,a=c(A,B),b=,c=A),w(s,a=1,b=B,c=A^B/A,d=A^B)),sep=w(s,a="^",b="*",d=,c="+"));cat("\n")}

बेनामी फ़ंक्शन जो आवश्यक, अच्छी तरह से आउटपुट, लाइन-बाय-लाइन को आउटपुट करता है। यह समाधान switchफ़ंक्शन का व्यापक उपयोग करता है।

switchसमारोह (, यहाँ एक अभिव्यक्ति लेता है s) है कि एक नंबर या एक चरित्र स्ट्रिंग के लिए मूल्यांकन करता है (देखें ?switch), alernatives करने के लिए इसी के बाद s। यदि कोई विकल्प गायब है (उदाहरण के लिए switch(s, a=, b= "PPCG"), अगले गैर-लापता विकल्प का मूल्यांकन किया जाता है (उदाहरण में, s="a"आउटपुट "PPCG")।

repकार्यों को दोहराता (प्रतिकृति, वास्तव में) ने अपने पहले तर्क समय की संख्या दूसरा तर्क में संकेत दिया।

cat, वस्तुओं को खत्म करने के लिए, विभाजक और प्रिंट करता है, एक विभाजक के साथ जिसे sep =तर्क के साथ चुना जा सकता है। दूसरा catकार्य लाइन-ब्रेक के लिए यहां है।

Ungolfed:

f=function(A,B)
    for(s in letters[1:4]){
        cat(
            rep(switch(s, d = 1, a = c(A,B), b =, c = A),
            switch(s, a = 1, b = B, c = A^B/A, d = A^B)),
        sep=switch(s,a = "^", b = "*", d =, c = "+"))
    cat("\n")
}



0

कार्डिनल 202 बाइट्स

%:.~:#"^"."=">v
x            "~
             *.
     >~=088v "~
     v88+88< ?
     8       -
     8      x#<
     v     < 0
     >   t / <
v~.~ <#"="?<
-
#?"+"^t
0
V
#?"="  >"1"-v
/ {   <^"+"?<
>     ^

केवल उन संख्याओं के लिए काम करेगा जहां कार्डिनल में संकेत द्वारा आयोजित किए जा सकने वाले मूल्यों में सीमाओं के कारण गणना मूल्य <256 है

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

स्पष्टीकरण:

चरण 1

%:.~:#"^"."="

इनपुट और आउटपुट के रूप में दो नंबर a और b प्राप्त करता है जैसा कि "a ^ b ="
एक पॉइंटर सक्रिय मान के साथ पास करता है a और निष्क्रिय मान b

चरण 2

        >v
        "~
        *.
>~=088v "~
v88+88< ?
8       -
8      x#<
v     < 0
>   t / <

सक्रिय मान a और निष्क्रिय मान b प्रिंटिंग के साथ एक पॉइंटर प्राप्त करता है "a + ((* * a") (b-1) बार
अगले भाग में सक्रिय मान ^ (b-1) के साथ एक पॉइंटर पास करता है

चरण 3

v~.~ <#"="?<
-
#?"+"^t
0
V
#?"="  
/ {   <
>     ^ 

^ (B-1) और आउटपुट "=" a "(" + a ") बार-बार (a ^ (b-1) -1) बार +" = "
मान के साथ एक पॉइंटर प्राप्त करता है। अगले भाग के लिए

चरण 4

>"1"-v
^"+"?<

एक सूचक के साथ एक मान प्राप्त करता है ^ b और प्रिंट करता है "1" + ("+ 1") ने ^ b-1 को दोहराया


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