আমি কি একটি বিশেষ এন-বোনাকি নম্বর?


11

এন-বোনাক্সি সিকোয়েন্সটি মূলত এই প্রশ্নটিতে @DJMcMayhem দ্বারা উদ্ভাবিত , এটি একটি ক্রম যা পূর্ণসংখ্যা 0 এবং 1 দিয়ে শুরু করে এবং তারপরে পরবর্তী সংখ্যাটি তৈরি করতে পূর্ববর্তী এন সংখ্যাগুলি যুক্ত করে তৈরি করা হয়। বিশেষ এন-বোনাক্সি সিকোয়েন্স হল একটি এন-বোনাক্সি সিকোয়েন্স, যার শুরুতে 0 এবং 1 ব্যতীত অন্য সংখ্যার জোড় থাকবে, যার নাম হবে এক্স এবং ওয়াই। যদি এন ক্রমটিতে ইতিমধ্যে শর্তাবলীর সংখ্যার চেয়ে বেশি হয় তবে কেবলমাত্র সমস্ত উপলব্ধ যোগ করুন শর্তাবলী।

সুতরাং উদাহরণস্বরূপ, সাধারণ ফিবোনাচি সিকোয়েন্সে 2 এর এন থাকে (পূর্ববর্তী দুটি আইটেম লাগে) এবং 0 এবং 1 এর একটি এক্স এবং ওয়াই বা 1 এবং 1 রয়েছে, আপনি কাকে জিজ্ঞাসা করছেন তার উপর নির্ভর করে।

তোমার কাজ:

আপনাকে এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা পরীক্ষা করে দেখবে যে ইনপুটযুক্ত পূর্ণসংখ্যা (এ) পরবর্তী তিনটি পূর্ণসংখ্যার দ্বারা উত্পাদিত বিশেষ এন-বোনাক্সি অনুক্রমের অংশ কিনা (দ্বিতীয় হিসাবে ইনপুটটি এন হিসাবে এবং তৃতীয় এবং চতুর্থটি এক্স এবং ওয়াই হিসাবে ব্যবহার করে) । নিশ্চিত হয়ে নিন যে আপনি এন = 1 এর বিশেষ কেসটি পরিচালনা করেছেন।

ইনপুট:

চারটি অ-নেতিবাচক পূর্ণসংখ্যা, এ, এন, এক্স এবং ওয়াই।

আউটপুট:

সত্যবাদী / মিথ্যা মান যা A, N, X এবং Y ইনপুট দ্বারা উত্পাদিত N-Bonacci অনুক্রমের অংশ কিনা তা নির্দেশ করে।

পরীক্ষার কেস:

Input:    Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy

12,5,0,1->falsy  [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.  

স্কোরিং:

এটি , তাই বাইট জিতে সর্বনিম্ন স্কোর।


1
N==1এটি একটি অদ্ভুত ঘটনা।
ম্যাজিক অক্টোপাস আরন

হ্যাঁ, তবে বিস্ময়কর বিষয়গুলি এই
গ্রিফন

আপনি যদি কেসটি পরিচালনা করতে সত্যই উত্তর চান তবে N=1আপনি এটি প্রশ্নে ডেকে আনতে চাইতে পারেন, যেহেতু অনেক উত্তর (সমস্ত বর্তমান উত্তর সহ, আমার মনে হয়) এর ব্যর্থতার শর্ত থাকবে যা কঠোরভাবে ক্রমবর্ধমান সিরিজটি ধরে নিয়েছে। এছাড়াও, Xএবং Yনেতিবাচক হতে পারে? এটি সম্ভবত বিদ্যমান সমস্ত উত্তরও বাতিল করে দেবে।
অ্যাপসিলাররা

1
আমি মনে করি সমস্ত বিদ্যমান উত্তরগুলি ক্রমবর্ধমান কেস পরিচালনা করতে ব্যর্থ হয়েছে যেখানে এক্স এবং ওয়াই উভয়ই শূন্য। সেই মামলাও কি সামলানো দরকার?
অ্যাপসিলাররা

1
আমি তোমাদের truthy ক্ষেত্রে যোগ করা উচিত মনে করি 8,1,8,9এবং 9,1,8,9তা নিশ্চিত করার জন্য N=1মামলাটি পরিচালনা অ পুনরাবৃত্তি সনাক্ত করে Xমান সেইসাথে Yমান। (আপনি যদি 0,0কেসগুলি পরিচালনা করতে চান তবে আপনার
এটিও

উত্তর:


5

জেলি , 12 বাইট

ḣ⁴S;µṀ<⁵µ¿⁵e

একটি পূর্ণ প্রোগ্রাম গ্রহণ [X,Y], N, A

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

কিভাবে?

ḣ⁴S;µṀ<⁵µ¿⁵e - Main link (monadic): [X,Y]
    µ   µ¿   - while:
     Ṁ       -   maximum value of the list
       ⁵     -   5th command line argument (3rd input) = A
      <      -   less than?
             - ...do:
 ⁴           -   4th command line argument (2nd input) = N
ḣ            -   head (get the first N (or less) items from the list)
  S          -   sum
   ;         -   concatenate (add the result to the front of the list)
          ⁵  - 5th command line argument (3rd input) = A
           e - exists in the resulting list?

চমৎকার। যাই হোক না কেন, আমার জন্য কাজ মনে হচ্ছে। +1
গ্রিফন

পরিবর্তে N-Bonacci ক্রমটি A এর চেয়ে বড় বা সমান মানের অবধি দেখতে কেবল ⁵eপ্রান্ত থেকে অপসারণ করুন ; এটি বলার চেয়ে আরও সহজ কাজ তখন কার্যকর হবে (লক্ষ্য করে যে প্রথম দুটি শর্তের ক্রম কোনও ফলস্বরূপ নয়)।
জোনাথন অ্যালান

একগুচ্ছ পরীক্ষার কেস চেষ্টা করেছেন, সুতরাং যদি কেউ এটির ব্যর্থ না হয় তবে তা আমার পক্ষে ভাল।
গ্রিফন

5

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

[DR²£O©‚˜³®>‹#]³QZ

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


ব্যবহারসমূহ: [X,Y], N, A


আমি মনে করি কিছু অনিচ্ছাকৃত কার্যকারিতা যেটি হওয়া দরকার তার চেয়ে শক্ত করে তুলেছে।

এর চেয়ে বড় বা সমান আর কোনও নেই, আগে কখনই তা লক্ষ্য করেনি।

এবং কাজ করে না, এবং ]+1 বাইটের জন্য একটি প্রয়োজন #]³


4

পাইথন 2 , 59 56 বাইট

a,n,l=input()
while l[0]<a:l=[sum(l[:n])]+l
print a in l

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

হিসাবে ইনপুট লাগে A,N,[X,Y]


এখানে সব পরীক্ষার বিষয় যদি আপনি এটা পছন্দ জন্য মোড়কের হয়।
লিকি নুন

এখানে 2 বাইট গল্ফ বন্ধ আছে।
লিকি নুন

3

পার্ল 6 , 47 বাইট

->\A,\N,\X,\Y{A∈(X,Y,{[+] @_.tail(N)}...*>A)}

এটা পরীক্ষা করো

সম্প্রসারিত:

->
  \A,
  \N,
  \X, \Y
{
    A          # is 「A」

              # an element of

    (          # this Sequence

      X, Y,        # seed values of sequence

      {            # generate the rest of the Seq using this code block

        [+]        # reduce by addition

          @_       # of all previously generated values
          .tail(N) # only use the last 「N」 of them
      }

      ...          # keep generating values until

      * > A        # it is greater than 「A」

    )
}


1

আর , 69 60 বাইট

function(a,n,l){while(l<a)l=c(sum(l[1:n],na.rm=T),l)
a%in%l}

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

একটি বেনামী ফাংশন, গ্রহণ a,nএবং একটি ভেক্টর ফিরিয়ে দেয় l=c(y,x)। N-Bonacci সিকোয়েন্সটি পিছনের দিকে তৈরি করে (যেমন, ছোট সূচকটি ক্রমটিতে আরও রয়েছে), যেহেতু while(l<a)কেবলমাত্র প্রথম উপাদানটি পরীক্ষা করে l


1

কমন লিস্প, 164 বাইট

(defun f(a n x y &aux(l(list y x)))(if(= n 1)(or(= a x)(= a y))(loop(if(<= a(car l))(return(member a l))(setf l(cons(reduce'+ l)(if(<(length l)n)l(butlast l))))))))

এই ফাংশনটি NILসত্যের জন্য মিথ্যা, নন-এনআইএল ( সাধারণ লিপ্পের জেনারালাইজড বুলিয়ান সংজ্ঞা অনুসারে ) প্রদান করে।

(defun f(a n x y &aux (l (list y x)))    ; initialize a list l for the N values
  (if (= n 1)                            ; special case for N = 1
      (or (= a x) (= a y))               ;    true only if A = X or A = Y
      (loop
        (if (<= a (car l))               ; when the last number generated is greater than A
            (return (member a l))        ; return true if A is in the list
            (setf l (cons (reduce '+ l)  ; otherwise compute the sum of l
                          (if (< (length l) n)   ; and push it to l (truncating the list at 
                              l                  ; end if it has already size = N)
                              (butlast l))))))))

আপনি কি উদাহরণস্বরূপ, উভয় এবং / বা কখন N=1সনাক্ত করতে বিশেষ কেস পরিচালনা করছেন ? আমার লিস্প-পঠন দক্ষতা দুর্দান্ত নয় তবে দেখে মনে হচ্ছে আপনি কেবল দুটি প্রাথমিক মানগুলির সাথে তুলনা করতে পারেন। A12X=1 Y=2A
অ্যাপসিলাররা

@ অ্যাপসিলার্স, যখন এন = 1 আমি এটিকে কেবল এক্স এর সাথে তুলনা করি এবং ওয়াইয়ের সাথে নয় I আমি কি উভয়কেই সত্যের প্রত্যাবর্তনের সাথে তুলনা করব যদি এটির একটির সমান হয়? এই সিকোয়েন্সটি সম্ভবত এই ক্ষেত্রে সংজ্ঞায়িত হয়নি?
রেনজো

ঠিক আছে, এখন দেখছি প্রশ্নটি পরিবর্তন হয়ে গেছে, আমি আমার উত্তর আপডেট করেছি updated
রেনজো

0

k, 29 বাইট

{x=*(*x>){(x=#y)_y,+/y}[y]/z}

এটি অনলাইন চেষ্টা করুন! 1সত্যবাদী, 0মিথ্যা। ইনপুট হয় [A;N;X,Y]


আমি যে সমস্ত উদাহরণ দেখেছি তার উপরে এটি চালিয়েছি। 1 সত্যবাদী, 0 টি মিথ্যা।
zgrep

@ গ্রিফোন আমি দেহের পরিবর্তে পাদদেশে ইনপুটটি সরিয়েছি, তবে আপনি কী পরিবর্তন করতে চান তা আমি নিশ্চিত নই। এটি উভয়ই একই ফাংশন ছিল।
zgrep

ওহ, আমি এখন দেখতে। আমি ভেবেছিলাম আপনি কোনও ইনপুট নিচ্ছেন না, তবে আপনি কোডটিতে নিয়ে যাচ্ছেন। এখন আরও বোধগম্যতা তৈরি করে। আমি কে জানি না, তাই আমি ধরে নিয়েছিলাম যে আপনি প্রশ্নটি ব্যাখ্যা করতে চান, কারণ এটি যা করবে তা আউটপুট 1 0 1 1
গ্রিফন


0

গণিত, 94 বাইট

(s={#3,#4};t=1;While[t<#2-1,s~AppendTo~Tr@s;t++];!LinearRecurrence[1~Table~#2,s,#^2]~FreeQ~#)&


ছক পূরণ করা

[এ, এন, x, y]

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