ঘনিষ্ঠ অঙ্কের বৃদ্ধি এবং তার বাইরে!


18

চ্যালেঞ্জ

প্রদত্ত একটি বেস এবং একটি সূচক , আউটপুট শব্দ , নীচে সংজ্ঞায়িত হয়েছে:1<b<10t1xt

  • x1=1110
  • xi+1 রূপান্তর দ্বারা প্রাপ্ত হয় বেস এবং তারপর বেস তার সংখ্যা reinterpretingxib10
  • আউটপুট বেসে হওয়া উচিত10

বেস 5, পদ 5 এর পদচারণা হবে:

  • x1=1110
  • 1110=215 তাই ।x2=2110
  • 2110=415 তাই ।x3=4110
  • 4110=1315 তাই ।x4=13110
  • 13110=10115 তাই ।x5=101110
  • আমরা স্ট্রিং "1011"বা পূর্ণসংখ্যা আউটপুট করি 1011

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

দ্রষ্টব্য: এগুলি একটি সূচকযুক্ত

base 2, term 5 --> 1100100111110011010011100010101000011000101001000100011011011010001111011100010000001000010011100011
base 9, term 70 --> 1202167480887
base 8, term 30 --> 4752456545
base 4, term 13 --> 2123103032103331200023103133211223233322200311320011300320320100312133201303003031113021311200322222332322220300332231220022313031200030333132302313012110123012123010113230200132021023101313232010013102221103203031121232122020233303303303211132313213012222331020133

মন্তব্য

  • স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়
  • যে কোনও ডিফল্ট আই / ও পদ্ধতি অনুমোদিত
  • আপনি বিভিন্ন সূচী ব্যবহার করতে পারেন (যেমন ২0 ইন্ডেক্স, 1-ইন্ডেক্স 2-ইন্ডেক্স, ইত্যাদি) জন্যt
  • আপনি প্রথম শর্ত আউটপুট করতে পারেন ।t
  • এটি , সংক্ষিপ্ততম কোডটি সেই ভাষার জন্য জয়ী হয়

1
আমাদের কি বড় সংখ্যা বা কেবল 2 ^ 31 - 1 পর্যন্ত সংখ্যাগুলি সমর্থন করতে হবে?
অজ্ঞতার

1
@ এম্বোডিমেন্টফ অজানা আপনার ভাষার সর্বাধিক (যদিও স্ট্যান্ডার্ড লুফোলটি মনে রাখবেন!)
মিল্কি ওয়ায়ে 90

10 / বেসগুলি অন্তর্ভুক্ত করে এমন কোন চ্যালেঞ্জ রয়েছে কি? ( 11সেক্ষেত্রে আপনি বারবার ব্যাখ্যা করবেন যেন এটি বেসে রয়েছে bএবং এটিকে আবার বেস 10 এ রূপান্তরিত করবেন)
নীল

@ নীল আমি 10 এর চেয়ে বেশি বেসগুলিকে অন্তর্ভুক্ত করি নি (উদাহরণস্বরূপ) 4aবেস -10 এ কোনও বৈধ সংখ্যা হবে না
মিল্কিওয়ে 90

আপনি পাবেন না 4a, যেহেতু আপনি বেস 10 সংখ্যাকে বেস হিসাবে ব্যাখ্যা করছেন bএবং প্রতিবার বেস 10 তে রূপান্তর করছেন (অর্থাত্ এই প্রশ্নটি থেকে অন্যভাবে)।
নিল

উত্তর:


6

জাভাস্ক্রিপ্ট (নোড.জেএস) , 40 বাইট

এই সংস্করণে 5 বাইট এবং বিগআইএন্ট সংস্করণে 2 বাইট সংরক্ষণ করার জন্য @ নীলকে ধন্যবাদ জানাই

ইনপুট হিসাবে নেয় (t)(base), যেখানে 1-সূচকযুক্ত।t

n=>g=(b,x=11)=>--n?g(b,+x.toString(b)):x

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


জাভাস্ক্রিপ্ট (নোড.জেএস) , 48 বাইট (বিগইন্ট সংস্করণ)

ইনপুট হিসাবে নেয় (t)(base), যেখানে 1-সূচকযুক্ত। একটি বিগিয়ান্ট দেয়।t

n=>g=(b,x=11n)=>--n?g(b,BigInt(x.toString(b))):x

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


আপনার কি evalপ্রথম সংস্করণে দরকার? +5 বাইট সাশ্রয় করবে ...
নিল

এবং BigIntদ্বিতীয় সংস্করণে দুটি বাইট সংরক্ষণ করে, কারণ আপনার nস্ট্রিংয়ে যোগ করার দরকার নেই ।
নীল

(b,t,x=11)=>--t?f(b,t,+x.toString(b)):x1 টি খাটো খাটো
Qwertiy

@ কিওয়ার্তি এটি আসলে 1 বাইট বেশি দীর্ঘ, কারণ আমাদের প্রিপেন্ড করতে হবে f=(যেহেতু ফাংশনটি নিজেই রেফারেন্স করছে)।
Arnauld

@ আরনাউল্ড, উফ! তারপরে এটি একটি n=>b=>g=(x=11n)=>--n?g(BigInt(x.toString(b))):x:) যদি কল f(t)(b)()অনুমোদিত হয়।
কিওয়ারটি

5

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

>IF¹B

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

ব্যাখ্যা

>       # increment <base>
 IF     # <term> times do:
   ¹B   # convert from base-10 to base-<base>

দ্রষ্টব্য যে 11 এ স্পষ্টভাবে ক্রম শুরু করার দরকার নেই । অতিরিক্ত পুনরাবৃত্তি
শুরু করা base+1এবং করা প্রথম পুনরাবৃত্তির 11 প্রদানের ফলস্বরূপ ।


3

জাপট , 9 বাইট

ÆB=sV n
B

চেষ্টা করে দেখুন

(Two inputs, U and V)
Æ            Range [0..U)
 B=          For each, set B (B is preinitialized to 11) to 
   sV          B's previous value converted to base-V
   n           and back to base-10
B            Print out B's final value

এটি কখনই প্রথম পদের আউটপুট দিতে সক্ষম হবে না, তা হবে?
শেগি

@ শেগি দুটি বাইটের মূল্য নির্ধারণ করেছেন
অজ্ঞতার

খুব ভালভাবে সংরক্ষণ করা হয়েছে :) নিজেই তা করার চিন্তা করতেন না।
শেগি


2

রেটিনা , 67 বাইট

.+,(\d+)
11,$1*
"$+"{`^\d+
*
)+`(?=_.*,(_+))(\1)*(_*)
$#2*_$.3
,_+

এটি অনলাইন চেষ্টা করুন! কমা-বিচ্ছিন্ন ইনপুট t নেয় (0-সূচীযুক্ত) এবং b । এটির সমস্ত গণনা কি অানারিতে এত বেশি সংখ্যক সময়ের জন্য বেরিয়ে আসে। ব্যাখ্যা:

.+,(\d+)
11,$1*

x0=11b

"$+"{`

t

^\d+
*

xi

)+`(?=_.*,(_+))(\1)*(_*)
$#2*_$.3

b

,_+

b



2

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

অপ্রয়োজনীয় স্পেস spotting দ্বারা 10 বাইট সরানোর জন্য MilkyWay90 ক্রেডিট ক্রেডিট অন্য অপ্রয়োজনীয় স্থান থেকে অন্য বাইট জন্য অজ্ঞতা প্রতিমূর্তি করতে

Golfed

(defn f([b t](f b t 11))([b t v](if(= t 1)v(f b(dec t)(read-string(.(new BigInteger(str v))(toString b)))))))

Ungolfed

(defn f
  ([base term] (f base term 11))
  ([base term value] (if (= term 1)
                      value
                      (f base (dec term) (read-string (. (new BigInteger (str value)) (toString base)))))))

আমি মনে করি মূল স্থান বাইটগুলি সংরক্ষণ করা যেতে পারে ... এর পুনরায় প্রকাশের জন্য ? যে যাই হোক না কেন বলা হবে। বিশেষ করে:

(read-string (. (new BigInteger (str value)) (toString base)))

আপনার কি সেই জায়গাগুলি দরকার? আপনি কি স্থানগুলি দূর করতে পারবেন?
মিল্কিওয়ে 90

এমনকি আমার কাছে এমন জায়গাগুলি সরাতে ঘটেনি যেখানে তারা সিন্ট্যাক্টিক্যালি ডিফারেন্টযোগ্য জিনিসগুলি পৃথক করে; দেখে মনে হচ্ছে ক্লোজুর আমার চেয়ে কিছুটা বেশি অনুমোদিত। ধন্যবাদ!
ব্যবহারকারী 70585

এখনও একটি অপ্রয়োজনীয় স্থান আছে(if (= t 1)
অজ্ঞতার প্রতিমূর্তি

হুফ, ভাল ক্যাচ 👍
ব্যবহারকারী 70585



1

জেলি , 8 7 বাইট

‘b³Ḍ$⁴¡

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

btb+1

ব্যাখ্যা

‘b³Ḍ$⁴¡ | Main link: first argument b, second argument t
‘       | b + 1
    $⁴¡ | Repeat the following t times
 b³     | Convert to base b
   Ḍ    | Convert back from decimal to integer

আমরা যারা তাত্ক্ষণিকভাবে পরমাণু চিনতে পারি না তাদের জন্য ব্যাখ্যা?
মিল্কিওয়ে 90



1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 87 বাইট

n=>m=>{int g=11;for(var s="";m-->0;g=int.Parse(s),s="")for(;g>0;g/=n)s=g%n+s;return g;}

@ কেভিন ক্রুজসেনকে 5 টি বাইট সংরক্ষণ করা হয়েছে

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


do-whileনিয়মিত ফর-লুপে পরিবর্তন করে 87 বাইট
কেভিন ক্রুইজসেন

1

ব্রেনফাক , 270 বাইট

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

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

0-ইন্ডেক্স। পুনরাবৃত্তির সংখ্যা সর্বাধিক 255 বলে ধরে নেওয়া হয়।

ব্যাখ্যা

টেপটি নীচে রেখে দেওয়া হয়েছে:

num_iterations 0 0 base digit0 0 digit1 0 digit2 ...

প্রতিটি ডিজিট আসলে "আরও অংক না" এর জন্য 0 সংরক্ষিত, সেই অঙ্কের প্লাস 1 হিসাবে সংরক্ষণ করা হয়। বেস রূপান্তরকালে, বর্তমানে কাজ করা অঙ্কগুলি একটি কক্ষকে ডানে সরানো হয় এবং বেসটি বর্তমান কার্যক্ষেত্রের বামে সরানো হয়।

++<<++              Initialize initial value 11
<,+++<-[----->-<]   Get single digit as base and subtract 48 to get actual number
<,,[<-----[->++++++++++<]++>[-<+>],]   Read multiple digits as number of iterations
<                   Go to cell containing number of iterations

[                   For each iteration:
  >>>>>>              Go to tens digit cell
  [<<<[->>+<<]>>>>>]  Move base to just before most significant digit
  <<                  Return to most significant digit

  [                   For each digit in number starting at the left (right on tape):
    [>+<-]            Move digit one cell to right (to tell where current digit is later)
    >>[-[<++++++++++>-]>+>]  Multiply each other digit by 10 and move left
    <[<<]>>           Return to base
    [-<<+>>>+<]       Copy base to just before digit (again) and just before next digit to right (left on tape)
    >>[               For each digit at least as significant as this digit:

      -[<-[>>+>>]>>[+[-<<+>>]  Compute "digit" divmod base
      >[-<]<[>]>++    While computing this: add quotient to next digit; initialize digit to "1" (0) first if "0" (null)
      >>>]<<<<<-]     End of divmod routine

      +>[-<+<+>>]     Leave modulo as current digit and restore base
      <<[->>+<<]      Move base to next position
      >>>
    ]

    <[-]<             Delete (now useless) copy of base
    [[-<+>]<<]<       Move digits back to original cells
  ]                   Repeat entire routine for each digit

  <[->>+<<]           Move base to original position
  <-                  Decrement iteration count
]

>>>>[>>]<<[>-[-----<+>]<----.<<]  Output by adding 47 to each cell containing a digit









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