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


18

চ্যালেঞ্জ

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

  • 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.