সম্প্রসারণ বিস্তৃতি


31

একের চেয়ে বড় দুটি সংখ্যক, A এবং B দেওয়া হয়েছে, এই ক্রমে চারটি গাণিতিক অভিব্যক্তি প্রকাশ করুন:

  1. সরল অভিব্যক্তি A ^ B (A থেকে পাওয়ার বি)। উদাহরণস্বরূপ যদি A = 2 এবং B = 3,2^3 ,।

  2. এ এর বারবার গুণনের ক্ষেত্রে A A B এর বিস্তৃতি 2*2*2

  3. এ এর পুনরাবৃত্ত সংযোজনগুলির ক্ষেত্রে A ^ B এর প্রসারন eg 2+2+2+2

  4. 1 এর পুনরাবৃত্ত সংযোজনের ক্ষেত্রে A ^ B এর প্রসার 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

ম্যাথ অপারেটরদের পাশাপাশি স্পেসগুলি sertedোকানো যেতে পারে

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

যখন A = ​​2 এবং B = 3 হয় তখন সমানভাবে বৈধ আউটপুট হবে।

আপনি বিকল্পগুলির জন্য ^, *এবং এর চিহ্নগুলি ব্যবহার করতে পারেন +তবে কেবলমাত্র যদি নতুন চিহ্নগুলি আপনার ভাষার জন্য বেশি মূর্তিমান হয় (যেমন পাইথনের **পরিবর্তে ^)।

আপনি ধরে নিতে পারেন যে A এবং B পর্যাপ্ত পরিমাণে ছোট যাতে A ^ B আপনার ভাষার ডিফল্ট পূর্ণসংখ্যা টাইপকে উপচে না ফেলে (এই ধরণের একটি যুক্তিসঙ্গত সর্বাধিক, 255 কমপক্ষে থাকে)।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

পরীক্ষার মামলা

প্রতি লাইনে একটি আউটপুট। প্রথম প্রকাশটি সর্বদা A ^ B হওয়ায় ইনপুটটি অনুমান করা যায়।

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

@ জোনাথন অ্যালান হ্যাঁ, আপনি দেখেছি সমস্ত টাইপস পেয়েছেন got সুন্দর কাজ! আপনি কিছুই পান না।
আর কাপ,

2
আপনি আমার কাছ থেকে ধন্যবাদ পাবেন @ জোনাথন অ্যালান। আর কাপে আমার 3 এর সমস্ত সম্পর্কে চিন্তিত হয়েছিলেন
ক্যালভিনের শখ

ঠিক আছে, (ভাগ্যক্রমে) কোনওর =বামে কোনও ভুল জায়গায় স্থান দেওয়া হয়নি 3
আর কাপ,

5
দয়া করে পরের বার "নথের আপ তীর চিহ্ন চিহ্নিত করুন" করবেন না
ম্যাথু রোহ

1
আমরা যদি একক স্ট্রিং হিসাবে STDIN থেকে ইনপুট পড়ি, তবে 2^3একটি বৈধ ইনপুট ফর্ম্যাট? অথবা এটিতে স্থান / কমা / লাইনফিড-বিচ্ছিন্ন বা অন্য কিছু হতে হবে?
মার্টিন ইন্ডার

উত্তর:


11

পাইথন 3.6 , 88 74 বাইট

-2 বাইট দাদাকে ধন্যবাদ (ব্যবহার করুন ~)
-5 বাইট ইরানকে ধন্যবাদ (পাইথন ৩.6 থেকে এফ-স্ট্রিং ব্যবহার করুন)

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

অনলাইন আদর্শ কেউ?

কিভাবে?

এটি একটি অনামী ফাংশন যা দুটি পূর্ণসংখ্যার ইনপুট aএবং bপ্রতিটি বৃহত্তর 0(যদিও স্পেসিফিকেশন কেবল তার চেয়ে বড় তাদের জন্য হয়1 ) গ্রহণ করে।

পাইথন ৩.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স্ট্রিং, যার মধ্যে সব একসাথে ঘনিভূত পরার হিসাবে।

দ্য aএবং bঅভিব্যক্তির উপস্থাপনা মূল্যায়ন aএবংb যথাক্রমে।

f'*{a}'এবং f'+{a}'পালাক্রমে এই এক্সপ্রেশন ভিতরে F-স্ট্রিং, যা নির্ণয় হয়a একটি নেতৃস্থানীয় সঙ্গে '*'এবং একটি নেতৃস্থানীয় '+'যথাক্রমে

প্রয়োজনীয় সংখ্যক তৈরি করতে aজন্য গুলি এবং অপারেশন *এবং +অংশ নোট থাকবে যে b aগুলি গুণ করা এবং a**(b-1) aএকসঙ্গে যোগ করা s। প্রতিটি ক্ষেত্রে তার জন্য as এর সংখ্যার চেয়ে কম অপারেটর সাইন প্রয়োজন । সুতরাং আমরা এফ-স্ট্রিংগুলি পুনরায় f'*{a}এবং f'+{a}'(অপারেটিং *) অপারেটররা যতবার ব্যবহার করতে পারি এবং প্রতিটিকে একটি একক দিয়ে প্রেন্ডেন্ড করতে পারি a(b-1)হয় ~-bএবং (a**(b-1))-1হয় ~-a**~-b

একই জন্য সম্পন্ন করা হয় 1ব্যবহার করে গুলি (a**b)-1হচ্ছে ~-**b, কিন্তু আমরা F-স্ট্রিং ওভারহেড প্রয়োজন হবে না যেহেতু 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 বাইট

ETHProductions ধন্যবাদ 14 বাইট সংরক্ষণ করা

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 (A ^ B)

          . . . . .
          . . . . .
          . . . . .
          . . . . .
          . . . . .
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 দেখায় যেখানে আইপিটি শেষ হবে যদি এটি প্রথম লুপ (উত্তরের দিকে নির্দেশ করা হয়) এবং দ্বিতীয় নম্বরটি দেখায় যেখানে আইপিটি শেষ হবে যেখানে এটি দ্বিতীয় (বা তৃতীয়) লুপ (পূর্বদিকে নির্দেশ করা) হবে।

          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এবং বিপরীতটিও ধারণ করে too কিউবটি দেখতে দেখতে আইপি এস দিয়ে শুরু হয় এবং পূর্ব দিকে নির্দেশ করছে। এটি যদি দ্বিতীয় লুপ হয় তবে আইপি শেষ হবে 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 ^ (বি -1)))

দুঃখের বিষয়, কিউবিক্সের পাওয়ার অপারেটর নেই, তাই আমাদের আরও একটি লুপ দরকার। তবে, আমাদের প্রথমে স্ট্যাকটি পরিষ্কার করা দরকার, যা এখন রয়েছে contains[B, A, *, +, -1]

পরিষ্কার আপ

এখানে আবার কিউব। যথারীতি, আইপি শুরু হয় এস (উত্তর দিকে নির্দেশ করে), এবং ইয়ে শেষ হয়, পশ্চিম দিকে নির্দেশ করে।

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

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

A Calc (বি -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ডানদিকে যাচ্ছে ends

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

নির্দেশাবলী কার্যকর:

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

স্ট্যাকটি এখন দেখতে দেখতে [A^B, +, 1], এবং আইপি প্রিন্ট লুপটি প্রবেশ করতে চলেছে, তাই আমরা শেষ করেছি।


2
হ্যাঁ দয়া করে একটি ব্যাখ্যা দিন, কমপক্ষে একটি নিরবচ্ছিন্ন কিউব নেট সংস্করণ করুন
ধ্বংসাত্মক লেবু

আমি ব্যাখ্যাটি সম্পূর্ণ করেছি
লুক

এই ভাষাটি কে তৈরি করেছে ... এটি হেক্স-যন্ত্রণার মতো তবে কিউব-যন্ত্রণার মতো। কেউ 3 ডি হেক্স-যন্ত্রণা তৈরি করে।
ম্যাজিক অক্টোপাস উরান

1
@ কারাসোকমপুটিং এবং কি পলিহেডন একটি 3 ডি হেক্স, এইচএম হবে?
mbomb007

1
আপনি সম্ভবত এমন একটি ভাষা তৈরি করতে পারেন যা টেসলেলেটেড টেট্রহেড্রনগুলির 3 ডি কাঠামোর উপরে চলে।
mbomb007

7

এমএটিএল , 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

জাভাস্ক্রিপ্ট (ES7), 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

05 এ বি 1 ই , 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
কারণ আমি. : পি
Okx

কোন কারণে আমি আপনার উত্তরটি দেখেছি এবং "৮০ বাইট" পড়েছি এবং নিজেকে ভেবেছিলাম, "বীট করা সহজ", তারপরে আমি ৮০ টার লক্ষ্য রেখে আমার তৈরি করেছি ... তারপরে আবার, আমার মনে হয় কিছু জিনিস খনিকে সংক্ষিপ্ত করে করা উচিত so তোমার হা হা
ম্যাজিক অক্টোপাস আরন

¹²«¹²×¹¹²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 35 34 বাইট

কোডের 33 বাইট, -nপতাকাটির জন্য +1 ।

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

ক এবং কমান্ড-লাইন আর্গুমেন্ট হিসাবে গ্রহণ করে; প্রতি লাইনে একটি এক্সপ্রেশন মুদ্রণ করে। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

Ya**bসেটআপ কোড: ভেরিয়েবলের a**bমধ্যে ইয়াঙ্ক y। এর পরে, []আমাদের চারটি অভিব্যক্তি সমন্বিত একটি তালিকা রয়েছে (ইন ):

  • gJ'^: সম্পূর্ণ আর gতালিকা নিন (এখানে, একটি তালিকা রয়েছে aএবং b) এবং Jএটিতে চালিত^
  • aRLbJ'*: এর কপি সহ একটি তালিকা তৈরি করতে Rইপিট আইএসটি ব্যবহার করুন , তারপরে এটি চালিয়ে যানLbaJ*
  • aRLy/aJ'+: এর (যেমন ) অনুলিপি RLসহ একটি তালিকা তৈরি করতে ব্যবহার করুন , তারপরে এটি চালিয়ে যানy/aa**(b-1)aJ+
  • 1XyJ'+: 1, স্ট্রিং-দ্বারা গুণিত y, Jমেশানো+

-nপতাকাটি পৃথককারীকে ধন্যবাদ হিসাবে তালিকাটি নতুন লাইনে মুদ্রিত হয়েছে ।


1

জাভাস্ক্রিপ্ট 115 113 104 বাইট

9 বাইট বন্ধ করে গল্ফ করার জন্য @ নীল এবং @ টুক্কাএক্সকে একটি করে বাইট বন্ধ করে দেওয়ার জন্য এবং @ETH প্রোডাকশনস এবং লুককে ধন্যবাদ

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=>
Yytsi

কেন হবে না '=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`=`
ETH প্রোডাকশনগুলি

আপনি যদি ব্যাখ্যা করেন তবে "চারটি এক্সপ্রেশনটি যথাযথভাবে যথাযথভাবে সুস্পষ্টভাবে যতক্ষণ পর্যন্ত যুক্তিসঙ্গতভাবে আউটপুট হতে পারে" " চারটি ভিন্ন উপাদানের সাথে অ্যারে ফিরিয়ে নেওয়াও অন্তর্ভুক্ত করার জন্য, আপনার এমনকি এমনকি .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

tinylisp repl, 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

Repl ব্যবহার করে লাইনের শেষ প্রান্তে বন্ধিত বন্ধনীতে 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) : গণনা - 1।

পুনরাবৃত্তির গভীরতার ত্রুটি রোধ করে যথাযথ লেজ পুনরাবৃত্তি অর্জনের জন্য সঞ্চয়ের আইডিয়ামটি প্রয়োজন । (এই পরিবর্তনটি বাইট গণনাতে +8 এর জন্য দায়ী The 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

(দ্রষ্টব্য: এই ফাংশনটি যথাযথ লেজ পুনরাবৃত্তি ব্যবহার করে না I আমি ধরে নিই যে এক্সটেনশনগুলি যথেষ্ট পরিমাণে কম হবে তবে এটি বিবেচ্য নয় T টিআইওর উপর কিছু পরীক্ষা-নিরীক্ষা সর্বাধিক ৩২৫ এর ব্যয়কারীকে ইঙ্গিত করেছিল, যার পক্ষে আমি যুক্তি দেব যে এই প্রশ্নের পক্ষে যথেষ্ট হওয়া উচিত। যদি ওপি একমত না হয় তবে আমি এটি পরিবর্তন করব))

(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হয়ে যায় ;ইত্যাদি কারণ ব্রেইনফাক কেবল একটি বাইটের ইনপুট নিতে পারে।

ব্যাখ্যা

এখানে আমার কিছুটা মন্তব্য কোড। আমি এই পরে প্রসারিত করব।

,.                      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 এবং নিষ্ক্রিয় মান বি দিয়ে একটি পয়েন্টার পাস করে

ধাপ ২

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

"একটি" + ("* এ") (বি -1) বার সক্রিয় মান এবং নিষ্ক্রিয় মান বি মুদ্রণের সাথে একটি পয়েন্টার পান
সঙ্গে একটি পয়েন্টার প্রাপ্ত করে পরবর্তী অংশে সক্রিয় মান a active (বি -1) সহ একটি পয়েন্টার পাস করে

ধাপ 3

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

একটি ^ (b-1) এবং আউটপুট "= a" + ("+ a") এর পুনরাবৃত্তি (a ^ (b-1) -1) বারের
সাথে একটি পয়েন্টার প্রাপ্ত করে + "=" a ^ b মান সহ একটি পয়েন্টার পাস করে পরের অংশে

পদক্ষেপ 4

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

A ^ b মান সহ একটি পয়েন্টার পান এবং "1" + ("+ 1") মুদ্রণ করে একটি ^ বি -1 বার পুনরাবৃত্তি করেন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.