बाइनरी पुनरावृत्ति अनुक्रम


10

एक बाइनरी पुनरावृत्ति अनुक्रम निम्नलिखित फ़ॉर्म का पुनरावर्ती रूप से परिभाषित अनुक्रम है:

बाइनरी पुनरावृत्ति अनुक्रम परिभाषा;

यह फाइबोनैचि ( x = 1, y = 2, a = [1, 1], alpha = 1, beta = 1) अनुक्रम और लुकास ( x = 1, y = 2, a = [2, 1], alpha = 1, beta = 1) अनुक्रम का एक सामान्यीकरण है ।

चुनौती

यह देखते हुए n, x, y, a, alpha, और beta, किसी भी उचित प्रारूप में, उत्पादन nइसी बाइनरी पुनरावृत्ति अनुक्रम का वें अवधि।

नियम

  • आप अनुक्रम को 1-अनुक्रमित या 0-अनुक्रमित करने के लिए चुन सकते हैं, लेकिन आपकी पसंद सभी इनपुट के अनुरूप होनी चाहिए, और आपको अपने उत्तर में अपनी पसंद का ध्यान रखना चाहिए।
  • आप मान सकते हैं कि कोई भी अमान्य इनपुट नहीं दिया जाएगा (जैसे कि एक अनुक्रम जो पहले समाप्त होता है n, या एक अनुक्रम जो अपरिभाषित शब्दों को संदर्भित करता है, जैसे F(-1)या F(k)जहां k > n)। इसके परिणामस्वरूप, xऔर yहमेशा सकारात्मक रहेगा।
  • आपकी भाषा के प्राकृतिक पूर्णांक प्रकार की सीमाओं के भीतर इनपुट और आउटपुट हमेशा पूर्णांक होंगे। यदि आपकी भाषा में पूर्णांक नहीं हैं, तो इनपुट और आउटपुट सीमा के भीतर होंगे [2**31, 2**31-1](यानी 32-बिट हस्ताक्षरित दो के पूरक पूर्णांक के लिए सीमा)।
  • aहमेशा बिल्कुल yमान शामिल होंगे (परिभाषा के अनुसार)।

परीक्षण के मामलों

नोट: सभी परीक्षण मामले 0-अनुक्रमित हैं।

x = 1, y = 2, a = [1, 1], alpha = 1, beta = 1, n = 6 => 13
x = 1, y = 2, a = [2, 1], alpha = 1, beta = 1, n = 8 => 47
x = 3, y = 5, a = [2, 3, 5, 7, 11], alpha = 2, beta = 3, n = 8 => 53
x = 1, y = 3, a = [-5, 2, 3], alpha = 1, beta = 2, n = 10 => -67
x = 5, y = 7, a = [-5, 2, 3, -7, -8, 1, -9], alpha = -10, beta = -7, n = 10 => 39

क्या aउलटा क्रम गिनती में लेना उचित है?
डेनिस

@ डेनिस हाँ, यह करता है।
मेगो

ठीक है, स्पष्ट करने के लिए धन्यवाद।
डेनिस

जवाबों:


2

जेली , 11 बाइट्स

⁴Cịæ.⁵ṭµ¡⁶ị

इसे ऑनलाइन आज़माएं!  1  |  2  |  3  |  4  |  5 

यह काम किस प्रकार करता है

⁴Cịæ.⁵ṭµ¡⁶ị  Main link. Arguments: a; [x, y]; [α, β]; n (1-based)

       µ     Combine the links to the left into a chain.
        ¡    Execute that chain n times, updating a after each execution.
⁴              Yield [x, y].
 C             Complement; yield [1 - x, 1 - y].
  ị            Retrieve the elements of a at those indices.
               Indexing is 1-based and modular in Jelly, so this retrieves
               [a[-x], a[-y]] (Python syntax).
     ⁵         Yield [α, β].
   æ.          Take the dot product of [a[-x], a[-y]] and [α, β].
         ⁶   Yield n.
          ị  Retrieve the element of a at index n.

2

पायथन 2, 62 बाइट्स

x,y,l,a,b=input();f=lambda n:l[n]if n<y else a*f(n-x)+b*f(n-y)

एक सीधा पुनरावर्ती समाधान। nएक फ़ंक्शन तर्क के रूप में छोड़कर, सभी इनपुट एसटीडीआईएन से लिए जाते हैं, एक विभाजन जिसे डिफ़ॉल्ट रूप से अनुमति दी जाती है (हालांकि विवादास्पद रूप से)।

वहाँ के साथ बाइट्स को बचाने के लिए एक तरीका हो प्रतीत नहीं होता है and/orके स्थान पर if/elseक्योंकि l[n]0 के रूप में falsey हो सकता है।


2

अजगर 2, 59 बाइट्स

x,y,A,a,b,n=input()
exec'A+=a*A[-x]+b*A[-y],;'*n
print A[n]

Ideone पर इसका परीक्षण करें ।


2

जावास्क्रिप्ट (ईएस 6), 51 44 बाइट्स

(x,y,z,a,b)=>g=n=>n<y?z[n]:a*g(n-x)+b*g(n-y)

ध्यान दें कि फ़ंक्शन आंशिक रूप से curried है, उदाहरण के लिए f(1,2,[1,1],1,1)(8)34। रिटर्न। मध्यवर्ती कार्यों को एक दूसरे से स्वतंत्र बनाने के लिए 2 बाइट्स खर्च होंगे (वर्तमान में केवल अंतिम उत्पन्न फ़ंक्शन सही ढंग से काम करता है)।

संपादित करें: सहेजे गए 7 बाइट्स @Mego के लिए धन्यवाद इंगित करता है कि मैंने अनदेखी की कि पारित-किए गए सरणी में हमेशा yपरिणाम के पहले तत्व शामिल होते हैं ।


@ मुझे पता है कि मैं अक्सर सवालों के विवरण को नजरअंदाज कर देता हूं, लेकिन मुझे विशेष रूप से सूक्ष्म के रूप में मारा।
नील


0

जे, 43 बाइट्स

{:{](],(2>@{[)+/ .*]{~1-@>@{[)^:(3>@{[)>@{.

A के प्रारंभिक अनुक्रम को देखते हुए , x , y , α , और β के मापदंडों का उपयोग करके अगली बार n शब्द की गणना करता है । बाद में, यह n वें का चयन करता है विस्तारित क्रम में पद और परिणाम के रूप में इसे आउटपुट करता है।

प्रयोग

चूँकि J केवल 1 या 2 तर्कों का समर्थन करता है, इसलिए मैं सभी मापदंडों को बॉक्सिंग सूचियों की सूची के रूप में समूहित करता हूं। प्रारंभिक बीज को महत्व देता है एक पहले कर रहे हैं, के मापदंडों के बाद एक्स और वाई एक सूची के रूप में, के मापदंडों के बाद α और β एक सूची के रूप में, और मूल्य के साथ समाप्त एन

   f =: {:{](],(2>@{[)+/ .*]{~1-@>@{[)^:(3>@{[)>@{.
   2 3 5 7 11;3 5;2 3;8
┌──────────┬───┬───┬─┐
│2 3 5 7 11│3 5│2 3│8│
└──────────┴───┴───┴─┘
   f 2 3 5 7 11;3 5;2 3;8
53
   f _5 2 3 _7 _8 1 _9;5 7;_10 _7;10
39
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.