আপনি কি আপনার fib-abc শিখেছেন?


31

আমি সংখ্যা পছন্দ করি না তবে আমি ফিবোনাচি ক্রম পছন্দ করি like আমি নিশ্চিত আমরা কিছু কাজ করতে পারে।

অনুগ্রহ করে STDIN থেকে একটি পূর্ণসংখ্যা n পড়ুন এবং 26 ম বেসে ( পরিবর্তে ) STDOUT এ n তম ফাইবোনাচি নম্বর আউটপুট করুন ।abcdefghijklmnopqrstuvwxyz0123456789

প্রথম ফিবোনাচি নম্বরটি ২। দ্বিতীয়টি ১ টি। n তম ফিবোনাচি সংখ্যাটি এন -২২ তম এবং এন -১১ তম ফিবোনাচি সংখ্যার যোগফল।

প্রথম 32 টি fib-abc সংখ্যা:

fib(0) = a
fib(1) = b
fib(2) = b
fib(3) = c
fib(4) = d
fib(5) = f
fib(6) = i
fib(7) = n
fib(8) = v
fib(9) = bi
fib(10) = cd
fib(11) = dl
fib(12) = fo
fib(13) = iz
fib(14) = on
fib(15) = xm
fib(16) = blz
fib(17) = cjl
fib(18) = dvk
fib(19) = gev
fib(20) = kaf
fib(21) = qfa
fib(22) = baff
fib(23) = bqkf
fib(24) = cqpk
fib(25) = egzp
fib(26) = gxoz
fib(27) = leoo
fib(28) = scdn
fib(29) = bdgsb
fib(30) = bvivo
fib(31) = cypnp

এটি কোড গল্ফ, তাই বাইটস মধ্যে সংক্ষিপ্ততম কোড!


3
@ l0b0 আপনি এখনও এটিকে 26 টি বেস বলবেন কারণ অঙ্কগুলি উপস্থাপনের জন্য অক্ষরের পছন্দটি সম্পূর্ণ স্বেচ্ছাসেবী এবং সাধারণ ষড়যন্ত্র সংখ্যাটি কেবল একটি সম্মেলন।
মার্টিন ইন্ডার

2
এটি এখনও বেস 26। আপনি কোন অক্ষর ব্যবহার করেন তা নির্বিচারে এবং আমরা এখানে অ্যাজ (বর্ণানুক্রমিক ক্রমে) ব্যবহার করি।
ফিলিপ হাগলুন্ড

ঠিক আছে, এটি প্রচলিত থেকে আলাদা বেস -26 স্বরলিপি, তবে এটি এখনও একটি বেস -26 স্বরলিপি।
মনিকার সাথে লাইটনেস রেস

5
কেন ইনপুট জন্য তাদের বাজে নম্বর ব্যবহার করবেন?
ugoren

নাম প্রস্তাব: ফিবোনা-বিসি
ম্যাথু রোহ

উত্তর:


12

সিজেম, 18 বাইট

UXri{_@+}*;26b'af+

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

কিভাবে এটা কাজ করে

UX    e# Push 0 and 1.
ri{   e# Read an integer and execute the loop that many times.
  _   e#   Push a copy the topmost integer.
  @   e#   Rotate the bottom-most integer on top of the stack.
  +   e#   Pop the two topmost integers and push their sum.
}*    e#
;     e# Discard the topmost integer from the stack.
26b   e# Convert the remaining integer to base 26.
'af+  e# Add the character 'a' to each base-26 digit.

8

টিস্ক্রিপ্ট , 34 বাইট 37 51 54

চা স্ক্রিপ্টটি গল্ফ করার জন্য জাভাস্ক্রিপ্ট। এটি গড় ব্রাউজারে ES2015 বৈশিষ্ট্যও নিয়ে আসে।

F(x)b(26)l(#C(lc()+(l<'a'?49:10)))

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

ব্যাখ্যা

          // x is the input
F(x)      // Fibonacci from input
.b(26)    // To Base-26 string but with 0-9, a-p
          // instead of a-z, to fix this...
.l(#      // Loops through each char
   C(          // Charcode from...
       l.c()+  // Charcode from char
       (l<'a'? // If number
           49  // Add 49 to char code
          :10  // Else add 10
       )
   )
)

* এই উত্তরটি প্রতিযোগিতামূলক


1
জেএসের দুর্দান্ত গল্ফ-ওয়াই সংস্করণ! আমি প্রায় এক মাস আগে আমার নিজের সংস্করণটি ডিজাইন করেছি, তবে এখনও কোনও দোভাষা শুরু করিনি। কোনও ফিবোনাচি অন্তর্নির্মিত বা অন্তর্নিহিত ইনপুট ব্যতীত, একই প্রোগ্রামটি 48 বাইট দীর্ঘ হবে। যাইহোক , আমি যদি একটি অন্তর্নির্মিত তৈরি করতে এবং অন্তর্নিহিত ইনপুট যুক্ত করতে পারি, তবে এটি 34 হবে Perhaps সম্ভবত আমার কোনও দোভাষীর কাজ শুরু করা উচিত। ;)
ইটিএইচ প্রডাকশন 21

ওহ, এটি অনেক ভাল। আমার ভাষার যে কৌশলগুলি এখানে প্রয়োগ হতে পারে সেগুলির মধ্যে একটি হ'ল সমস্ত ভেরিয়েবলগুলি বড় হাতের (ম্যাথ, তারিখ, ইত্যাদি সহ) এবং সমস্ত পদ্ধতি ছোট ছোট করে, যা পিরিয়ডের প্রয়োজনীয়তা সরিয়ে দেয়। এটি কেবল একটি পরামর্শ; এটি এই ভাষার পক্ষে সেরা ধারণা নাও হতে পারে তবে আমি আপনাকে সিদ্ধান্ত নিতে দেব। (নামটি পছন্দ করুন,
বিটিডাব্লু

@ ইথ প্রডাকশন আকর্ষণীয় ধারণা। আমি এটি কিছু ক্ষেত্রে প্রয়োগ করতে পারি কিনা তা আমি দেখতে পাব, তবে এখন পর্যন্ত, আমি একটি সন্ধানী-প্রতিস্থাপনের একটি সহজ পদ্ধতির মাধ্যমে বেশিরভাগ বৈশিষ্ট্যগুলি প্রয়োগ করছি, ফলে আরও জটিল শব্দার্থক প্রয়োগ কার্যকর করা কঠিন হয়ে পড়ে।
ডাউনগোট

6

গণিত, 67 61 বাইট

Print[""<>Alphabet[][[Fibonacci@Input[]~IntegerDigits~26+1]]]

f(1000000)প্রায় 51 মিলিসেকেন্ডে গণনা করে ।


আহ, দেখিনি যে ইতিমধ্যে একটি গণিতের উত্তর আছে! আমার IntegerStringঅঙ্কগুলি ফর্ম্যাট করতে ব্যবহৃত হয়েছিল:IntegerString[Fibonacci@#~IntegerDigits~26+10,36]<>""&

আমি এটি মুছে ফেলেছি; ব্যবহার Input[]এবং Print[]একটি সুষ্ঠু তুলনা জন্য, আমার সমাধান 66 বাইট দীর্ঘ হবে। তবে Alphabet[]এটি একটি 10.1 বৈশিষ্ট্য, তাই আমি ভেবেছিলাম এটি একটি মন্তব্য হিসাবে রেখে দেব।

@ ব্যবহারকারী5254 আমি সূচকগুলির তালিকা ব্যতীত FromLetterNumberঅভ্যন্তরীণভাবে অভ্যন্তরীণভাবে এটি ব্যবহার Alphabetকরে Partএবং ব্যবহার করেছি তা দেখার আগে আমি প্রথম ব্যবহার করেছি ।
LegionMammal978

5

সিম্প্লেক্স v.0.6 , 35 বাইট

মাঝে মাঝে আমি দীর্ঘশ্বাস ফেলে ভাবি, "এটি কি জমা দেওয়ার মতো? এটি জিততে পারে না, তাই কেন বিরক্ত করবেন?" জবাবে, আমি মনে করি, "হেক। মজা ছিল Besides এছাড়াও, এটি সত্যিই মনগড়া মস্তিষ্ক f *** যাইহোক।

5_*Ij1~SRpRi@T[Uj&ERp]pSR5_Vj26@pWo
5_                                  ~~ sqrt(5)
  *                                 ~~ copy to next byte, move right
   I                                ~~ increment [sqrt(5),sqrt(5)+1]
    j1                              ~~ insert a new cell and set it to one 
                                    ~~ [sqrt(5),1,sqrt(5)+1]
      ~                             ~~ switch the previous with the current byte
                                    ~~ [1,sqrt(5),sqrt(5)+1]
       S                            ~~ perform subtraction [1-sqrt(5),0,sqrt(5)+1]
        Rp                          ~~ remove next cell [1-sqrt(5),sqrt(5)+1]
          Ri@                       ~~ take numeric input (n) into register
             T[      ]              ~~ applies the following to every cell
               U                    ~~ halves the current cell
                j&                  ~~ dumps and restores the value to the register
                  ERp               ~~ raises cell to the nth power, remove cell made
                      p             ~~ remove last cell
                       S            ~~ subtract the two values
                        R5_         ~~ goes right and sets sqrt(5)
                           V        ~~ divides the prev. two cells
                            j       ~~ inserts new cell
                             26@    ~~ puts 26 into the register
                                p   ~~ removes cell
                                 Wo ~~ converts the current to base 26 and outputs as number

ওহ, এবং একপাশে Wকমান্ডটি বেস 26 কে ছোট হাতের বর্ণমালা হিসাবে ব্যাখ্যা করে, বেস 52 কে উপরের এবং ছোট হাতের বর্ণমালা হিসাবে এবং 52 বেসটি মূলত জাভাস্ক্রিপ্টস btoaফাংশন।
কনর ও'ব্রায়েন


3

মিনকোল্যাং 0.9 , 40 বাইট

10n[0c+r]$x'26'r(d0c%1G0c:d$)xrx("a"+O).

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

ব্যাখ্যা

10n[0c+r]                                   Calculates f(n) where n is taken from input
         $x'26'r                            Dumps the addend I don't need and pushes a 26
                (d0c%1G0c:d$)               Base-encodes f(n) in base 26
                             xrx            Dumps the 0, reverses, dumps the 26
                                ("a"+O).    Outputs the letters

সত্যিই সুন্দর! বিশাল ইনপুট জন্য দুর্দান্ত কাজ!
ফিলিপ হাগলুন্ড

3

পাইথন 2.7, 82 বাইট

a=0
b=1
s=''
exec"a,b=b,a+b;"*input()
while a:s=chr(a%26+97)+s;a/=26
print s or'a'

1

হাস্কেল, ১১৪ টি চর।

এটি অপ্রত্যাশিতভাবে দীর্ঘ। কোন সহায়তা স্বাগত। পূর্বে ফাইব (0) এর জন্য একটি বাগ পাওয়া গিয়েছিল

f=scanl(+)0$1:f
k 0=[]
k x=k(x`div`26)++[toEnum$97+x`mod`26]
l 0=0
l x=k x
main=interact$l.(f!!).read.head.lines

fফাইবোনাকির অসীম তালিকা। toEnumএর সাথে একই chr, প্রাক্তনকে ডেটা আমদানি করার দরকার নেই except


0

রুবি, 67 বাইট

a,b=0,1
gets.to_i.times{a,b=b,a+b}
puts a.to_s(26).tr"0-9a-p","a-z"


0

রুবি, 125 বাইট

শীঘ্রই কোনও সময় জিততে হবে না, তবে এটি মজাদার ছিল এবং আমার প্রথম কোড গল্ফ: ')

def f(n);n<3?(n>0?1:0):f(n-1)+f(n-2);end
def a(s);s.bytes.map{|n|n<58?n+49:n+10}.pack("C*");end
puts a(f(gets.to_i).to_s(26))

প্রথম লাইনটি ফিবোনাচি গণনা করার জন্য একটি ফাংশন, দ্বিতীয়টি রুবির অন্তর্নির্মিত বেস 26 এনকোডিং (0-9 তারপর এপি) থেকে এজেডকে এনকোডিংয়ে রূপান্তর করে, তৃতীয়টি এসটিডিএন থেকে একটি লাইন পেয়ে এটি উভয়ের মধ্য দিয়ে চালায়।


-1

পাইথন 2, 112 বাইট

n=input()
if n<1:print'a';exit()
a,f=0,1
while n>1:a,f,n=f,a+f,n-1
r=''
while f:r,f=chr(f%26+97)+r,f//26
print r

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


এটি বড় মানের জন্য কিছুটা বন্ধ বলে মনে হচ্ছে; প্রথম ওভারফ্লো 71১ এ। এখানে ফাইব (১৩37)) রয়েছে: ডিফফেকার.com / bwjpg7bb যেখানে সঠিক উত্তরটি "জয়" দিয়ে শেষ হয়।
ফিলিপ হাগলুন্ড

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