क्या यह अंकगणित-ज्यामितीय अनुक्रम है?


11

एक अंकगणितीय-ज्यामितीय अनुक्रम एक अंकगणितीय अनुक्रम और एक ज्यामितीय अनुक्रम का मूल तत्व है। उदाहरण के लिए, 1 -4 12 -32अंकगणितीय अनुक्रम 1 2 3 4और ज्यामितीय अनुक्रम का गुणनफल है 1 -2 4 -8। पूर्णांक अंकगणित-ज्यामितीय अनुक्रम का नौवाँ शब्द इस प्रकार व्यक्त किया जा सकता है

an=rn(a0+nd)

कुछ वास्तविक संख्या के लिए d , असली अशून्य r , और पूर्णांक a0 । ध्यान दें कि r और d आवश्यक रूप से पूर्णांक नहीं हैं।

उदाहरण के लिए, अनुक्रम 2 11 36 100 256 624 1472 3392है a0=2 , r=2 , और d=3.5

इनपुट

किसी भी उचित प्रारूप में इनपुट के रूप में n2 पूर्णांकों की एक आदेशित सूची । चूंकि ज्यामितीय अनुक्रम की कुछ परिभाषाएँ r=0 को परिभाषित करती हैं और 00=1 को परिभाषित करती हैं , चाहे कोई इनपुट एक अंकगणितीय-ज्यामितीय अनुक्रम इस बात पर निर्भर नहीं करेगा कि r को 0. होने की अनुमति है या नहीं। उदाहरण के लिए, 123 0 0 0 0इनपुट के रूप में नहीं होगा।

उत्पादन

चाहे वह अंकगणित-ज्यामितीय अनुक्रम हो। एक सत्य / मिथ्या मूल्य, या दो अलग-अलग संगत मूल्यों का उत्पादन करें।

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

सच:

1 -4 12 -32
0 0 0
-192 0 432 -1296 2916 -5832 10935 -19683
2 11 36 100 256 624 1472 3392
-4374 729 972 567 270 117 48 19
24601 1337 42
0 -2718
-1 -1 0 4 16
2 4 8 16 32 64
2 3 4 5 6 7
0 2 8 24

असत्य:

4 8 15 16 23 42
3 1 4 1
24601 42 1337
0 0 0 1
0 0 1 0 0
1 -1 0 4 16

1
FYI करें आप इनलाइन गणित मोड का उपयोग करके 0\$ जैसी चीजें लिख सकते हैं । a0
FryAmTheEggman

क्या दो-टर्म इनपुट वास्तव में संभव हैं? परीक्षण के मामलों में कोई भी नहीं है।
xnor

@xnor त्रैमासिक रूप से आप या d = 0 सेट कर सकते हैं, इसलिए अनुक्रम उस मामले में अद्वितीय नहीं हैं, लेकिन आउटपुट हमेशा सत्य होना चाहिएr=1d=0
Giuseppe


1
1 -1 0 4 16यह एक उपयोगी गलत मामला होगा, क्योंकि यह ट्रू मामलों में से प्रत्येक के साथ लगातार चार तत्वों को साझा करता है 1 -1 0 4 -16और-1 -1 0 4 16
एंडर्स कासोर्ग

जवाबों:


2

पर्ल 6 , 184 128 135 बाइट्स

{3>$_||->\x,\y,\z{?grep ->\r{min (x,{r&&r*$_+(y/r -x)*($×=r)}...*)Z==$_},x??map (y+*×sqrt(y²-x*z).narrow)/x,1,-1!!y&&z/y/2}(|.[^3])}

इसे ऑनलाइन आज़माएं!

गणना करता है rd

अनुक्रम का उपयोग विश्लेषण करता है an=ran1+rnd

कुछ सुधार Arnauld के जावास्क्रिप्ट उत्तर से प्रेरित हैं।

व्याख्या

3>$_||  # Return true if there are less than three elements

->\x,\y,\z{ ... }(|.[^3])}  # Bind x,y,z to first three elements

# Candidates for r
x  # If x != 0
??map (y+*×sqrt(y²-x*z).narrow)/x,1,-1  # then solutions of quadratic equation
!!y&&z/y/2  # else solution of linear equation or 0 if y==0

?grep ->\r{ ... },  # Is there an r for which the following is true?

    ( ,                         ...*)  # Create infinite sequence
     x  # Start with x
       {                       }  # Compute next term
        r&&  # 0 if r==0
                (y/r -x)  # d
           r*$_  # r*a(n-1)
                          ($×=r)  # r^n
                +        *  # r*a(n-1)+d*r^n
                                     Z==$_  # Compare with each element of input
min  # All elements are equal?

2

जावास्क्रिप्ट (ईएस 7), 135 127 बाइट्स

a=>!([x,y,z]=a,1/z)|!a.some(n=>n)|[y/x+(d=(y*y-x*z)**.5/x),y/x-d,z/y/2].some(r=>a.every((v,n)=>(v-(x+n*y/r-n*x)*r**n)**2<1e-9))

इसे ऑनलाइन आज़माएं!

कैसे?

rd<109

विशेष मामला # 1: 3 से कम शर्तें

यदि 3 से कम शब्द हैं, तो हमेशा एक मिलान अनुक्रम ढूंढना संभव है। इसलिए हम एक सत्य मूल्य पर बल देते हैं।

विशेष मामला # 2: केवल शून्य

0a0=0d=0r0

a0=0

a0=0

an=rn×n×d

जो देता है:

a1=r×da2=2r2×d

d0a10

r=a22a1

a00

an+1an

an+1=r.an+rn+1d

an+2

an+2=r.an+1+rn+2d=r(r.an+rn+1d)+rn+2d=r2an+2r.rn+1d=r2an+2r(an+1r.an)=r2an+2r.an+1

हम विशेष रूप से है:

a2=r2a0+2r.a1

निम्नलिखित द्विघात के लिए अग्रणी:

r2a02r.a1+a2=0

जिसकी जड़ें हैं:

r0=a1+a12a0a2a0r1=a1a12a0a2a0


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.