লুকাস-ন্যাকসি নাম্বার


19

পটভূমি

ফিবোনাচি সংখ্যাগুলির সাথে বেশিরভাগই পরিচিত F(n):

0, 1, 1, 2, 3, 5, 8, 13, 21 ...

এগুলি এবং এর F(n) = F(n-1) + F(n-2)সাথে পুনরাবৃত্তি ফাংশন দ্বারা গঠিত হয় । A000045F(0)=0F(1)=1

একটি ঘনিষ্ঠভাবে সম্পর্কিত ক্রম লুকাস সংখ্যা L(m) :

2, 1, 3, 4, 7, 11, 18, 29 ...

এই পুনরাবৃত্তির ফাংশন দ্বারা গঠিত হয় L(m) = L(m-1) + L(m-2)সঙ্গে L(0)=2এবং L(1)=1A000032

আমরা নির্মাণ সঙ্গে, এমনকি / বিজোড় সূচকের উপর ভিত্তি করে দুটি ক্রমের মধ্যে বিকল্প হতে পারে
A(x) = F(x)যদি x mod 2 = 0এবং A(x) = L(x)অন্যথায়। উদাহরণস্বরূপ, যেহেতু A(4)সমান । আমরা এই ক্রম ডাকবো লুকাস-nacci নাম্বার , :F(4)4 mod 2 = 0A(x)

0, 1, 1, 4, 3, 11, 8, 29, 21, 76 ...

এই পুনরাবৃত্তির ফাংশন দ্বারা গঠিত হতে পারে A(x) = 3*A(x-2) - A(x-4)সঙ্গে A(0)=0, A(1)=1, A(2)=1, এবং A(3)=4A005013

চ্যালেঞ্জ

ইনপুট দেওয়া হয়েছে, উপরে বর্ণিত হিসাবে সংখ্যার nক্রম আউটপুট করুন । সবচেয়ে কম বাইটস (বা মেটায় স্বতন্ত্রভাবে নির্ধারিত ল্যাবভিউজের জন্য বাইট-সমতুল্য ) জিতেছে।n+1A(n)

ইনপুট

একটি একক অ-নেতিবাচক পূর্ণসংখ্যা n

আউটপুট

সংখ্যার একটি তালিকা যা লুਕਾਸ-ন্যাক্সি সংখ্যার থেকে পরবর্তী অনুচ্ছেদের A(0)সাথে মিলে যায় A(n)। উপরে বর্ণিত হিসাবে তালিকাটি অবশ্যই ক্রমযুক্ত হতে হবে।

বিধি

  • স্ট্যান্ডার্ড কোড-গল্ফ বিধি এবং লুফোলের বিধিনিষেধগুলি প্রযোজ্য।
  • স্ট্যান্ডার্ড ইনপুট / আউটপুট বিধি প্রযোজ্য।
  • ইনপুট নম্বরটি যে কোনও উপযুক্ত বিন্যাসে থাকতে পারে: অকার্য বা দশমিক, এসটিডিআইএন, ফাংশন বা কমান্ড-লাইন আর্গুমেন্ট ইত্যাদি থেকে পড়া - আপনার পছন্দ।
  • আউটপুট STDOUT এ মুদ্রিত বা ফাংশন কলের ফলাফল হিসাবে ফিরে আসতে পারে। যদি মুদ্রিত হয়, তবে পৃথক করার জন্য উপযুক্ত ডিলিমিটারগুলি অবশ্যই অন্তর্ভুক্ত করতে হবে (স্পেস-বিচ্ছিন্ন, কমা-বিচ্ছিন্ন, ইত্যাদি)।
  • অতিরিক্ত হিসাবে, যদি STDOUT এ আউটপুট, আশেপাশের সাদা স্থান, নতুন লাইনের পিছনে থাকা ইত্যাদি allচ্ছিক।
  • যদি ইনপুটটি একটি অ-পূর্ণসংখ্যা বা negativeণাত্মক পূর্ণসংখ্যা হয় তবে আচরণটি অপরিজ্ঞাত হওয়ার কারণে প্রোগ্রামটি কিছু বা কিছুই করতে পারে।

উদাহরণ

Input -> Output
0 -> 0
5 -> 0, 1, 1, 4, 3, 11
18 -> 0, 1, 1, 4, 3, 11, 8, 29, 21, 76, 55, 199, 144, 521, 377, 1364, 987, 3571, 2584

নিউলাইন কি একটি গৃহীত সীমানা হিসাবে বিবেচনা করা হয়?
কর্সিকা

পছন্দ করেছেন
অ্যাডমবর্কবর্ক

উত্তর:


9

জেলি, 12 বাইট

;2U+¥Ð¡-,1ZḢ

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

পটভূমি

আমরা F (-1) = 1 এবং এল (-1) = -1 সংজ্ঞায়িত করে F এবং L--1 প্রসারিত করতে পারি। এটি পুনরাবৃত্তি ফাংশনের সাথে সামঞ্জস্যপূর্ণ।

আমাদের প্রোগ্রাম দিয়ে শুরু হয়

-1  1
 0  2

প্রতিটি পদক্ষেপে, পরবর্তী জোড়াটি তৈরি করতে, আমরা শেষ জোড়াটি বিপরীত করে পেনালিয়মেট জুটিতে যুক্ত করি। উদাহরণ স্বরূপ:

[0, 2] U+¥ [-1, 1] -> [2, 0] + [-1, 1] -> [1, 1]

যদি আমরা আরও কিছু পদক্ষেপের জন্য এই প্রক্রিয়াটি চালিয়ে যাই তবে আমরা পাই

-1  1
 0  2
 1  1
 1  3
 4  2
 3  7
11  5

লুকাস-ন্যাকসি ক্রমটি কেবল বাম কলাম।

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

;2U+¥Ð¡-,1ZḢ  Niladic link. No implicit input.
              Since the link doesn't start with a nilad, the argument 0 is used.

;2            Concatenate the argument with 2, yielding [0, 2].
       -,1    Yield [-1, 1]. This is [L(-1), F(-1)].
    ¥         Create a dyadic chain of the two atoms to the left:
  U             Reverse the left argument.
   +            Add the reversed left argument and the right one, element-wise.
     С       For reasons‡, read a number n from STDIN.
              Repeatedly call the dyadic link U+¥, updating the right argument with
              the value of the left one, and the left one with the return value.
              Collect all intermediate results.
          Z   Zip the list of results, grouping the first and seconds coordinates.
           Ḣ  Head; select the list of first coordinates.

С বাঁদিকে দুই লিঙ্ক এ পিক: 2এবং U+¥। যেহেতু বামতমটি নীলাড তাই এটি লুপের দেহ হতে পারে না। সুতরাং, U+¥দেহ হিসাবে ব্যবহৃত হয় এবং একটি নম্বর ইনপুট থেকে পঠিত হয়। যেহেতু কোনও কমান্ড-লাইন আর্গুমেন্ট নেই, সেই নম্বরটি STDIN থেকে পড়ে is


2
আমি এই ধারণাটি পেয়েছি যে আপনি জীবিকার জন্য এই জাতীয় জিনিস (জেলির মধ্যে গল্ফ করে) করেন। যা আমাকে আতঙ্কিত করে তোলে।
ড্রাকো 18

24
যদি কেউ জীবিকা নির্বাহের জন্য কীভাবে গল্ফ (কোড) বাছাই করে থাকে তবে দয়া করে আমাকে চ্যাট করুন in বন্ধুর জন্য জিজ্ঞাসা করুন ...
মার্টিন এন্ডার

2
সুতরাং মূলত আপনি কেবল দুটি সিকোয়েন্স গণনা করছেন তবে প্রতিটি পদক্ষেপে বিপরীত, যা কার্যকরভাবে সিকোয়েন্সগুলির মধ্যে স্যুইচ করে।
নিল

1
@ নীল হ্যাঁ, ঠিক এটি পরে সিক্যুয়েন্সগুলি ইন্টারলেভ করা এড়িয়ে চলে, যা কিছুটা দীর্ঘ।
ডেনিস

6

সিজেম, 21 20 বাইট

1 বাইট সংরক্ষণের জন্য Sp3000 ধন্যবাদ।

TXX4ri{1$3*4$-}*?;]p

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

কেবল চ্যালেঞ্জের ক্ষেত্রে দেওয়া পুনরাবৃত্তিটি ব্যবহার করে।

TXX4 e# Push 0 1 1 4 as base cases.
ri   e# Read input and convert to integer N.
{    e# Run this N times...
  1$ e#   Copy a(n-2).
  3* e#   Multiply by 3.
  4$ e#   Copy a(n-4).
  -  e#   Subtract.
}*
?;   e# Discard the last three values, using a ternary operation and popping the result.
]p   e# Wrap the rest in an array and pretty-print it.

1
আপনি (বা কি) Sp3000 যে আপনি প্রতিটি উত্তরে ধন্যবাদ?
সিজে ডেনিস


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

6

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

{(0,1,1,4,{$^b;$^d;3*$^c-$^a}...*)[0..$_]}

ব্যবহার

> my &f = {(0,1,1,4,{$^b;$^d;3*$^c-$^a}...*)[0..$_]}
-> ;; $_? is raw { #`(Block|184122176) ... }
> f(0)
(0)
> f(5)
(0 1 1 4 3 11)
> f(18)
(0 1 1 4 3 11 8 29 21 76 55 199 144 521 377 1364 987 3571 2584)

1
আমি যে পরিষ্কার {( (0,1,*+*...*) Z (2,1,*+*...*) ).flat.rotor( 1=>2, 1=>0 )[ 0..$_ ].flat}
ল্যাম্বদা

প্রদত্ত যে সঠিক বাক্যে কথন "এন দেওয়া" হয়, আপনার সাথে একটি বাইট বাঁচাতে পারে: (0,1,1,4,{$^b;$^d;3*$^c-$^a}...*)[^(n+1)]
রায়ফ

6

হাস্কেল, 59 , 57 , 56 , 52 , 51 বাইট

l a=2*mod a 2:scanl(+)1(l a)
f n=[l i!!i|i<-[0..n]]

সিরিজ সংজ্ঞা এই উত্তর থেকে অভিযোজিত ।

কম গল্ফড:

fibLike start = start : scanl (+) 1 (fibLike start)
whichStart i = (2*mod i 2)
lucasNacci i = fibLike (whichStart i) !! i
firstN n = [ lucasNacci i | i <- [0..n]]

fibLike startঅসীম তালিকা, সংজ্ঞায়িত দেয়: f(0)=start, f(1)=1, f(n)=f(n-1) + f(n-2)whichStart iবিজোড় ইনপুট (লুকাস সিরিজ) এর জন্য 2 বা সমান (ফিবোনাচি সিরিজ) এর জন্য 0 প্রদান করে। lucasNacci iইথ লুকাস-ন্যাকি নম্বর দেয়। firstN nতালিকার উপরের মানচিত্র

বুমেরাং দ্বারা একটি বাইট সংরক্ষিত।


1
আমি মনে করি আপনি সেখানে 2*mod i 2প্রবেশের মাধ্যমে আরও একটি বাইট পেতে পারেন lতবে আপনি প্রথম বন্ধনী সরাতে পারেন। এটি পছন্দ করুন: l a=2*mod a 2:scanl(+)1(l a)এবংf n=[l i!!i|i<-[0..n]]
বেসাইল-হেনরি

@ বুমেরাং ইয়ুপ, এটি কাজ করে। আপনাকে ধন্যবাদ
মাইকেল ক্লেইন

5

ES6, 65 বাইট

n=>[...Array(n)].map(_=>a.shift(a.push(a[2]*3-a[0])),a=[0,1,1,4])

প্রশ্নে প্রদত্ত পুনরাবৃত্তি সম্পর্ক ব্যবহার করে।


5

রেটিনা , 70 62 59 বাইট

1
¶$`1
m`^(11)*1$
$&ff
m`$
 f
+`1(f*) (f*)
$2 $2$1
 f*

f
1

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

  • ইনপুটটি আনারি বেসে রয়েছে, এন 1 এস।
  • 1? $`¶- 0 থেকে n পর্যন্ত প্রতিটি সংখ্যার জন্য একটি লাইন তৈরি করুন : , 1, 11, 111, 1111, ...
  • m`^(11)*1$ $&ff- ffবিজোড় লাইনে সংযোজন । এটি এল (0) = 2 দিয়ে ফাংশনটি বীজ করবে।
  • m`$  f-  fসমস্ত লাইনে যুক্ত করুন (স্থানটি নোট করুন)। এটি ফিবোনাকির সংখ্যাগুলির জন্য 0 এবং 1 এবং লুকাস সংখ্যার জন্য 2 এবং 1 দিয়ে ফাংশন বীজ করে।
  • +`1(f*) (f*) $2 $2$1 - লুপ: এফ (এন + 1) = এফ (এন) + এফ (এন -1) গণনা করুন যখন এখনও 1 টি রয়েছে।
  •  f*   - প্রতিটি লাইনের শেষে থেকে এফ (এন + 1) সরান।
  • fS কে 1 সেকেলে প্রতিস্থাপন করুন । যদি এটির প্রয়োজন না হয় এবং আমরা এসের সাথে থাকতে পারি f, দৈর্ঘ্যটি কেবল 55 বাইট।

5

ওরাকল এসকিউএল 11.2, 218 216 201 বাইট

WITH v(a,b,c,d,i)AS(SELECT 0,1,1,4,3 FROM DUAL UNION ALL SELECT b,c,d,3*c-a,i+1 FROM v WHERE i<:1)SELECT SIGN(LEVEL-1) FROM DUAL WHERE LEVEL-1<=:1 CONNECT BY LEVEL<4UNION ALL SELECT d FROM v WHERE:1>2;

আন golfed

WITH v(a,b,c,d,i) AS 
(
  SELECT 0,1,1,4,3 FROM DUAL 
  UNION ALL 
  SELECT b,c,d,3*c-a,i+1 FROM v WHERE i<:1
)
SELECT SIGN(LEVEL-1) FROM DUAL WHERE LEVEL-1<=:1 CONNECT BY LEVEL<4
UNION ALL SELECT d FROM v WHERE:1>2;

সিকোয়েন্সের প্রথম 3 টি উপাদান তৈরি করার জন্য আমি সাইন ফাংশনটি ব্যবহার করে (আপত্তিজনক?) কয়েকটি বাইট অর্জন করতে সক্ষম হয়েছি।


3

জাপট, 25 22 21 বাইট

Uò £MgXf2)+X%2*Mg°X)r

এটি অনলাইন পরীক্ষা!

পটভূমি

জাপটে ফিবোনাকির সিক্যুয়েন্স তৈরি করা কিছুটা কঠিন, তবে Mgআমাদের এটির জন্য একটি বিল্ট-ইন রয়েছে । তবে এটি কেবল ফিবোনাচি সিক্যুয়েন্স দেয়, লুকাস সিকোয়েন্সটি নয়। এই কৌশলটি ব্যবহার করে আমরা লুকাস সিক্যুয়েন্সটি মোটামুটি সহজেই সম্পন্ন করতে পারি:

N    F(N-1)  F(N+1)  F(N-1)+F(N+1)
0    1       1       2
1    0       1       1
2    1       2       3
3    1       3       4
4    2       5       7
5    3       8       11
6    5       13      18
7    8       21      29

যেহেতু আপনি দেখতে পারেন, F(N-1) + F(N+1)সমান L(N)সবার জন্য N। তবে, যেহেতু আমাদের কাছে কেবল বিজোড় সূচকগুলিতে লুকাস সংখ্যা প্রয়োজন, তাই আমরা দুটি সূত্রকে একটিতে একত্রিত করতে পারি:

N    N-N%2  N+N%2    F(N-N%2)  F(N+N%2)*(N%2)  F(N-N%2)+F(N+N%2)*(N%2)
0    0      0        0         0               0
1    0      2        0         1               1
2    2      2        1         0               1
3    2      4        1         3               4
4    4      4        3         0               3
5    4      6        3         8               11
6    6      6        8         0               8
7    6      8        8         21              29

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

Uò £  MgX-1 +X%2*Mg° X)r
Uò mX{MgX-1 +X%2*Mg++X)r

             // Implicit: U = input integer
Uò mX{       // Create the inclusive range [0..U], and map each item X to:
MgXf2)+      //  Floor X to a multiple of 2, calculate this Fibonacci number, and add:
+X%2*Mg++X)  //  Calculate the (X+1)th Fibonacci number and multiply by X%2.
)r           //  Round the result. (The built-in Fibonacci function returns
             //  a decimal number on higher inputs.)

3

গণিত, 52 51 বাইট

If[#>2,3#0[#-2]-#0[#-4],#-If[#>1,1,0]]&/@0~Range~#&

মার্টিনের উপরের মত একই ধারণা, আমি ফাংশনটির জন্য "বেস কেসগুলি" সংজ্ঞায়নের আরও একটি ছোট উপায় সন্ধান করার জন্য কিছু সময় ব্যয় করেছি। বহুবর্ষীয় অন্তরঙ্গকরণ একটি আবক্ষ প্রতিভা ছিল, সুতরাং আমি এটির জন্য গিয়েছিলাম, মোটামুটি সংক্ষিপ্ত সংজ্ঞা অর্জনের জন্য এক্সটেনশনটিকে নেতিবাচক রূপে ব্যবহার করে।


2

গণিত, 56 বাইট

f@0=0
f@1=f@2=1
f@3=4
f@n_:=3f[n-2]-f[n-4];
f/@0~Range~#&

খুব সরল বাস্তবায়ন। একটি সহায়ক-ফাংশন সংজ্ঞায়িত করে fএবং তারপরে একটি নামবিহীন ফাংশনকে মূল্যায়ন করে যা fসমস্ত ফলাফল পেতে রেঞ্জের জন্য প্রযোজ্য । এটি অযথা জটিল মনে হয়।

একটি একক নামবিহীন ফাংশনটি আরও বেশি বাইট হতে পারে যদিও:

Switch[#,0,0,1,1,2,1,3,4,_,3#0[#-2]-#0[#-4]]&/@0~Range~#&

2

এমএটিএল , 17 18 বাইট

0ll4i:"y3*5$y-](x

মার্টিনের সিজেমের উত্তরের প্রায় সরাসরি অনুবাদ ।

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

0ll4       % push first four numbers: 0,1,1,4
i:         % input n and generate array [1,2,...,n]
"          % for loop. Repeat n times
  y        % copy second-top element from stack
  3*       % multiply by 3
  5$y      % copy fifth-top element from stack
  -        % subtract. This is the next number in the sequence
]          % end loop
(x         % indexing operation and delete. This gets rid of top three numbers

2

ব্র্যাচল্যাগ , 51 বাইট

:0re{:4<:[0:1:1:4]rm!.|-4=:1&I,?-2=:1&*3-I=.}w,@Sw\

এটি ইনপুট হিসাবে একটি সংখ্যা নেয় এবং তালিকাটি ছাপিয়ে প্রিন্ট করে, প্রতিটি সংখ্যা পৃথক করে।

ব্যাখ্যা

§ Main predicate

:0re{...}               § Enumerate integers between 0 and the Input, pass the integer 
                        § as input to sub-predicate 1      
         w,@Sw          § Write sub-predicate 1's output, then write a space
              \         § Backtrack (i.e. take the next integer in the enumeration)


§ Sub-predicate 1

:4<                     § If the input is less than 4
   :[0:1:1:4]rm!.       § Then return the integer in the list [0,1,1,4] at index Input

|                       § Else

-4=:1&I,                § I = sub_predicate_1(Input - 4)
        ?-2=:1&*3-I=.   § Output = sub_predicate_1(Input - 2) * 3 - I

!সাব-প্রিডিকেট 1 এর প্রথম নিয়মে কাটাটি প্রয়োজনীয় যাতে আমরা যখন ( \) ব্যাকট্র্যাক করি তখন আমরা একটি অসীম লুপটি শেষ করি না যেখানে অনুবাদক 4 এর চেয়ে কম ইনপুটটির জন্য দ্বিতীয় নিয়মটি চেষ্টা করবে।



2

গ্রোভি, 50 বাইট

x={a,b=0,c=1,d=1,e=4->a<0?:[b,x(a-1,c,d,e,3*d-b)]}

এটি এক্স ফাংশনটি সংজ্ঞায়িত করে, যা প্রথম আর্গুমেন্ট হিসাবে এন নেয় এবং বাকী ফাংশনের বাক্সের জন্য ডিফল্ট আর্গুমেন্ট হিসাবে ফিবোকাস সিকোয়েন্সের প্রথম চার সংখ্যার বেস কেস থাকে।

একটি এখানে এন। বি, সি, ডি এবং ই ধারাবাহিকভাবে পরবর্তী চারটি উপাদান।

এটি এন হ্রাস করে এবং পুনরাবৃত্তি হয় যতক্ষণ না এন শূন্যের চেয়ে কম হয় - যখন এটি পুনরাবৃত্তি করে, এটি চূড়ান্ত রিটার্ন মানকে তার বর্তমান অনুক্রমের প্রথম উপাদানটিকে যুক্ত করে। অনুক্রমের পরবর্তী চারটি উপাদানের জন্য নতুন মানগুলি পুনরাবৃত্ত কলকে দেওয়া হয় - শেষ তিনটি উপাদানকে প্রথম তিনটি হিসাবে স্থানান্তরিত করা হয়, এবং পূর্ববর্তী দুটি উপাদান থেকে 3 * ডিবি ব্যবহার করে একটি নতুন চতুর্থ উপাদান তৈরি করা হয়।

এটি তালিকায় নেস্টিং সহ নতুন মানগুলি সীমিত করে, কারণ গ্রোভি একাধিক মানগুলিকে তালিকায় স্টাফ করে ফিরিয়ে দিতে পারে - সুতরাং প্রতিটি কল বর্তমান প্রথম উপাদান এবং পুনরাবৃত্তির ফলাফল প্রদান করে যা এটি নিজস্ব তালিকা হবে be



1

পাইলন , ১৯

এটি মার্টিনের পদ্ধতির একটি দুর্দান্ত প্রত্যক্ষ অনুবাদ।

0114{@-4@-33*-,i}=4

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

0114    # Push 0, 1, 1, 4 to the stack.
{       # Start a for loop.
 @-4    # Get the stack element at index -4
 @-3    # Get the stack element at index -3
 3      # Push 3 to the stack.
 *      # Multiply the top two elements of the stack.
 -      # Subtract the top two elements of the stack.
  ,     # Switch to loop iterations.
 i      # Get command line args.
}       # End for loop.
=4      # Discard the top 4 elements of the stack.

1

এ DUP , 32 বাইট

[a:0 1$4[a;1-$a:][1ø3*4ø-]#%%]

Try it here!

একটি বেনাম ল্যাম্বদা যা স্ট্যাকের উপরে সংখ্যার ক্রম ছেড়ে যায়। ব্যবহার:

8[a:0 1$4[a;1-$a:][1ø3*4ø-]#%%]!

ব্যাখ্যা

[                              {start lambda}
 a:                            {save input number to a}
   0 1$4                       {base cases to get us started}
        [       ][       ]#    {while loop}
         a;1-$a:               {a--, check if a>0}
                  1ø3*4ø-      {3*stack[n-2]-stack[n-4]}

                           %%  {discard top 2 stack items}
                             ] {end lambda}

1

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

def a(n,x=0,y=1,z=2,w=1,p=0):
 if~n:print[x,z][p];a(n-1,y,x+y,w,z+w,~p)

এটি অবশ্যই খুব দীর্ঘ বলে মনে হচ্ছে। তবে আমি খুশি হয়েছি যে আমি বিটওয়াইজ notঅপারেটরটি ... দু'বার ব্যবহার করতে পেরেছি । একবার যেমন সমতা একবার পিছনে পিছনে পিছনে পিছনে পিছনে ফিরে, এবং একবার পুনরাবৃত্তি সমাপ্ত যখনn পৌঁছানোর-1

চলকটি pসর্বদা হয় হয় 0বা হয় -1, সুতরাং এটি এন্ট্রি 0বা -1তালিকার মধ্যে বিকল্প হবে । ( -1পাইথন তালিকায় প্রবেশের চয়ন করা মানে শেষ উপাদানটি বেছে নেওয়া means)


1

সি ++ টেম্পলেট মেটা প্রোগ্রামিং, 130 বাইট

template<int X>struct L{enum{v=3*L<X-2>::v-L<X-4>::v};};
#define D(X,A) template<>struct L<X>{enum{v=A};};
D(0,0)D(1,1)D(2,1)D(3,4)

পুনরাবৃত্ত সংজ্ঞাগুলি কোনওভাবে সি ++ টিএমপি, ব্যবহারের জন্য ক্রন্দন করে:

L<x>::v

সঙ্গে xহচ্ছে A(x)তোমাকে পছন্দ করি।

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