টিটারেশন মুদ্রণ করুন


16

টিট্রেশন, হিসাবে প্রতিনিধিত্ব করা হয় a^^b, পুনরাবৃত্তি ক্ষুদ্রাকর্ষণ। উদাহরণস্বরূপ, 2^^3হয় 2^2^2যা 16 হয়।

প্রদত্ত দুটি সংখ্যার একটি এবং , মুদ্রণ a^^b

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

1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.

বৈজ্ঞানিক স্বরলিপি গ্রহণযোগ্য।

মনে রাখবেন, এটি , তাই সর্বনিম্ন সংখ্যক বাইট বিজয়ী কোড।


2
কি ধরণের সংখ্যা? ধনাত্মক পূর্ণসংখ্যা?
xnor


9
ক্ষয়ক্ষতি অ-সাহসী হয়। আপনার বি> 2 সহ কমপক্ষে একটি পরীক্ষার ক্যাড অন্তর্ভুক্ত করা উচিত ।
ডেনিস

@ ডেনিস3 3 -> 7625597484987
গ্যাব্রিয়েল বেনামি

1
@ রোসলুপ নং, 3^3^3স্বয়ংক্রিয়ভাবে মানে 3^(3^(3))En.wikedia.org/wiki/Order_of_operation দেখুন , যেখানে এতে বলা হয়েছে "স্ট্যাকড এক্সপোশনগুলি উপরের নিচ থেকে, অর্থাৎ ডান থেকে বামে প্রয়োগ করা হয়।"
অলিভার নি

উত্তর:



10

জে, 5 4 বাইট

^/@#

এটি আক্ষরিক অর্থে সংক্ষিপ্তকরণের সংজ্ঞা।

ব্যবহার

   f =: ^/@#
   3 f 2
16
   2 f 1
1
   2 f 2
4
   2 f 5
3125
   4 f 2
65536

ব্যাখ্যা

^/@#  Input: b (LHS), a (RHS)
   #  Make b copies of a
^/@   Reduce from right-to-left using exponentation

ঠিক আছে ^^ বি বিপরীত বি ^^ এ উপরে ...
রোজলুপি

@RosLuP হ্যাঁ, J এবং APL থেকে ডান-থেকে-বাম মূল্যায়ন, তাই 2 ^ 2 ^ 2হিসাবে মূল্যায়ন করা হয় 2 ^ (2 ^ 2)এবং তাই
মাইল

9

হাস্কেল, 19 বাইট

a%b=iterate(a^)1!!b

1তালিকা উত্পাদন করতে শুরু করে সূক্ষ্মভাবে চিহ্নিত করা হয় [1,a,a^a,a^a^a,...], তারপরে b'তম উপাদানটি নিন।

একই দৈর্ঘ্য:

a%0=1;a%b=a^a%(b-1)

বিন্দু মুক্ত দীর্ঘ:

(!!).(`iterate`1).(^)


8

পাইথন, 30 বাইট

f=lambda a,b:b<1or a**f(a,b-1)

পুনরাবৃত্ত সংজ্ঞা ব্যবহার করে।


5

পাইথন, 33 বাইট

lambda a,b:eval('**'.join([a]*b))

এটি একটি নামহীন ফাংশনকে মূল্যায়ন করে যা কোনও সংখ্যার এবং সংখ্যার স্ট্রিং প্রতিনিধিত্ব করে। উদাহরণ স্বরূপ:

>>> f=lambda a,b:eval('**'.join([a]*b))
>>> f('5',2)
3125
>>>

যদি এই জাতীয় ইনপুট ফর্ম্যাটগুলি মিশ্রণ না করে গণনা না করে তবে এই 38 বাইট সংস্করণটিও রয়েছে:

lambda a,b:eval('**'.join([str(a)]*b))

2
কি দুর্দান্ত পদ্ধতি!
xnor


3

পার্ল, 19 বাইট

এর জন্য +1 অন্তর্ভুক্ত -p

STDIN এ পৃথক লাইনে নম্বর দিন

tetration.pl
2
3
^D

tetration.pl

#!/usr/bin/perl -p
$_=eval"$_**"x<>.1

3

আর, 39 বাইট

পুনরাবৃত্তি ফাংশন:

f=function(a,b)ifelse(b>0,a^f(a,b-1),1)



2

ডিসি, 35 29 বাইট:

?dsdsa?[ldla^sa1-d1<b]dsbxlap

এখানে আমার প্রথম সম্পূর্ণ প্রোগ্রাম রয়েছে dc


1

পার্ল, 40 বাইট

map{$a=$ARGV[0]**$a}0..$ARGV[1];print$a;

ফাংশনে ইনপুট হিসাবে দুটি পূর্ণসংখ্যা গ্রহণ করে এবং ফলাফলটি আউটপুট করে


1
popপেতে ব্যবহার করুন $ARGV[1], তারপরে "@ARGV"পেতে ব্যবহার করুন $ARGV[0]। ব্যবহার করুন sayপরিবর্তে print(বিকল্প -M5.010বা -Eবিনামূল্যে পাওয়া যায়)। কিন্তু এখনও, ARGVভয়ঙ্কর দীর্ঘ। একটি -pপ্রোগ্রাম প্রায় সবসময় জয়ী হয়
টন হসপেল




1

গেমমেকার ল্যাঙ্গুয়েজ, 52 50 বাইট

d=a=argument0;for(c=1;c<b;c++)d=power(a,d)return d

এটি আমার 300 তম উত্তর: ও
টিমটেক

গেমমেকার ডাব্লুটিএফ? lol
কেবল সুন্দর আর্ট

@ সিম্প্লি বিউটিফুলআর্ট হ্যাঁ, এবং আমি এটির সময়ে আমি আপনার জন্য 2 বাইট খুলে ফেলব।
টিমটেক

হাহা ভালো. =) আমার +1 করুন, যথেষ্ট সহজ মনে হচ্ছে এবং আমি এটি বুঝতে পারি।
কেবল সুন্দর আর্ট

@ সিম্প্লি বিউটিফুলআর্টের প্রশংসা
টিমটেক



0

রকেট 51 বাইট

(define ans 1)(for((i b))(set! ans(expt a ans)))ans

Ungolfed:

(define (f a b)
  (define ans 1)
  (for((i b))
    (set! ans
          (expt a ans)))
  ans)

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

(f 1 2)
(f 2 2)
(f 5 2)
(f 3 3)

আউটপুট:

1
4
3125
7625597484987

0

স্কালা, 45 বাইট

Seq.fill(_:Int)(_:Double)reduceRight math.pow

Ungolfed:

(a:Int,b:Double)=>Seq.fill(a)(b).reduceRight(math.pow)

উপাদানগুলির aসাথে গুলিগুলির একটি ক্রম তৈরি করুন bএবং math.powডান থেকে বামে প্রয়োগ করুন ।



0

জাভা 7, 71 57 বাইট

double c(int a,int b){return b>0?Math.pow(a,c(a,b-1)):1;}

অবরুদ্ধ এবং পরীক্ষার কোড:

এখানে চেষ্টা করুন।

class M{
  static double c(int a, int b){
    return b > 0
            ? Math.pow(a, c(a, b-1))
            :1;
  }

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

আউটপুট:

1.0
4.0
3125.0
7.625597484987E12


0

05 এ বি 1 ই , 4 বাইট

sF¹m

এটি অনলাইন চেষ্টা করুন!

s     # Swap input arguments.
 F    # N times...
  ¹m  # Top of the stack ^ the first argument.

3 টি বাইট যদি যুক্তিগুলি অদলবদল করা যায়:

F¹m

2 2 ফলাফল 16 নয় 4 = 2
রোজলুপ

a=5, b=2আউটপুট করা উচিত 3125। আপনি ইনপুটটি কী অর্ডার নিচ্ছেন তা আমি নিশ্চিত নই, তবে আমি 5 এবং 2 তে রেখেছি তবে আমি ভুল ফল পেয়েছি।
ফ্লিপট্যাক

0

বাশ, 50 বাইট

(বাশ পূর্ণসংখ্যার ডেটা টাইপের সীমানার মধ্যে)

Golfed

E() { echo $(($(printf "$1**%.0s" `seq 1 $2`)1));}

ব্যাখ্যা

প্রিন্টফের সাহায্যে এক্সপ্রেশন তৈরি করুন, যেমন E 2 5:

  2**2**2**2**2**1

তারপরে ফলাফলটি গণনা করতে ব্যাশ অন্তর্নির্মিত গাণিতিক সম্প্রসারণ ব্যবহার করুন

পরীক্ষা

E 1 2
1

E 2 2
4

E 5 2
3125

E 3 3
7625597484987

0

পাওয়ারশেল, 68 বাইট

filter p ($a){[math]::Pow($a,$_)};iex (,$args[0]*$args[1]-join"|p ")

এটি যে তিনটি পদ্ধতির আমি চেষ্টা করেছি তার মধ্যে এটিই সবচেয়ে সংক্ষিপ্ততর, যদিও সামগ্রিকভাবে এটি দুর্দান্ত নয়, আমি 100% নিশ্চিত যে একটি সংক্ষিপ্ত পদ্ধতির রয়েছে তবে আমি যে কয়েকটি জিনিস চেষ্টা করেছি সেগুলি আরও কিছুটা বাইট দিয়ে শেষ হয়েছিল।

PS C:\++\golf> (1,2),(2,2),(5,2),(3,3) | % {.\sqsq $_[0] $_[1]}
1
4
3125
7625597484987

দু: খজনকভাবে পাওয়ারশেলের কোনও অন্তর্নির্মিত ^বা **অপারেটর নেই, বা এটি একটি পরিষ্কার 32/33 বাইট উত্তর হবে, অর্থাত্‍

iex (,$args[0]*$args[1]-join"^")


0

এক্সিয়াম 70 বাইট

l(a,b)==(local i;i:=1;r:=a;repeat(if i>=b then break;r:=a^r;i:=i+1);r)

এই কম গল্ফ

l(a,b)==
  local i
  i:=1;r:=a;repeat(if i>=b then break;r:=a^r;i:=i+1)
  r


(3) ->  [l(1,2),l(2,2),l(5,2),l(3,3),l(4,3)]

     (3)
     [1, 4, 3125, 7625597484987,
      13407807929942597099574024998205846127479365820592393377723561443721764030_
       0735469768018742981669034276900318581864860508537538828119465699464336490_
       06084096
       ]
                                                   Type: List PositiveInteger

0

আশ্চর্য , 21 বাইট

f\@@[#0?^#1f#1-#0 1?1

পুনরাবৃত্তির পদ্ধতির ব্যবহার করে। ব্যবহার:

f\@@[#0?^#1f#1-#0 1?1];f 2 3

বোনাস সমাধান, 22 বাইট

@@:^ -#0 1(genc ^#1)#1

কিছুটা অপ্রচলিত পন্থা। ব্যবহার:

t\@@+>#[^;#1]tk -#0 1rpt#1;t 2 3

আরও পঠনযোগ্য:

@@
  iget
    - #0 1
    (genc ^#1) #1

ধরে নেওয়া a^^b:

টেটারডের একটি অসীম তালিকা তৈরি করে a; কারণ a=2, এই তালিকাটির মতো কিছু হবে [2 4 16 65536...]। তারপরে সূচকগুলি b-1কারণ ওয়ান্ডার শূন্য-সূচকযুক্ত।


0

ক্লোজার, 56 বাইট

(fn[a b](last(take a(iterate #(apply *(repeat % b))b))))

এর মধ্য দিয়ে আরও ছোট পথ আছে apply comp?

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