पूर्णांक वर्ग जड़ों की अनुक्रम


17

चलो पूर्णांक वर्ग जड़ों के अनुक्रम को परिभाषित करते हैं। सबसे पहले, एक (1) = 1. फिर, (n) ऐसा सबसे छोटा धनात्मक पूर्णांक है जो इससे पहले नहीं देखा गया है

sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1)))))

एक पूर्णांक है। कुछ उदाहरण:

a (2) 3 है क्योंकि यह सबसे छोटा पूर्णांक है sqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)जो पूर्णांक है, और 3 पहले अनुक्रम में नहीं हुआ है।

a (3) 2 है क्योंकि यह सबसे छोटा पूर्णांक है sqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)जो पूर्णांक है, और 2 पहले अनुक्रम में नहीं हुआ है।

a (4) 7 है क्योंकि sqrt(a(4) + 2)पूर्णांक है। हम एक (4) = 2 नहीं कर सकते थे क्योंकि 2 पहले से ही हमारे अनुक्रम में थे।

एक प्रोग्राम या फ़ंक्शन लिखिए जो एक पैरामीटर n देता है एक (n) के लिए संख्याओं का एक अनुक्रम (1) देता है।

अनुक्रम शुरू होता है 1,3,2,7,6,13,5, ....

इस अनुक्रम का स्रोत इस गणित से है । प्रश्न


अनुक्रम में पहले 1000 तत्वों का एक भूखंड:

भूखंड



1
@ Mr.Xcoder जो इसे दिलचस्प बनाता है!
orlp

@ Mr.Xcoder हाँ, मैं मानता हूँ कि यह इतना बुरा है कि आप फॉर्मूला को कॉपी-पेस्ट नहीं कर सकते ...
एरिक आउटगॉल्फर

2
@EriktheOutgolfer सं। जब आपको इनपुट के रूप में n मिलता है तो आपको (1) की सूची को एक (n) में वापस करना चाहिए या प्रिंट करना चाहिए। दूसरे शब्दों में, अनुक्रम में पहला एन नंबर। कोई 'इंडेक्सिंग' नहीं है।
orlp

1
क्या फ़्लोटिंग पॉइंट की गलतियाँ बहुत बड़े इनपुट के लिए स्वीकार्य हैं?
जर्बद

जवाबों:



3

हास्केल , 103 87 बाइट्स

बुरी तरह से अक्षम है, लेकिन अस्थायी बिंदु अंकगणित पर भरोसा नहीं करता है। यहाँ a(x) = sqrt(f(x)+a(x-1))एक सहायक क्रम है, जो संगणना को सरल बनाता है।

a 0=0
a x=[k|k<-[1..],m<-[k^2-a(x-1)],m>0,notElem m$f<$>[1..x-1]]!!0
f x=(a x)^2-a(x-1)

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


3

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

t,=s=1,
for n in~-input()*s:
 while(n in s)+(t+n)**.5%1:n+=1
 s+=n,;t=(t+n)**.5
print s

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

-3 श्री एक्सकोडर को धन्यवाद
-5 ओवर्स के लिए धन्यवाद ।


92 बाइट्स -> while n in s or(t+n)**.5%1>0->while(n in s)+(t+n)**.5%1
श्री Xcoder


@ नोव्स चतुर एक
एरिक आउटगॉल्फर

3

MATL , 30 27 बाइट्स

lXHiq:"`@ymH@+X^1\+}8MXHx@h

इसे ऑनलाइन आज़माएं! या देखें ए ग्राफ़िकल डिस्प्ले (लगभग कुछ समय से अधिक समय लगता है60 )।

व्याख्या

l          % Push 1. This is the array that holds the sequence, initialized to
           % a single term. Will be extended with subsequent terms
XH         % Copy into clipboard H, which holds the latest result of the 
           % "accumulated" square root
iq:"       % Input n. Do the following n-1 times
  `        %   Do...while
    @      %     Push interaton index k, starting at 1. This is the candidate
           %     to being the next term of the sequence
    y      %     Push copy of array of terms found so far
    m      %     Ismbmer? True if k is in the array
    H      %     Push accumulated root
    @+     %     Add k
    X^     %     Square root
    1\     %     Modulo 1. This gives 0 if k gives an integer square root
    +      %     Add. Gives nonzero if k is in the array or doesn't give an
           %     integer square root; that is, if k is invalid.
           %   The body of the do...while loop ends here. If the top of the
           %   stack is nonzero a new iteration will be run. If it is zero that
           %   means that the current k is a new term of the sequence
  }        %   Finally: this is executed after the last iteration, right before
           %   the loop is exited
    8M     %     Push latest result of the square root
    XH     %     Copy in clipboard K
    x      %     Delete
    @      %     Push current k
    h      %     Append to the array
           % End do...while (implicit)
           % Display (implicit)

3

गणितज्ञ, 104 बाइट्स

(s=f={i=1};Do[t=1;While[!IntegerQ[d=Sqrt[t+s[[i]]]]||!f~FreeQ~t,t++];f~(A=AppendTo)~t;s~A~d;i++,#-1];f)&  


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

वर्गमूलों का अनुक्रम भी बहुत दिलचस्प है ...
और एक समान पैटर्न आउटपुट करता है

1,2,2,3,3,4,3,5,3,6,4,4,5,4,6,5,5,6,6,7,4,7,5,7,6, 8,4,8,5,8,6,9,5,9,6,10,5,10,6,11,5,11,6,12,6,13,6,14,7,7, 8,7,9,7,10,7,11,7,12,7,13,7,14,8,8,9,8,10 ...

यहाँ छवि विवरण दर्ज करें

यहाँ भी मुख्य अनुक्रम के अंतर हैं

यहाँ छवि विवरण दर्ज करें



2

जावास्क्रिप्ट (ईएस 7), 89 82 77 76 बाइट्स

i=>(g=k=>(s=(++n+k)**.5)%1||u[n]?g(k):i--?[u[n]=n,...g(s,n=0)]:[])(n=0,u=[])

डेमो

प्रारूपित और टिप्पणी की गई

i => (                             // given i = number of terms to compute
  u = [],                          // u = array of encountered values
  g = p =>                         // g = recursive function taking p = previous square root
    (s = (++n + p) ** .5) % 1      // increment n; if n + p is not a perfect square,
    || u[n] ?                      // or n was already used:
      g(p)                         //   do a recursive call with p unchanged
    :                              // else:
      i-- ?                        //   if there are other terms to compute:
        [u[n] = n, ...g(s, n = 0)] //     append n, set u[n] and call g() with p = s, n = 0
      :                            //   else:
        []                         //     stop recursion
  )(n = 0)                         // initial call to g() with n = p = 0

2

आर , 138 105 99 बाइट्स

function(n){for(i in 1:n){j=1
while(Reduce(function(x,y)(y+x)^.5,g<-c(T,j))%%1|j%in%T)j=j+1
T=g}
T}

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

-33 लूप में Tfeld की चालाक sqrt()%%1चाल का उपयोग करते हुए

-6 के बजाय टी का उपयोग करके 6 बाइट्स

मूल उत्तर, 138 बाइट्स:

function(n,l={}){g=function(L)Reduce(function(x,y)(y+x)^.5,L,0)
for(i in 1:n){T=1
while(g(c(l,T))!=g(c(l,T))%/%1|T%in%l)T=T+1
l=c(l,T)}
l}

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


2

भूसी , 21 बाइट्स

!¡oḟȯΛ±sFo√+Som:`-N;1

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

कैसे?

!¡oḟȯΛ±sFo√+Som:`-N;1    Function that generates a list of prefixes of the sequence and indexes into it
                   ;1    The literal list [1]
 ¡                       Iterate the following function, collecting values in a list
  oḟȯΛ±sFo√+Som:`-N        This function takes a prefix of the sequence, l, and returns the next prefix.
                `-N      Get all the natural numbers that are not in l.
            Som:         Append l in front each of these numbers, generates all possible prefixes.
    ȯΛ±sFo√+               This predicate tests if sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1))))) is an integer.
        F                Fold from the left
         o√+             the composition of square root and plus
       s                 Convert to string
    ȯΛ±                  Are all the characters digits, (no '.')
  oḟ                     Find the first list in the list of possible prefixes that satisfies the above predicate
!                        Index into the list
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.