স্টার ক্রম তৈরি করুন


12

আমি রুবি শিখছি এবং এই সমস্যাটি সমাধানের জন্য আমার প্রথম অনর্থক কোড লিখেছি।

চ্যালেঞ্জটি হ'ল স্তরের অনুক্রমের প্রথম এন উপাদানগুলি তৈরি করা , এস , যা নিম্নলিখিত হিসাবে সংজ্ঞায়িত হয়েছে:

এস [0] = 1

এস [এন] হ'ল সর্বনিম্ন সংখ্যা যা অনুক্রমের দুটি পৃথক পূর্ববর্তী উপাদানের যোগফল হিসাবে প্রকাশ করা যায় না।

সুতরাং ক্রমটি 1, 2, 4, 7 এবং 10 দিয়ে শুরু হয় পরবর্তী উপাদানটি 13, কারণ 11 (= 1 + 10) এবং 12 (= 2 + 10) পূর্ববর্তী উপাদানগুলির যোগফল, তবে 13 নয়।

আমি সংক্ষিপ্ততম কোডটি সন্ধান করছি। আমার নিজের, রুবিতে, 108 টি চরিত্র দীর্ঘ, তবে সম্ভবত আমি পোস্ট করার আগে অন্যেরা কী সামনে আসে তা দেখার জন্য অপেক্ষা করব?


আমি এখন পর্যন্ত উত্তর পছন্দ। এখন, ফিরে যেতে এবং প্রয়োজনীয়তাগুলি পরিবর্তন করতে সম্ভবত খুব দেরী হয়েছে, তবে আমি মনে করি আমার উল্লেখ করা উচিত ছিল যে আমি সিক্যুয়েন্সের সংজ্ঞা নিজেই ব্যবহার করে এমন সমাধানগুলিতে বিশেষভাবে আগ্রহী (যেমন, কোডটি আগে থেকেই জানে না যে শেষ পর্যন্ত সংখ্যাটি 3 দ্বারা বেড়ে যায়)। সুতরাং: নৈতিক বোনাস পয়েন্ট যদি আপনি এটি করতে পারেন।
থিওফিল

গাণিতিক ক্রমগুলির সাথে এ জাতীয় সমস্যা। আপনি যদি প্যাটার্নটি জানেন তবে এটি সাধারণত খাটো হবে।

এই ক্রমটি কোনও ব্যবহার (?) ছাড়াই গাণিতিক।
ব্যবহারকারী 75200

@ ব্যবহারকারী 75200 ক্রমটি গাণিতিক নয়, যেমন আপনি প্রথম তিনটি উপাদানের পার্থক্য থেকে দেখতে পাচ্ছেন, তবে তৃতীয় উপাদানটির সাথে শুরু হওয়া অনুচ্ছেদটি আসলেই গাণিতিক। এটি ডাকটিকিট সমস্যার সাথে সংযোগে ব্যবহৃত হয়।
থিওফিল

উত্তর:


13

এপিএল,।

আপনি যদি সূচক 0 বা সূচক 1 নিয়ে কাজ করতে চান তবে এপিএলে আপনি চয়ন করতে পারেন আপনি বৈশ্বিক পরিবর্তনশীল globalIO ← 0 সেট করে এটি করেন

আমরা যদি সূচক 0 তে কাজ করা বেছে নিই তবে আমাদের কাছে রয়েছে:

+\3⌊1⌈⍳

ব্যাখ্যা:

⍳    creates a sequence 0...n   (0 1 2 3 4 5)
1⌈   takes whichever is bigger, number in sequence or 1 (1 1 2 3 4 5)
3⌊   takes whichever is lower, number in sequence or 3 (1 1 2 3 3 3)
+\   partial sums for the sequence (1 2 4 7 10 13)

এটি ব্যবহার করে দেখুন tryapl.org


আপনি কি 1 টি ভিত্তিক সূচক নিয়ে কাজ করতে পারবেন না এবং তারপরে 1 থেকে n অ্যারে তৈরি করে এবং অন্য 1 এর সাথে কেবল এটিকে প্রেন্ডেন্ড করতে পারেন? যদি এটি করা যায় তবে এটি কি খাটো?
অপ্টিমাইজার

আমার কাছে কোডটি দীর্ঘ ছিল এটি সূচক 1, 10 অক্ষরের জন্য আমার কোড ছিল: + \ 3⌊1, ⍳¯1 + এছাড়াও, সূচি 0-সংস্করণটি 0 টি যুক্তির সাথেও কাজ করে, যখন এটি এক হয় না।
মরিস জুচ্চা

আহ। হ্যাঁ এপিএল সত্যিকার অর্থে এখানে
অপ্টিমাইজার

9

হাস্কেল - 11 21

অলস অসীম ক্রম

1:2:[4,7..]

ফাংশন যা কেবল সরবরাহকৃত সদস্যের সংখ্যা (দীর্ঘশ্বাস) দেয়

flip take$1:2:[4,7..]

আপনি আছে একটি ইনপুট গ্রহণ করা এবং শুধুমাত্র প্রথম প্রিন্ট করতে nনম্বর।
অপ্টিমাইজার

4
@Optimizer ওয়েল, টেকনিক্যালি , আপনি আছে "প্রথম জেনারেট করতে এন -এটা বলে না ভাল হিসাবে আপনি তাদের বাকি জেনারেট করতে পারবেন না Stöhr ক্রম উপাদান"! এটি আপনাকে কোনও ইনপুট নিতে হবে তা বলে না। সুইশের মূল কোডটি আসলে কোনও এন এর জন্য প্রথম এন পদ তৈরি করে ।
wchargin

1
@WChargin ওভারমার্ট হওয়ার চেষ্টা করা নতুন নয়। ওপির শব্দটিকে খুব আক্ষরিক অর্থে গ্রহণ করা এবং প্রয়োজনের চেয়ে অতিরিক্ত আউটপুট উত্পাদন করা উভয়কেই মান ফাঁক হিসাবে বিবেচনা করা হয়।
অপ্টিমাইজার

2
@ অপ্টিমাইজার প্রকৃতপক্ষে, অলস হওয়ার অর্থ এটি না করা পর্যন্ত কোনও অতিরিক্ত আউটপুট তৈরি করা হবে না, এবং আপনি যে কোনও শর্ত চাইবেন জানতে চাইতে পারেন।
ফিটফাট

1
@ সুইশ আমি বুঝতে পারি না এখানে অলসতা কী?
অপ্টিমাইজার


6

সিজেম, 14 বাইট

1l~{_p_3e<+}*;

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

শুরু হয় 1. এ। তারপরে, এস [এন] = এস [এন -1] + মিনিট (এস [এন -1], 3)

1l~{_p_3e<+}*;
1              "Push 1.";
 l~            "Read and evaluate input N.";
   {       }*  "Repeat this block N times.":
    _p         "Duplicate the last number and print it.";
      _3e<     "Duplicate it again, and take minimum with 3.";
          +    "Add to last number.";
             ; "Discard final number to prevent output.";

এইটি h -Stöhr সিকোয়েন্সগুলিতে সহজেই জেনারেলাইজ হয় যদি আমরা 3 দ্বারা 2 h -1 প্রতিস্থাপন করি ।


6

ব্রেইনফাক, ১৩ টি চর

+.+.++.[+++.]

বা 30 টি অক্ষর যদি আমরা এটিকে এন আউটপুটগুলিতে সীমাবদ্ধ করতে চাই তবে:

,->+.<[->+.<[->++.<[->+++.<]]]

1
আমার মনে হয় আপনার প্রথম nউপাদানগুলি মুদ্রণ করা দরকার ,
সেগুলির

@ Sp3000 চারকডগুলি সংখ্যার ইনপুট এবং আউটপুট হিসাবে সাধারণত গৃহীত হয়? মেটাতে খুঁজে পাচ্ছি না। এটি দিয়ে বিএফ কোডে সংশোধন করা মোটামুটি সহজ হবে।
এলোমেলো

এই জন্য সাধারণ sensকমত্য কী তা ব্যক্তিগতভাবে আমি নিশ্চিত নই, দুঃখিত। আমারও এ নিয়ে কিছুটা সমস্যা হয়েছে।
Sp3000

প্রথম এন উপাদানগুলির জন্য, আমি মনে করি - আমি করতে পারি -> + < । এবং আমি মনে করি না যে ভাষাটি ইনপুট এবং আউটপুট জন্য ASCII কোডগুলি ব্যবহার করার ক্ষেত্রে বিশেষভাবে সীমাবদ্ধ।
jgosar

1
আপনার কোড আছে প্রশ্নের উত্তর দিতে এমনকি যদি এটা যে মার্জিত নয়। আমি পোস্টটি সম্পাদনা করার এবং উত্তরটি সংশোধন করার পরামর্শ দেব ,->+.<[->+.<[->++.<[->+++.<]]]। (আপনি শুরুতে ইনপুট রিডিং কমাটি মিস করেছেন))
এলোমেলোভাবে

4

পাইথন, 136 বাইট

def f(n):
 if n<1:return[1]
 x=f(n-1);y=set(x)|{a+b for a in x for b in x if a!=b};return x+[min([a for a in range(1,max(y)+2)if{a}-y])]

সংজ্ঞা থেকে সরাসরি। আমি এটি কতটা গল্ফ করতে পারি তা নিশ্চিত নই - এটি আমার প্রত্যাশার চেয়ে অবশ্যই অনেক দীর্ঘ longer


3

জে, 14 অক্ষর

এটি কেবল ক্রমটিকে হার্ডকোড করে [1,2, 4+3*k (k=0..n-1) ]এবং প্রথমটি নেয় N

   ({.1,2,4+3*i.) 10
1 2 4 7 10 13 16 19 22 25

জে, 18 অক্ষর

এই এক একটি রৈখিক সমন্বয় ব্যবহার করে [0,1,2,3...], [1,1,0,0...]এবং [0,1,1,1...]। খাটো হওয়া উচিত তবে এটি গল্ফ বলে মনে হচ্ছে না।

   ((3&*+<&2-2**)@i.) 10
1 2 4 7 10 13 16 19 22 25

3

উপস্থাপনা , 32 20

সম্পাদনা: ... এখন দ্বিগুণ কণ্ঠের সাথে!

?(1-)
4 +3
2  ^
1 !^

এটি পাইথন দোভাষী সাথে অনুমান করে NUMERIC_OUTPUT = True। ব্রেইনফাক জমা দেওয়ার মতো এই উত্তরটি ধরে নেওয়া হয় যে কোড পয়েন্ট আকারে ইনপুট দেওয়া হয়েছে। আংশিকভাবে এই মেটা আলোচনার জন্য আরও মনোযোগ পেতে (এবং আংশিক, কারণ আমি প্রিলেডকে ভালোবাসি)। সুতরাং আপনি যদি প্রথম 32 নম্বর মুদ্রণ করতে চান, বলুন, আপনার STDIN এ একটি স্থান রাখা দরকার। অবশ্যই, এর অর্থ হ'ল বৈধ ইনপুটগুলির একটি উচ্চতর সীমা রয়েছে, তবে এই উত্তরটি যাইহোক জিততে পারে না, তাই আমি মনে করি প্রিলিউডের সীমাবদ্ধতার মধ্যে এটি ভাল।

ব্যাখ্যা

প্রিলিওডে, সমস্ত লাইন সমান্তরালভাবে নির্বাহ করা হয়, যার নিজস্ব লাইনটি একটি সীমাহীন সীমারেখার সাথে শুরু করে line কেবলমাত্র একটি একক নির্দেশিকা পয়েন্টার রয়েছে (কলামগুলিতে ইঙ্গিত করছে), সুতরাং আপনি যদি একটি ভয়েসে লুপ প্রবেশ করেন তবে অন্যান্য সমস্ত ভয়েসেস তার সাথে লুপ হবে।

নিম্নলিখিতগুলিতে আমি কোডটি স্থানান্তর করেছি, যাতে আমি কলামগুলির পরিবর্তে লাইনগুলি টিকা দিতে পারি:

?421  Read a character into the first stack. Push 4, 2, 1 onto the other stacks, respectively.
      Generally, the fourth stack will hold the next number to be printed, the third stack the
      one after that, and the second stack the number two steps ahead.
(     Start a loop if the input wasn't 0.
1+ !  Push a 1 onto the first stack. Add the top elements in the second stack. On the first
      iteration this will be 0 and 4, so it does nothing. On all further iterations
      this will increment the last number by 3.
-3^^  Subtract one from the first stack. Push a 3 onto the second stack for the next iteration.
      Copy the last value from the second to the third, and the third to the fourth stack.
)     If the top of the first stack is not 0, jump back to the column after the (.

2

জাভাস্ক্রিপ্ট (ES6) 92

সমস্যা সংজ্ঞা উপর ভিত্তি করে একটি পুনরাবৃত্ত ফাংশন হিসাবে

S=(n,v=1,s=[],r=0)=>[for(a of s)for(b of s)r+=(a-b&&a+b==v)]|r||(s.push(v),--n)?S(n,v+1,s):s

1,2, 1 + 3 * কে: 58 প্যাটার্নটি ব্যবহার করে

S=(n)=>(i=>{for(t=1;n>r.push(t+=i);i+=(i<3));})(0,r=[])||r

পার্শ্ব নোট: এইচ-স্টাহর ক্রম সন্ধান করা ( hকেবলমাত্র 2 এর পরিবর্তে সংখ্যার যোগফল যাচাই করা )। Rফাংশন তালিকা উপাদানের একটি প্রদত্ত সংখ্যার আপ সব সম্ভব অঙ্কের চেষ্টা করে।

S=(n,h=2,s=[],v=1,R=(t,v,l,i=0,r=t,w)=>{
  for(;r&&l&&v[i];i++)
    w=[...v],r=!R(t-w.splice(i,1),w,l-1)
  return!r;
})=>R(v,s,h)||(s.push(v),--n)?S(n,h,s,v+1):s

অসম্পূর্ণ মোটামুটি সমতুল্য (এবং ES5 সামঞ্জস্যপূর্ণ)

function S(n, v, s)
{
  var r=0,a,b
  v = v||1
  s = s||[]
  for(a of s)
    for(b of s)
    {
      if (a != b && a+b == v) 
        r++;
    }
  if (r == 0) 
  {
    s.push(v);
    --n;
  }
  if (n != 0)
     return S(n,v+1,s)
  else
     return s
}

টেস্ট ফায়ারফক্স / ফায়ারবাগ কনসোলটি। সাধারণ ফাংশন:

S(20)

[1, 2, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55]

উন্নত ফাংশন:

S(10,5)

[1, 2, 4, 8, 16, 32, 63, 94, 125, 156]


2

> <> (মাছ) , 72 65 49 46 অক্ষর

1n1-:?!;' 'o2n1-v
v1&no' ':<4&;!?:<
>-:?!;&3+^

ইনপুট দোভাষীর সরবরাহ করা হয়:

>fish.py stohr.fish -v 10
1 2 4 7 10 13 16 19 22 25

আমার প্রথম> <> প্রোগ্রাম, পরামর্শগুলি প্রশংসা করেছে।


ওহ দারুণ! আমি আশা করছিলাম যে কেউ একটি> <> প্রোগ্রাম লিখবেন।
থিওফিল

2

> <>, 31 বাইট

4i1nao:?!;2nao1-:?!;$:nao3+$d0.

একক চরে পড়ে, এর কোড পয়েন্ট ব্যবহার করে (উদাঃ স্পেস = 32) এবং প্রতিটি লাইনে একটি করে নম্বর মুদ্রণ করে।


2

পার্ল 6 22/30

আমি দেখতে যাচ্ছি যে পার্ল 6 আমার জন্য ক্রমটি কমাতে পারে uce

এটি করার জন্য আমি পার্ল into এ অন্তর্নির্মিত আরপিএল ব্যবহার করেছি

$ perl6
> 1,2,4,7...*
Unable to deduce arithmetic or geometric sequence from 2,4,7 (or did you really mean '..'?)
> 1,2,4,7,10...*
1 2 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 ...

হুম, আমি পার্লকে যে প্যাটার্নটি হ্রাস করেছিল তা দেখতে পাচ্ছি। পরবর্তী মান পেতে 4 এর পরে আপনি কেবল 3 যুক্ত করুন।

1,2,4,*+3...*

যা স্ট্রহর অনুক্রমের 13 অক্ষর দীর্ঘ লম্বা সংখ্যার একটি অসীম তালিকা পেতে কোড তৈরি করে একটি অক্ষর সংরক্ষণ করে।

যেহেতু এটি ছাপে এই কোড শুধুমাত্র কিছু REPL দরকারী করে সারকথা আমাদের জন্য ফলাফল। অন্যথায় এটি মুদ্রণের জন্য আপনাকে ফলাফলগুলি প্রিন্ট করার জন্য স্পষ্টভাবে পার্লকে বলতে হবে।

$ perl6 -e 'say 1,2,4,*+3...*'

( * + 3কোনও কোড রেফারেন্স পাওয়ার সহজ উপায় যা 3 টি প্রদান করে এটি কেবল যুক্তি হিসাবে যুক্ত হয় it এটি লেখার অন্যান্য উপায় হতে পারে { $_ + 3 }, বা -> $i { $i + 3 }, বা{ $^i + 3 } বা sub ($i){ $i + 3 }))


প্রথম এন তৈরির জন্য কলযোগ্য কিছু তৈরি করার সবচেয়ে সংক্ষিপ্ততম উপায় উপাদানগুলি উপাদানগুলির একটি স্লাইস পাওয়া।

{(1,2,4,*+3...*)[^$_]} # 22

অকার্যকর প্রসঙ্গে যা প্রথম $_মান তৈরি করে তাৎক্ষণিকভাবে এগুলি ফেলে দেয় them

অকার্যকর প্রসঙ্গ ব্যতীত অন্য কোনও ক্ষেত্রে এটি একটি বেনামি কোড ব্লক তৈরি করে (একটি নাম ছাড়াই একটি মৌলিক সাবরুটিন) যা একটি যুক্তি গ্রহণ করে।

# store it in a scalar variable
my $sub = {(1,2,4,*+3...*)[^$_]};
say $sub.(5);
# 1 2 4 7 10

# use it immediately
say {(1,2,4,*+3...*)[^$_]}.(5);
# 1 2 4 7 10

# pretend it always had a name
my &Stöhr-first = {(1,2,4,*+3...*)[^$_]};
say Stöhr-first 5;

আপনি যদি সত্যিই ভাবেন যে এই চ্যালেঞ্জটির বৈধ হিসাবে যোগ্যতার জন্য এর একটি নাম থাকতে হবে আপনি সম্ভবত এটি করতে পারেন:

sub s(\n){(1,2,4,*+3...*)[^n]} # 30

যদিও যেহেতু sসাবস্টিটিউশন অপারেটরের জন্য এটি ব্যবহৃত হয়, এটি প্যারেন্সগুলি অ-alচ্ছিক বলে অভিহিত করা হয়। (আমি মনে করি আপনি এটির কোনও আলাদা নাম দিতে পারতেন)

say s(5);
# 1 2 4 7 10

চ্যালেঞ্জের অন্যথায় নির্দিষ্ট না করা পর্যন্ত কোড গল্ফ চ্যালেঞ্জগুলিতে জমা দেওয়ার জন্য কেবল স্নিপেট নয়, পুরো প্রোগ্রাম বা ফাংশন থাকতে হবে
মার্টিন এেন্ডার

@ মার্টিনব্যাটনার ন্যায্য হতে 1,2,4,*+3...*আসলে একটি বস্তু তৈরি করে যা প্রয়োজনীয় মানগুলি তৈরি করে। আমি মনে করি না যে অনেকেই পার্ল 6-তে এরকম কিছু কাছাকাছি কলযোগ্য কিছু তৈরি করবে ।
ব্র্যাড গিলবার্ট ২:5

2

আমি দেখতে পাচ্ছি ইতিমধ্যে একটি আরও ভাল জাভা উত্তর আছে তবে আমি এটিতে কিছুক্ষণ ব্যয় করেছি এবং আমি এটি পোস্ট করতে চলেছি। এমনকি যদি এটি স্তন্যপান হয়।

জাভা 313 চর (স্ক্রিনে এটি ফিট করার জন্য +4)

import java.util.*;public class S{public static void main(String[] a){
Set<Integer> S=new HashSet<Integer>();S.add(1);int i=1,k=0;
while(S.size()<=new Integer(a[0])){if(S.contains(i)){}else{k=0;for(int j:S){
for(int l:S){if(l!=j){if((j+l)==i)k=1;}}}if(k==0)S.add(i);}i++;}for(int x:S)
{System.out.println(x);}}}

কীভাবে উন্নতি করতে হবে তার কোনও পরামর্শ বা পয়েন্টার পেতে সর্বদা কৃতজ্ঞ


1

টি-এসকিউএল 204

ধরে নিই যে ইনপুটটি @N নামে একটি ভেরিয়েবলে রয়েছে। আপনি চাইলে আমি একটি পদ্ধতি তৈরি করতে পারি, তবে সত্যিই টি-এসকিউএল তে এসটিডিএনপি পাওয়ার কোনও ভাল উপায় নেই।

এছাড়াও, নৈতিক বোনাসের জন্য হ্যাঁ!

DECLARE @Q INT=0,@B INT=2
DECLARE @ TABLE(A INT)WHILE @N>0
BEGIN
SET @N-=1
WHILE @B>1
BEGIN
SET @Q+=1
SELECT @B=COUNT(*)FROM @ C,@ B WHERE C.A+B.A=@Q
END
INSERT INTO @ VALUES(@Q)SET @B=2
END
SELECT*FROM @

নিস! আমি এসকিউএল সম্পর্কে খুব বেশি জানি না @ এখানে কীভাবে @ এন ব্যবহৃত হয়? আমি দেখতে পাচ্ছি যে এটি শুরুটির কাছাকাছি রয়েছে তবে এটি পরে উল্লেখ করা হবে বলে মনে হয় না।
থিওফিল

দেখে মনে হচ্ছে @N"ফর লুপ" এর "আমি"।
জ্যাকব

জ্যাকব ঠিক বলেছেন। @N হ'ল লুপটির "i", যা এসকিউএল-এর কিছুক্ষণ লুপ। মূলত এটি নিজের সাথে টেবিলের সাথে যোগ দেয় এবং এমন জুড়ি খুঁজে পায় যা @Q এ যুক্ত হয়। যদি কমপক্ষে দুটি জোড়া থাকে (যেমন নিজের সাথে কেবল একটি সংখ্যা নয়) তবে এটি এড়িয়ে যায়। অন্যথায়, এটি টেবিলে যুক্ত করে। @ টেবিলের নাম।
বার্টস চিহ্নগুলি

1

গণিত, 27 বাইট

হুম, এখনও ম্যাথমেটিকার উত্তর নেই? এখানে দুটি:

NestList[#+3~Min~#&,1,#-1]&
Array[i=1/2;i+=3~Min~i&,#]&

উভয় একটি নামহীন বিশুদ্ধ ফাংশন সংজ্ঞায়িত করে যা একটি পূর্ণসংখ্যা পায় এবং পূর্ণসংখ্যার একটি তালিকা প্রদান করে। এটি আমার সিজেএম জমা দেওয়ার মতো একই পুনরাবৃত্ত সম্পর্কের উপর ভিত্তি করে। নোট করুন যে- Arrayভিত্তিক কোডটি শুরু হয় 1/2, কারণ পুনরাবৃত্তির সম্পর্কটি মান ফেরত দেওয়ার আগে সর্বদা প্রয়োগ করা হয়।



1

পাইথন - এমনকি কাছে নয় (139)

অন্যরা যেমন করল তেমন সহজে গণনাযোগ্য ছিল না এই ধারণার অধীনে অভিনয় করা, আমি যে সংক্ষিপ্ততম সমাধানটি পেয়েছি তা নীচে রয়েছে:

from itertools import combinations as C
x,i,n=[],1,input()
while len(x)<=n:
 if i not in [sum(y) for y in C(x,2)]:x.append(i)
 i+=1
print n

1

ক্লোজার - 130 118

(defn s[n](last(take n(iterate #(if(<(count %)3)(conj %(+ (apply + %)1))(conj %(+(last %)(second %)(first %))))[1]))))

আন-গল্ফ করা সংস্করণ:

(defn stohr [n]
  (last
    (take n
      (iterate #(if (< (count %) 3)
                   (conj % (+ (apply + %) 1))
                   (conj % (+ (last %) (second %) (first %)))) [1]))))

শেয়ার করুন এবং উপভোগ করুন।


1

রুবি - 108 88

q=->n{*k=1;(m=k[-1];k<<([*m+1..2*m]-k.combination(2).map{|i,j|i+j})[0])while k.size<n;k}

এটি ক্রমের সংজ্ঞাটি ব্যবহার করে।

আরও পঠনযোগ্য সংস্করণ:

q=->n{
    *k=1
    (
        m = k[-1]
        k << ([*m+1..2*m] - k.combination(2).map{|i,j|i+j})[0]
    ) while k.size < n
    k
}

প্রিন্ট Q [10]

[1, 2, 4, 7, 10, 13, 16, 19, 22, 25]


রুবি গল্ফ টিপস: *k=1পরিবর্তে k=[1]foo while barপরিবর্তে while bar;foo;end[*s..e]পরিবর্তে (s..e).to_a.mapপরিবর্তে to_a.map{|a,b|a+b}পরিবর্তে {|i|i.inject(:+)}
হিস্টোক্র্যাট

@ ইতিহাসবিদ ধন্যবাদ, এটি খুব সহায়ক!
থিওফিল


0

টিআই-বেসিক, 41 27 30 বাইট

আপনার ক্যালকুলেটর জন্য

Input N:For(I,1,N:I:If I>2:(I-2)3+1:Disp Ans:End

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