ইসিজি সিকোয়েন্সের শর্তাদি


13

ভূমিকা

ইসিজি সিকোয়েন্সটি 1 এবং 2 দিয়ে শুরু হয়, তারপরে নিয়মটি হ'ল পরের শব্দটি হ'ল ক্ষুদ্রতম ইতিবাচক পূর্ণসংখ্যা যা ইতিমধ্যে অনুক্রমের মধ্যে নেই এবং শেষ পদের সাথে যার সাধারণ ফ্যাক্টর 1 এর চেয়ে বেশি (তারা কপিরাইট নয়)।

প্রথম পদগুলি হ'ল:

1, 2, 4, 6, 3, 9, 12, 8, 10, 5, 15, ...

একে EKG বলা হয় কারণ এর শর্তগুলির গ্রাফ একটি EKG এর সাথে বেশ মিল।

এটি OEIS এ ক্রম A064413

চ্যালেঞ্জ

আপনি একটি ফাংশন যা একটি পূর্ণসংখ্যা লাগে লিখতে হবে এন ইনপুট এবং আউটপুট হিসাবে কিভাবে অনেক এন ক্রম প্রথম পদ তার চেয়ে অনেক বেশী হয় এন

তৃতীয় শব্দটির সাথে ক্রমটির নিয়ম শুরু হওয়ার সাথে সাথে ইনপুট পূর্ণসংখ্যাটি 3 বা এর বেশি হতে হবে example উদাহরণস্বরূপ, ইনপুট দেওয়া 10আউটপুট 1কারণ 7 তম শব্দটি হয় 12এবং অন্য কোনও দশ দশটি পদ 10 এর বেশি হয় না।

পরীক্ষার মামলা

3 -> 1

10 -> 1

100 -> 9

1000 -> 70

বিধি

  • 3 এর চেয়ে কম পূর্ণসংখ্যার জন্য, ফাংশন 0 বা একটি ত্রুটি কোড আউটপুট করতে পারে।
  • এই ব্যতীত আর কোনও বিশেষ নিয়ম নেই: এটি কোড গল্ফ, আরও কম খাটো!

1সিক্যুয়েন্সের 0 র্থ পদ হিসাবে এবং এর জন্য তৈরি করার জন্য আমরা উদাহরণস্বরূপ, 1510 তম শব্দটি ব্যবহার করে 0-ইনডেক্সিং ব্যবহার করতে পারি 5?
শেগি

@ শেগি আমি মনে করি এটি গাণিতিক উপায়ে হিসাবে ব্যবহার করা ন্যায়সঙ্গত, তবে বাস্তবে এটি পরীক্ষার মামলার ফলাফল এবং প্রকৃতপক্ষে নিজেই জিজ্ঞাসিত কার্যকারিতা পরিবর্তিত করবে। সুতরাং আমি মনে করি আপনাকে এটি করার অনুমতি দেওয়া উচিত নয়। দুঃখিত।
ডেভিড

oeis.org/A064413/ographic - ওইআইএস গ্রাফ লিখতে পারে? ঝরঝরে।
ম্যাজিক অক্টোপাস আরন

উত্তর:


7

জেলি , 20 19 18 বাইট

S‘gṪ’ɗƇḟ¹Ṃṭ
1Ç¡>¹S

এটি একটি সম্পূর্ণ প্রোগ্রাম।

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

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

1Ç¡>¹S       Main link. Argument: n (integer)

1            Set the return value to 1.
 Ç¡          Call the helper link n times.
   >¹        Compare the elements of the result with n.
     S       Take the sum, counting elements larger than n.


S‘gṪ’ɗƇḟ¹Ṃṭ  Helper link. Argument: A (array or 1)

S            Take the sum of A.
 ‘           Increment; add 1.
     ɗƇ      Drei comb; keep only elements k of [1, ..., sum(A)+1] for which the
             three links to the left return a truthy value.
  g              Take the GCD of k and all elements of A.
   Ṫ             Tail; extract the last GCD.
    ’            Decrement the result, mapping 1 to 0.
       ḟ¹    Filterfalse; remove the elements that occur in A.
         Ṃ   Take the minimum.
          ṭ  Tack; append the minimum to A.

[1,0,2,4,6,3,9,12,8,10,5,15,]nn+10


6

পার্ল 6 , 66 63 59 58 বাইট

-4 বাইট জো কিংকে ধন্যবাদ

{sum (1,2,{+(1...all *gcd@_[*-1]>1,*∉@_)}...*)[^$_]X>$_}

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

টিআইওতে এন = 1000 এর জন্য খুব ধীর।


@ জোকিং আমি বুঝতে পারলাম যে এর মতো আবারও first &f,1..*লেখা যেতে পারে +(1...&f), আপনার জংশন কৌশলটি সর্বোপরি সহায়তা করেছিল।
নওহ্নহোফ

4

জাভাস্ক্রিপ্ট (ES6), 107 106 105 বাইট

f=(n,a=[2,1],k=3)=>a[n-1]?0:a.indexOf(k)+(C=(a,b)=>b?C(b,a%b):a>1)(k,a[0])?f(n,a,k+1):(k>n)+f(n,[k,...a])

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

কিভাবে?

C

C = (a, b) => b ? C(b, a % b) : a > 1

a[2,1]a[0]

k0

a.indexOf(k) + C(k, a[0])

a.indexOf(k) উভয়ের সমান:

  • 1ka
  • 0k
  • i1

a.indexOf(k) + C(k, a[0])0kak1+true=0



4

হুশ , 16 বাইট

#>¹↑¡§ḟȯ←⌋→`-Nḣ2

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

ব্যাখ্যা

#>¹↑¡§ḟȯ←⌋→`-Nḣ2  Implicit input, say n=10
              ḣ2  Range to 2: [1,2]
    ¡             Construct an infinite list, adding new elements using this function:
                   Argument is list of numbers found so far, say L=[1,2,4]
             N     Natural numbers: [1,2,3,4,5,6,7...
           `-      Remove elements of L: K=[3,5,6,7...
      ḟ            Find first element of K that satisfies this:
                    Argument is a number in K, say 6
     §    →         Last element of L: 4
         ⌋          GCD: 2
       ȯ←           Decrement: 1
                    Implicitly: is it nonzero? Yes, so 6 is good.
                  Result is the EKG sequence: [1,2,4,6,3,9,12...
   ↑              Take the first n elements: [1,2,4,6,3,9,12,8,10,5]
#                 Count the number of those
 >¹               that are larger than n: 1

3

এমএটিএল , 29 বাইট

qq:2:w"GE:yX-y0)yZdqg)1)h]G>z

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

ব্যাখ্যা:

	#implicit input, n, say 10
qq:	#push 1:8
2:	#push [1 2]. Stack: {[1 .. 8], [1 2]}
w	#swap top two elements on stack
"	#begin for loop (do the following n-2 times):
 GE:	#push 1...20. Stack: {[1 2], [1..20]}
 y	#copy from below. Stack:{[1 2], [1..20], [1 2]}
 X-	#set difference. Stack: {[1 2], [3..20]}
 y0)	#copy last element from below. Stack:{[1 2], [3..20], 2}
 yZd	#copy from below and elementwise GCD. Stack:{[1 2], [3..20],[1,2,etc.]}
 qg)	#select those with gcd greater than 1. Stack:{[1 2], [4,6,etc.]}
 1)	#take first. Stack:{[1 2], 4}
 h	#horizontally concatenate. Stack:{[1 2 4]}
 ]	#end of for loop
G>z	#count those greater than input
	#implicit output of result

দয়া করে আপনি ব্যাখ্যা করতে পারেন আপনি কেন ইনপুট দ্বিগুণ করেন (দিয়ে GE:)?
ডেভিড

2
a(n)2na(n)n2n=1000while

3

এপিএল (ডায়ালগ ইউনিকোড) , 39 বাইট এসবিসিএস

-2 বাইট ধন্যবাদ এনএনজি, -1 বাইট সঠিক শর্তাধীন চেকিং ব্যবহার করে।

{+/⍵<⍵⍴3{(1=⍺∨⊃⌽⍵)∨⍺∊⍵:⍵∇⍨⍺+1⋄⍵,⍺}⍣⍵⍳2}

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


অপারেন্ড ফাংশনে তার নিজস্ব বাম যুক্তিটি পাস করে, সুতরাং এর প্রয়োজন নেই । এছাড়াও, কোনও ফাংশন ( ) দিয়ে শুরু হওয়ার সাথে ডানদিকে জিনিসটির সাথে আবদ্ধ হবে না , সুতরাং এর প্রয়োজন নেই
nn


2

এপিএল (এনএআরএস), 121 অক্ষর, বাইট 242

∇r←a w;i;j;v
r←w⋄→0×⍳w≤2⋄i←2⋄r←⍳2⋄v←1,1,(2×w)⍴0
j←¯1+v⍳0
j+←1⋄→3×⍳1=j⊃v⋄→3×⍳∼1<j∨i⊃r⋄r←r,j⋄i+←1⋄v[j]←1⋄→2×⍳w>i
r←+/w<r
∇

চলমান সময়ে এক মিনিটেরও কম সময়ে পরীক্ষা:

  a¨3 10 100 1000 2000
1 1 9 70 128 

স্বাভাবিক এবং প্রকারের জন্য কোনও পরীক্ষা নেই ...


1

জাপট, 23 21 বাইট

@_jX ªAøZ}f}gA=ì)Aè>U

চেষ্টা করে দেখুন

@_jX ªAøZ}f}gA=ì)Aè>U
                          :Implicit input of integer U
             A            :10
               ì          :Digit array
              =           :Reassign to A
@          }g             :While the length of A < U+1, take the last element as X,
                          :pass it through the following function & push the result to A
 _       }f               :  Find the first integer Z >= 0 that returns falsey
  jX                      :    Is Z co-prime with X?
     ª                    :    OR
      AøZ                 :    Does A contain Z?
                )         :End loop
                 Aè>U     :Count the elements in A that are greater than U

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