একটানা সমান বাইনারি অঙ্ক ছাড়াই প্রথম এন সংখ্যাগুলি


32

অনুক্রমটিতে ফর্মের বাইনারি সংখ্যার দশমিক প্রতিনিধিত্ব থাকে: 10101...যেখানে এন-থ পদের এন বিট রয়েছে।

সংখ্যাগুলির বাইনারি এবং দশমিক উপস্থাপনার মধ্যে সম্পর্কগুলি দেখিয়ে ক্রমটি ব্যাখ্যা করা সম্ভবত সবচেয়ে সহজ:

0       ->  0
1       ->  1
10      ->  2
101     ->  5
1010    ->  10
10101   ->  21
101010  ->  42

চ্যালেঞ্জ:

একটি ইনপুট পূর্ণসংখ্যা নিন nএবং ক্রমের প্রথম এন সংখ্যাগুলি দিন। সিকোয়েন্সটি 0-ইনডেক্সড বা 1-ইনডেক্সেড চয়ন করতে পারেন।

পরীক্ষার কেস:

n = 1   <- 1-indexed
0

n = 18
0, 1, 2, 5, 10, 21, 42, 85, 170, 341, 682, 1365, 2730, 5461, 10922, 21845, 43690, 87381

ব্যাখ্যা সর্বদা হিসাবে উত্সাহিত হয়।

এটি OEIS A000975


আপনার নিজের এমএটিএল সমাধানটি দেওয়া, বিপরীত ক্রমে ফলাফল আউটপুট করা কি গ্রহণযোগ্য?
শেগি

হ্যাঁ, যতক্ষণ এটি বাছাই করা হয়। @ শেগি
স্টিভি গ্রিফিন

আমার ভাগ্য এখানে ঠেলা, কিন্তু এই আউটপুট ফর্ম্যাট গ্রহণযোগ্য হবে [85,[42,[21,[10,[5,[2,[1,0]]]]]]]?
শেগি

উত্তর:


66

পাইথন 2 , 36 বাইট

lambda n:[2**i*2/3for i in range(n)]

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: বাইনারি উপস্থাপনা হয় , তাই এটি কেবল 2 একটি যথাযথ শক্তিতে গুন এবং পূর্ণসংখ্যা অংশ নিতে রয়ে যায়।230.101010101...


1
খুব খারাপ, এটা জানুয়ারী 2018 এর অন্যথায় আমি এটা জন্য মনোনীত হতো PPCG 2017 এর শ্রেষ্ঠ জন্য সর্বোত্তম গাণিতিক অন্তর্দৃষ্টি । আশা রাখি, আমি এখনও 2019. শুরুতে এটি মনে; পি
কেভিন Cruijssen

@KevinCruijssen এই শ্রেষ্ঠ আমি সব আউট দেখা করেছি codegolf.stackexchange.com/a/51574/17360
qwr

3
@ কেভিন ক্রুজসেন ভুলে যাবেন না!
বাসপ্রডো কম্বারউবউউবউব

2
@ বাসড্রপকম্বারউবউউবউব অনুস্মারকটির জন্য ধন্যবাদ, কারণ আমি সত্যই এটি সম্পর্কে সম্পূর্ণ ভুলে গিয়েছিলাম! এটি মনোনয়নের সাথে যুক্ত করা হয়েছিল।
কেভিন ক্রুইজসেন

11

05 এ বি 1 ই , 4 বাইট

নীলের 2/3 ট্রিক ব্যবহার করে 2 বাইট সংরক্ষণ করা হয়েছে

Lo3÷

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

ব্যাখ্যা

L      # push range [1 ... input]
 o     # raise 2 to the power of each
  3÷   # integer division of each by 3

05 এ বি 1 ই , 6 বাইট

TRI∍ηC

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

ব্যাখ্যা

T        # push 10
 R       # reverse it
  I∍     # extend to the lenght of the input
    η    # compute prefixes
     C   # convert each from base-2 to base-10

9

জেলি , ... 4 বাইট

-১ বাইটের জন্য ধন্যবাদ মাইল !

ḶḂḄƤ

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

ব্যাখ্যা:

owered range, or Unength. Get [0, 1, 2, 3, ..., n-1]
 Ḃ    it. Get the last bit of each number. [0, 1, 0, 1, ...]
   Ƥ  for each Ƥrefixes [0], [0, 1], [0, 1, 0], [0, 1, 0, 1], ...
  Ḅ   convert it from inary to integer.

জেলি , 4 বাইট

জোনাথন অ্যালানের সংস্করণ।

Ḷ€ḂḄ

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

owered range, or Unength.
 €    Apply for each. Automatically convert the number n
      to the range [1,2,..,n]. Get [[0],[0,1],[0,1,2],..].
  Ḃ   it. Get the last bit from each number.
      Current value: [[0],[0,1],[0,1,0],..]
   Ḅ  Convert each list from inary to integer.

নীল এর 2/3 ট্রিক উপর ভিত্তি করে একটি সংস্করণ 5 বাইট দেয়, পুনর্বিবেচনা ইতিহাস দেখুন


ḶḂḄƤউপসর্গটি দ্রুত এর জন্য তৈরি করা হয়েছিল
মাইল 13 '

উপসর্গের দ্রুত এমনকি প্রয়োজন নেই - Ḷ€ḂḄএছাড়াও কাজ করবে।
জোনাথন অ্যালান

5

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

:WI/k

নীলের উত্তরের ভিত্তিতে ।

ব্যাখ্যা

:       % Implicit input, n. Push range [1 2 ... n]
W       % 2 raised to that, element-wise. Gives [2 4 ...2^n] 
I       % Push 3
/       % Divide, element-wise
k       % Round down, element-wise. Implicit display

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


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

:q"@:oXBs

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

ব্যাখ্যা

:       % Implicit input n. Range [1 2 ... n]
q       % Subtract 1, element-wise: gives [0 1 ... n-1]
"       % For each k in [0 1 ... n-1]
  @     %   Push k
  :     %   Range [1 2 ... k]
  o     %   Modulo 2, element-wise: gives [1 0 1 ...]
  XB    %   Convert from binary to decimal
  s     %   Sum. This is needed for k=0, to transform the empty array into 0
        % Implicit end. Implicit display

5

পাইথন 2 , 45 37 36 বাইট

-3 বাইট ব্যবহারকারীর জন্য ধন্যবাদ 202729
-1 বাইট ধন্যবাদ ম্যাথমন্ডনে

s=0
exec"print s;s+=s+~s%2;"*input()

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


দ্বিগুণ sহওয়া নিজের মধ্যে যোগ sকরার সমান , তাই আমি বিশ্বাস করি আপনি s+=s+~s%2বাইট সংরক্ষণ করতে পারেন ।
mathmandan

5

পাইথন 3, 68 61 54 48 43 বাইট

c=lambda x,r=0:x and[r]+c(x-1,2*r+~r%2)or[]  

ব্যবহারকারীর জন্য ধন্যবাদ 202729 19 বাইট এবং ovs 6 বাইট সংরক্ষণ করতে সাহায্য করার জন্য

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


-1 বাইট জন্য ধন্যবাদ। এবং আমার মনে হয় আমি আর প্রতিস্থাপন করতে পারব না এবং বা?
মনীষ কুণ্ডু

ঠিক আছে যে ইতিমধ্যে সম্পন্ন।
মনীষ কুণ্ডু

2
যেহেতু যদি একটি পূর্ণসংখ্যা হয় x == 0তার সমতুল্য , অপারেন্ডগুলি অদলবদল (যেমন, = ) আরও কিছু বাইট সংরক্ষণ করবে। not xxx if c else yy if not c else x
ব্যবহারকারী 202729

আপনি এর পরিবর্তে ড্রপ i%2এবং ব্যবহার করতে পারেন1-r%2
রড

1
তারপরে আপনার নজর রাখার দরকার নেই i
ব্যবহারকারী 202729


4

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

ধরে নেওয়া ⎕IO( I ndex O rigin) 0, যা বহু সিস্টেমে ডিফল্ট। বেনামে ট্যাসিট প্রিফিক্স ফাংশন। 1-ইন্ডেক্স।

(2⊥⍴∘1 0)¨⍳

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

d ndices 0… n − 1

( প্রত্যেকের জন্য নিম্নলিখিত ট্যাসিট ফাংশনটি প্রয়োগ করুন

⍴∘1 0 চক্রাকারে [1,0]সেই দৈর্ঘ্যের তালিকাটি পুনরায় আকার দিন

2⊥ বেস -২ (বাইনারি) থেকে সাধারণ সংখ্যায় রূপান্তর করুন


4

পার্লv5.10 -n , 24 + 1 বাইট

-3 বাইট ধন্যবাদ নাহুয়েল ফুইলুলকে !

say$v=$v*2|$|--while$_--

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

আমার রুবি সংস্করণ হিসাবে একই যুক্তি, তবে সংক্ষিপ্ত কারণ পার্ল আরও সংক্ষিপ্ত। কিছু অদ্ভুত কারণে, printকোনও পৃথক (জালিয়াতি!) করবেন না, সুতরাং এটি চালানোর জন্য আমাকে এগুলি ব্যবহার করতে sayহয়েছিল v5.10;, আমি কীভাবে এটি স্কোর করব তা নিশ্চিত নই, সুতরাং আমি এখনই এটি ছেড়ে যাচ্ছি? ..

ব্যাখ্যা

say    # Like shouting, but milder.
  $v = $v*2 | $|-- # Next element is this element times 2 bitwise-OR
                   # with alternating 0 1 0 1..., so 0b0, 0b1, 0b10, 0b101...
                   # $. is OUTPUT_AUTOFLUSH, which is initially 0 and
                   #   setting all non-zero values seem to be treated as 1
  while $_-- # do for [input] times

স্কোরিংয়ের জন্য আমি বলব: ২ + + ১ ( -n) = ২৮ বাইট, কারণ পার্ল ওয়ান-লাইনার চালানোর জন্য একজনের ব্যবহার করা উচিত -eএবং -E
5..১০

এর $|--পরিবর্তে 3 বাইট ব্যবহার করে সংরক্ষণ করতে পারেন($.^=1)
নাহুয়েল ফিউইলুল


4

একাধিক শর্ত প্রদান করে। এর অধীনে চলুন ⎕IO←0(তবে এটি 1-ইনডেক্সড দাবি করুন!) এবং এতে পরিবর্তন 0,করুন 1+:(2⊥2|⍳)¨1+⍳
আদম

4

সি , 81 55 59 বাইট

1 সূচকযুক্ত।

i,j;f(c){for(i=j=0;i<c;)printf("%d ",i++&1?j+=j+1:(j+=j));}

সম্পূর্ণ প্রোগ্রাম, কম গল্ফড:

i;j;main(c,v)char**v;{c=atoi(*++v);for(;i<c;i++)printf("%d ",i&1?j+=j+1:(j+=j));}

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

সম্পাদনা 2: আমি এই ধারণার অধীনে ছিলাম যে ফাংশনগুলি এখন আমার পুনরায় ব্যবহারযোগ্য হওয়ার দরকার নেই যে আমি এটির কথা চিন্তা করি, এটি সঠিক ধারণা দেয় যে তাদের পুনরায় ব্যবহারযোগ্য হতে হবে: পি

সম্পাদনা: আমি এই ভুল ধারণার মধ্যে ছিলাম যে আমাকে পুরো প্রোগ্রামটির উত্তরে অন্তর্ভুক্ত করতে হয়েছিল, আমার কেবল এটির কার্যকারিতা দরকার ছিল needed ওটা সুন্দর.

আমি শালীনভাবে নিশ্চিত যে আমি এখানে এবং সেখানে কয়েকটি বাইট ছাঁটাই করতে পারি। আমি ইতিমধ্যে কয়েকটি কৌশল কাজে লাগিয়েছি। প্রোগ্রামটির একটি বড় অংশটি আর্গুমেন্টটি পেতে এবং এটি একটি int- এ পরিণত করতে উত্সর্গীকৃত। এটি আমার প্রথম কোড গল্ফ। আমি যদি কিছু ভুল করে থাকি তবে আমাকে বলুন: পি


2
পিপিসিজিতে আপনাকে স্বাগতম! :) আমি সি লোক নই তবে আপনি স্টেডিবক্সের সমাধান থেকে কিছু ইঙ্গিত সংগ্রহ করতে সক্ষম হতে পারেন ।
শেগি

ঠিক আছে এটি এখন আরও সার্থক করে তোলে, আমার সমস্ত প্রয়োজন একটি ফাংশন হলে আমি পুরো প্রোগ্রামটি অন্তর্ভুক্ত করেছি এবং বাকী অংশটি ফুটারে করা যেতে পারে। আমার ধারণা এটি তখন উন্নত হতে পারে can
মিনারস্কেল

পিপিসিজিতে আপনাকে স্বাগতম! আপনি সরিয়ে একটি বাইট সংরক্ষণ করতে পারবেন i++এবং পরিবর্তন i&1করার i++&1। এছাড়াও, যদিও গ্লোবাল ভেরিয়েবল হিসাবে iএবং jপ্রাথমিকভাবে শূন্যে আবর্তিত হয় তবে ফাংশনের অভ্যন্তরে তাদের আরম্ভ করা দরকার, কারণ ফাংশন সাবমিশনগুলি পুনরায় ব্যবহারযোগ্য হতে হবে
স্টেডিবক্স

1
আরও ভাল, সম্পূর্ণ আরও তিনটি বাইট সংরক্ষণ করা সম্ভব 2
ব্যবহারকারী 202729

2
50 বাইট: i,j;f(c){for(i=j=0;i<c;)printf("%d ",j+=j+i++%2);} এটি অনলাইনে চেষ্টা করুন!
স্টেডিবক্স

4

হাস্কেল , 47 40 53 49 44 40 34 বাইট

-4 বাইট ব্যবহারকারীর জন্য ধন্যবাদ 202729
-6 বাইট লাইকোনিকে ধন্যবাদ

(`take`l)
l=0:[2*a+1-a`mod`2|a<-l]

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


আপনি otherwiseউদাহরণস্বরূপ 1>0( otherwise == True)
flawr

আরও গল্ফ করার জন্য, আপনি কিছু বরাদ্দ দেওয়ার জন্য গার্ডটি ব্যবহার করতে পারেন, যেমন: এটি অনলাইনে চেষ্টা করুন!
flawr

1
PS: এছাড়াও হানকেলে গল্ফ করার পাশাপাশি আমাদের মনড এবং পুরুষদের হ্যাসেল -চ্যাটরুমের জন্য টিপসও দেখুন
flawr

1
আপনাকে এমন একটি ফাংশন তৈরি করতে হবে যা তালিকার প্রথম এন উপাদানগুলিকে ফেরত দেয় যেখানে n আর্গুমেন্ট।
সম্পূর্ণরূপে

1
হ্যাঁ অবশ্যই. আমি হাস্কেলের গল্ফিং বিধিমালিকাগুলি সম্পর্কে আমাদের গাইডের দিকে নজর দেওয়ার পরামর্শ দিতে পারি , যা অনুমোদিত এবং কী নয় তা নিয়ে বর্তমান sensকমত্যকে ধরার চেষ্টা করে।
লাইকোনি

4

রুবি , 26 বাইট

->n{(1..n).map{|i|2**i/3}}

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

সমস্ত পুরানো রুবি উত্তর বীট।

ব্যাখ্যা

1/3বাইনারি মত দেখতে 0.01010101..., সুতরাং আপনি যদি এটি দুটি দ্বারা গুণ করে, আপনি পাবেন:

n| 2^n/3
-+---------
1|0.1010101...
2|01.010101...
3|010.10101...
4|0101.0101...
5|01010.101...
6|010101.01...

তবে রুবি আমার প্রয়োজন অনুসারে ক্রমটি প্রদান করে সংখ্যার বিভাজনে নম্বরগুলি মেঝে করে।


4

জে , 9 বাইট

[:#.\2|i.

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

i. - তালিকা 0..n-1

2| - তালিকার আইটেমগুলি মোড 2

\ - সমস্ত উপসর্গ

#. - দশমিক

[: - কাঁটাচামচ ক্যাপ করুন (যেমন আমার ক্রিয়াগুলির সংখ্যা (4 )ও রয়েছে)

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


3

রেটিনা , 28 বাইট

)K`0
"$+"+¶<`.+
$.(*__2*$-1*

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

0-ভিত্তিক, সুতরাং ইনপুট এন প্রথম দেয় এন + 1 ফলাফল দেয়।

ব্যাখ্যা

ওইআইএস থেকে পুনরাবৃত্তি ব্যবহার করে:

a(n) = a(n-1) + 2*a(n-2) + 1

চলুন প্রোগ্রামটির মাধ্যমে চলুন:

)K`0

এটি একটি ধ্রুবক পর্যায়: এটি ইনপুটটি বাতিল করে এবং কার্যকারী স্ট্রিংটিকে 0সিকোয়েন্সের প্রাথমিক মান সেট করে । )একটি গ্রুপ এই পর্যায়ে গোপন। এই গোষ্ঠীটি নিজেই কিছু করে না, তবে প্রায় প্রতিটি পর্যায়ে (গ্রুপ পর্যায় সহ) এর ফলাফলটি একটি লগতে রেকর্ড করে, এবং 0প্রোগ্রামটি কাজ করার জন্য আমাদের সেই লগটিতে অনুলিপিটির দুটি কপি প্রয়োজন হবে ।

"$+"+¶<`.+
$.(*__2*$-1*

এখানে কনফিগারেশনের একটি গুচ্ছ রয়েছে: "$+"+একটি লুপে মঞ্চটি মোড়ক করে। "$+"একটি প্রতিকল্পন হিসাবে গণ্য, এবং হয় $+প্রোগ্রামের ইনপুট, অর্থাত বোঝায় এন । যে লুপ চালানো হয় এই উপায়ে এন বার।

তারপরে ¶<প্রতিটি পুনরাবৃত্তি একটি আউটপুট পর্যায়ে আবৃত করে, যা মঞ্চটির মুদ্রণ করে আবৃত একটি পিছনের লাইনফিডের সাথে ইনপুটটি (সুতরাং প্রথম পুনরাবৃত্তিটি শূন্যটি প্রিন্ট করে, দ্বিতীয় পুনরাবৃত্তিটি প্রথম পুনরাবৃত্তির ফলাফল প্রিন্ট করে)।

মঞ্চটি নিজেই শেষ লাইনের বিকল্পের সাথে পুরো কাজের স্ট্রিংকে প্রতিস্থাপন করে। এটির পুনরাবৃত্তি অপারেটরের জন্য একটি অন্তর্নিহিত বন্ধ হওয়া বন্ধনী এবং অন্তর্নিহিত যুক্তি ব্যবহার করে *, সুতরাং এটির জন্য এটি সংক্ষিপ্ত:

$.($&*__2*$-1*_)

প্রথম বন্ধনীর ভিতরে থাকা উপাদানগুলি তিন ভাগে বিভক্ত করা যেতে পারে:

  • $&*_: একটি (n-1) এর একটি স্ট্রিং দেয় _ এর ।
  • _: একক দেয় _
  • 2*$-1*_: 2 * a (n-1) এর স্ট্রিং দেয় _। দ্য$-1অর্থাত গত সামনে লুপ পুনরাবৃত্তির, ফলে লগের মধ্যে উপান্ত্য ফলাফলের বোঝায়। এজন্য শুরু করার জন্য আমাদের লগটিতে শূন্যের অনুলিপিগুলি দরকার ছিল, অন্যথায় এটি প্রথম পুনরাবৃত্তিতে প্রোগ্রামটির ইনপুটকে বোঝায়।

তারপরে $.(…)ফলাফলযুক্ত স্ট্রিংয়ের দৈর্ঘ্য পরিমাপ করে। অন্য কথায়, আমরা a(n) = a(n-1) + 1 + 2*a(n-2)অ্যানারি পেরিয়ে গণনা করেছি (বাস্তবে না:$.(…) অলস এবং আসলে যদি এটি গাণিতিকের মাধ্যমে ফলাফলের দৈর্ঘ্যটি সরাসরি নির্ধারণ করতে পারে তবে এটির বিষয়বস্তুটি মূল্যায়ন করি না, সুতরাং এটি আরও কার্যকর)।

প্রোগ্রামের শেষে রেটিনার অন্তর্নির্মিত আউটপুটটির কারণে চূড়ান্ত লুপ পুনরাবৃত্তির ফলাফল ( অনুক্রমের এন + 1 ম উপাদান) মুদ্রিত হয়।



3

রুবি 42 41 43 41 37 35 31 33 30 বাইট

-২ বাইট ইউনিহেড্রনকে ধন্যবাদ

-3 বাইট জিবি ধন্যবাদ

->x{a=0;x.times{a-=~a+p(a)%2}}

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


ভাল কাজ! আমি আপনার সূত্রটি পছন্দ করি ^^
ইউনিহীড্রন

1
3 বাইট সংরক্ষণ করুন:->x{a=0;x.times{a-=~a+p(a)%2}}
জিবি

2

> <> , 22 + 3 (-ভি পতাকা) বাইট

0:nao::1+2%++$1-:?!;$!

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

ব্যাখ্যা

স্ট্যাকটি লুপের সাথে পাল্টে যায়।

0:nao                  : Push 0 to the stack, duplicate and print with a new line.
                         [7] -> [7, 0]
     ::1+              : Duplicate the stack top twice more then add 1 to it.
                         [7, 0] -> [7, 0, 0, 1]
         2%++          : Mod the stack top by 2 then add all values on the stack bar the loop counter.
                         [7, 0, 0, 1] -> [7, 1]
             $1-:?!;$! : Swap the loop counter to the top, minus 1 from it and check if zero, if zero stop the program else continue.

2

জাভা 8, 115 81 80 52 বাইট

n->{for(int i=2;n-->0;i*=2)System.out.println(i/3);}

পোর্ট অফ @Neil এর পাইথন 2 উত্তর
1-ইনডেক্সড এবং সরাসরি আউটপুট করা হয়, পৃথক লাইনের প্রতিটি মান।

ব্যাখ্যা:

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

n->{                           // Method with integer parameter and no return-type
  for(int i=2;                 //  Start integer `i` at 2
      n-->0;                   //  Loop `n` times:
      i*=2)                    //    Multiply `i` by 2 after every iteration
    System.out.println(i/3);}  //   Print `i` integer-divided by 3 and a new-line

পুরানো 80 বাইট উত্তর:

n->{String t="",r=t;for(Long i=0L;i<n;)r+=i.parseLong(t+=i++%2,2)+" ";return r;}

1-ইনডেক্সড ইনপুট এবং স্পেস-সীমাবদ্ধ Stringআউটপুট

ব্যাখ্যা:

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

n->{                             // Method with integer parameter and String return-type
  String t="",r=t;               //  Temp and result-Strings, both starting empty
  for(Long i=0L;i<n;)            //  Loop from 0 to `n` (exclusive)
    r+=                          //   Append the result-String with:
       i.parseLong(        ,2);  //    Binary to integer conversion
                   t+=           //     append the temp-String with:
                      i  %2      //      current index `i` modulo-2
                       ++        //      and increase `i` by one afterwards
       +" ";                     //    + a space
  return r;}                     //  Return the result-String

2

পার্ল 6 ,  35 30 27 25  20 বাইট

{[\~](0,+!*...*)[^$_]».&{:2(~$_)}}

এটি চেষ্টা করুন (35)

{(0,{$_*2+|($+^=1)}…*)[^$_]}

এটি চেষ্টা করুন (30)

{(⅓X*(2,4,82**$_))».Int}

এটি চেষ্টা করুন (30)

{(⅔,* *2…*)[^$_]».Int}

এটি চেষ্টা করুন (27)

{((2 X**1..$_)X/3)».Int}

এটি চেষ্টা করুন (25)

{(2 X**1..$_)Xdiv 3}

এটি চেষ্টা করুন (20)

সম্প্রসারিত:

{
 (
  2                  # 2
    X**              # cross to the power of
       1..$_         # Range from 1 to the input (inclusive)
            )

             Xdiv    # cross using integer divide
                  3  # by 3
}


2

সি, 47 46 বাইট

a;f(n){for(a=0;n--;a+=a-~a%2)printf("%d ",a);}

সংগ্রহকারী aশূন্য দিয়ে শুরু হয়। প্রতিটি পদক্ষেপে, আমরা এটি দ্বিগুণ ( a+=a) এবং পূর্ববর্তী সর্বনিম্ন-তাত্পর্যপূর্ণ বিট শূন্য ( !(a%2)বা সমতুল্য, -(~a)%2) হলে একটি যুক্ত করি।

পরীক্ষা প্রোগ্রাম

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    while (*++argv) {
        f(atoi(*argv));
        puts("");
    }
}

ফলাফল

$ ./153783 1 2 3 4 5 6
0 
0 1 
0 1 2 
0 1 2 5 
0 1 2 5 10 
0 1 2 5 10 21 

2

জাপট , 10 9 7 6 বাইট

সমস্ত অন্যান্য সমাধান থেকে স্বাধীনভাবে উদ্ভূত।

1-ইন্ডেক্স।

õ!²mz3

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


ব্যাখ্যা

õ        :[1,input]
 !²      :Raise 2 to the power of each
   m     :Map
    z3   :Floor divide by 3

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


7 বাইট সংস্করণ

õ_ou ì2

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

õ            :[1,input]
 _           :Pass each through a function
   o         :[0,current element)
    u        :Modulo 2 on above
      ì2     :Convert above from base-2 array to base-10

9 বাইট সংস্করণ

õ_îA¤w)n2

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

õ            :[1,input]
 _           :Pass each through a function
   A         :10
    ¤        :Convert to binary
     w       :Reverse
  î          :Repeat the above until it's length equals the current element
      )      :Close nested methods
       n2    :Convert from binary to base-10


1

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

:&+oRXB

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

ব্যাখ্যা:

         % Implicitly grab input, n
:        % Range: 1 2 ... n

 &+      % Add the range to itself, transposed
         % 2 3 4 5 ...
         % 3 4 5 6 ...
         % 4 5 6 7 ...
         % 5 6 7 8 ...

   o     % Parity (or modulus 2)
         % 0 1 0 1 ...
         % 1 0 1 0 ...
         % 0 1 0 1 ...
         % 1 0 1 0 ...

    R    % Upper triangular matrix:
         % 0 1 0 1
         % 0 0 1 0
         % 0 0 0 1
         % 0 0 0 0

    XB   % Convert rows to decimal:
         % [5, 2, 1, 0]
         % Implicitly output

আউটপুটটি 0, 1, 2, 5 ...যদি Pশেষ ( flip) এ যুক্ত হয় তবে এটি 8 বাইট তৈরি করে।


1
ভাল ধারণা,&+
লুইস মেন্ডো

1

রুবি -n ,32 30 + 1 বাইট

যেহেতু আমাদের ঠিক 1 লাইন ইনপুট রয়েছে $.তাই godশ্বরীয় সুবিধাজনক!

সম্পাদনা: আমি আশ্চর্য হয়েছি যে আমি নিজেই আউটগল্ফ করতে পেরেছি, তবে এটি মনে হয় -nকোনটি 1 হিসাবে গণ্য হয় ( ডিফল্ট বিশেষ পরিস্থিতিতে 2 হিসাবে গণ্য হয় , যেহেতু রুবি দিয়ে চালানো যেতে পারে ruby -e 'full program'(এভাবে -n1) সমস্ত উদাহরণ getsযা কেবল একবার ব্যবহার করা যেতে পারে এইভাবে ১ টি চর এড়িয়ে চলুন; আমি বিশ্বাস করি এটি রুবির জন্য একটি মাইলফলক, ভবিষ্যতে বারবার ব্যবহার করার আগে আপনি যদি এই চিন্তার ট্রেনটির সাথে একমত না হন তবে দয়া করে কথা বলুন)

v=0
?1.upto($_){p v=v*2|$.^=1}

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

ব্যাখ্যা

# while gets(); -- assumed by -n
v=0            # First element of the sequence
?1.upto($_){   # Do from "1" to "$LAST_READ_LINE" aka: Repeat [input] times
  p            # print expression
  v=v*2|$.^=1  # Next element is current element times two
               # bitwise-or 0 or 1 alternating
               # $. = lines of input read so far = 1 (initially)
}
# end           -- assumed by -n

মজাদার. যদিও এটি 27 বাইটে সম্ভব ।
এরিক ডুমিনিল

1
নিস! দেখে মনে হচ্ছে যে আমরা সকলেই 26 বি দ্বারা ছড়িয়ে পড়েছি।
ইউনিহীড্রন

1

এডাব্লুকে a=0 , ৩১ বাইট

{for(;$1--;a=a*2+1-a%2)print a}

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

এই অন্য রুবি উত্তর থেকে নির্লজ্জভাবে চুরি করা সূত্রটি ব্যবহার করে

a=0কাজ না করার পরে (0 টি "খালি" হিসাবে কাজ করে) 0 এর প্রথম উপাদানটি মুদ্রিত হবে না এবং পরিবর্তে একটি emptyলাইন হবে না , যা আমি যুক্তি দিয়েছিলাম একটি বৈধ আউটপুট সম্ভবত পাস হবে না, তাই a=0যা আছে কমান্ড লাইন আর্গুমেন্ট হিসাবে সন্নিবেশ করান।


আমি আপনার সূত্রটি পছন্দ করি ^^
অসোন তুহিদ 22'18


1

ব্রেনফাক , 40 বাইট

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

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

0-ইন্ডেক্স। চর কোড হিসাবে ইনপুট করুন, নাল বাইটের সাথে চার্ট কোড 1 এর সিরিজকে পৃথক করে একরূপ হিসাবে আউটপুট। আপনি 255-র উপরে ইনপুট না করতে চাইলে 8-বিট সেলগুলি ধরে রাখুন negativeণাত্মক কোষগুলি ধরে নিয়েছে, যদিও এটি বেশ কয়েকটি বাইটের ব্যয়ে স্থির করা যেতে পারে।

পূর্বে, 50 বাইট

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

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

চর কোড হিসাবে ইনপুট, চর কোড হিসাবে আউটপুট। 1-ইন্ডেক্স। সম্ভবত একটু গল্ফ করা যেতে পারে।

@ ইউনিহেড্রন উল্লেখ করে আমি উল্লেখ করতে ভুলে গেছি যে এটির জন্য অসীম আকারের কোষের প্রয়োজন, অন্যথায় এটি 8 তম সংখ্যায় শীর্ষে রয়েছে।


আমি যখন পরীক্ষার কেস হিসাবে এটি `` (0d018) দিয়ে চালিত করি তখন আপনার কোডগুলি প্রিন্ট করে ª * UªUªUªUªUªUª (0x01 02 05 0 এ 15 2 এ 55 এ 55 এ 55 এ 55 এ 55 এএ 55 এএ 0d001 002 005 010 021 042 085 170 085 170 085 170 085 170 085 170 085 170) :( tio.run/##SypKzMxLK03O/…
ইউনিহীড্রন

ঠিক আছে, মনে হচ্ছে এটি একটি সেল আকারের সমস্যা। আমি মনে করি হয় আপনার কোডটি বড় সংখ্যার সাথে খাপ খাইয়ে নেওয়া উচিত বা আপনার কোডটি সঠিকভাবে চালিত করবে এমন বাস্তবায়ন নির্দিষ্ট করতে হবে তবে 8-বিট কোষের ডিফল্ট যথেষ্ট নয়
ইউনিহীড্রন

এই সম্পর্কে ভুলে গেছেন, ধন্যবাদ @ ইউনহেড্রন! আমি একটি 8-বিট সংস্করণ সম্পর্কে একটি চিন্তা করব, সম্ভবত unary মধ্যে আউটপুট।
জো কিং

32-বিট কোষ সহ দোভাষী ব্যবহার করে এটি কাজ করে। যদিও আমি মনে করি আপনি যদি উইকএন্ডে না করে থাকেন তবে নিজেকে নিজেই বিটিন্টিজার (8 বিট) সংস্করণে চেষ্টা করতে পারেন: ডি
ইউনিহীড্রন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.