Opালু বাইনারি নম্বর


15

একটি পূর্ণসংখ্যা দেওয়া হয়, 0- বা 1-ইনডেক্সড হয় nপ্রথম nopালু বাইনারি সংখ্যাগুলি আউটপুট দিন । কীভাবে তারা উত্পন্ন হয় তাদের কারণেই এগুলি বলা হয়:

একে অপরের অধীনে বাইনারি সংখ্যা লিখুন (ডান-ন্যায়সঙ্গত):

........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........

তারপরে, আপনাকে প্রতিটি তির্যকটি নীচে-বাম থেকে শীর্ষে ডানদিকে নিয়ে যাওয়া দরকার, যেমন প্রতিটি চূড়ান্ত অঙ্কটি একটি তর্কের চূড়ান্ত অঙ্ক। এখানে চতুর্থ তির্যকটি (শূন্য-সূচীকৃত) এর সাথে চিহ্নিত x, যা এটি 100:

........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........

ক্রম অনুযায়ী wardর্ধ্বমুখী diaালু কর্ণগুলি:

0
11
110
101
100
1111
1010
.......

তারপরে, দিয়ে দশমিক রূপান্তর করুন 0, 3, 6, 5, 4, 15, 10, ...

OEIS A102370

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


12
আমি মনে করি না এই স্পেসিফিকেশন খুব পরিষ্কার। এখানে কী জিজ্ঞাসা করা হচ্ছে তা বুঝতে পারার আগে আমাকে বাহ্যিক পাঠের একটি ভাল কাজ করতে হয়েছিল।
পোস্ট রক গার্ফ হান্টার

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

আপনার অর্থ কী, " হয় 0- বা 1-ইনডেক্সড "? আপনি কি বোঝাতে চেয়েছেন যে কেউ প্রথম nবা প্রথম n+1সংখ্যাগুলি আউটপুট দিতে পারে ?
23'16 এ স্মাইল

4
আমি মনে করি যদি আপনাকে কেবলমাত্র n'th মানটি ফিরিয়ে দিতে হয় তবে এটি আরও মজাদার উত্তরগুলির অনুমতি দিতে পারে।
xnor

1
@ পেট্রিকরোবার্টস আমি কয়টি জেনারেট করব তার সীমাবদ্ধতা কখনই রাখি না। আমি কেবল "বাইনারি নম্বর লিখুন ..." বলেছি said আপনি যতটা প্রয়োজন উত্পন্ন করেন।
mbomb007

উত্তর:


3

জেলি, 11 বাইট

ḤḶBUz0ŒDUḄḣ

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

ব্যাখ্যা

ḤḶBUz0ŒDUḄḣ    Main link. Argument: n
Ḥ              Double the argument. This ensures there are enough
               rows, since n + log2(n) <= 2n.
 Ḷ             Get range [0 .. 2n-1].
  B            Convert each number to binary.
   U           Reverse each list of digits. 
    z0         Transpose, padding with zeroes to a rectangle.
      ŒD       Get the diagonals of the rectangle, starting from the
               main diagonal. This gets the desired numbers, reversed,
               in binary, with some extras that'll get dropped.
        U      Reverse each diagonal.
         Ḅ     Convert each diagonal from binary to a number.
          ḣ    Take the first n numbers.

অন্তর্নির্মিত কাজ করার জন্য তির্যকটি সরানোর সহজ উপায় ট্রান্সপোজ। তারপরে বিপরীতগুলি সঠিক ক্রমে সবকিছু পেতে যুক্ত করা হয়।


ওইআইএস সূত্রের বাস্তবায়ন জেলিতে খুব সংক্ষিপ্ত হতে পারে।
Yytsi

পছন্দ করুন আমি যথেষ্ট পরিশ্রমের জন্য উচ্চতর সীমাটি বাছাই করতে যথেষ্ট ক্লান্ত।
পূর্কাকাডারী

@ টুকুএক্সএক্স আমি এটি চেষ্টা করেছি, কিন্তু আমি এটি ঘটতে দেখছি না। আমি নিশ্চিত যে ডেনিস ও কো এটিকে 5 টি বাইট বা তার মধ্যে প্রয়োগ করবে।
পূর্কাকাডারী


7

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

n=>[...Array(n)].map(g=(j=1,i)=>j>i?0:j&i|g(j+j,i+1))

0-ইন্ডেক্স। এটি প্রায়শই আমি প্যারামিটার হিসাবে পুনরাবৃত্ত ফাংশনটি ব্যবহার করতে পারি না map


4

গণিত, 46 বাইট

Plus@@@Table[BitAnd[n+k,2^k],{n,0,#},{k,0,n}]&

নামহীন ফাংশন #ইনপুট হিসাবে একটি nonnegative পূর্ণসংখ্যার গ্রহণ এবং 0-সূচক ক্রমটি #দশম মেয়াদ পর্যন্ত প্রদান করে । BitAnd2 এর যথাযথ ক্ষমতা সহ (বিটওয়াইজ "এবং") ব্যবহার করে opালু বাইনারি সংখ্যাগুলি তৈরি করে ।


2

পাইথন 3, 63 61 বাইট

lambda i:[sum(n+k&2**k for k in range(n+1))for n in range(i)]

ওইআইএসের সূত্র ব্যবহার করে।

-২ বাইট ধন্যবাদ লুইস মেন্ডোকে ! i+1->i


আপনি কীভাবে Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^kসেই সহজ বিটওয়াইজ সূত্রে গিয়েছিলেন তা ব্যাখ্যা করতে পারেন ?
স্মলস

@ এসএমএলএস এটি সরাসরি wardর্ধ্বমুখী ডায়াগোনগুলি সরাসরি গণনা করে। আমি আসলে ভেবেছিলাম এটি অন্য ফর্মের চেয়ে বেশি সুস্পষ্ট।
নীল

1

পিএইচপি, 68 বাইট

for(;$n++<$argv[1];print$s._)for($s=$i=0;$i<$n;)$s|=$n+$i-1&1<<$i++;

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়, আন্ডারস্কোর দ্বারা পৃথক করা নম্বরগুলি মুদ্রণ করে। সাথে চালাও -r


1

এমএটিএল , 18 17 বাইট

:q"@tt:+5MW\~fWs+

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

এটি ওইআইএসের সূত্রটি ব্যবহার করে:

a(n) = n + Sum_{ k in [1 2... n] such that n + k == 0 mod 2^k } 2^k

কোড:

:q"     % For k in [0 1 2 ...n-1], where n is implicit input
  @     %   Push k
  tt    %   Push two copies
  :     %   Range [1 2 ... k]
  +     %   Add. Gives [n+1 n+2 ... n+k]
  5M    %   Push [1 2... k] again
  W     %   2 raised to that
  \     %   Modulo
  ~f    %   Indices of zero entries
  W     %   2 raised to that
  s     %   Sum of array
  +     %   Add
        % End implicitly. Display implicitly

0

পার্ল 6 , 59 43 বাইট

{map ->\n{n+sum map {2**$_ if 0==(n+$_)%(2**$_)},1..n},^$_}

{map {sum map {($_+$^k)+&2**$k},0..$_},^$_}

OESIS পৃষ্ঠা থেকে সূত্রটি ব্যবহার করে।
আপডেট: টুকুএক্সএক্সের পাইথন উত্তর থেকে বিটওয়াইজ এবং ভিত্তিক সূত্রে স্যুইচ করা হয়েছে

পার্ল 6 , 67 বাইট

{map {:2(flip [~] map {.base(2).flip.comb[$++]//""},$_..2*$_)},^$_}

নিষ্পাপ সমাধান।
যে ত্রিভুজের অংশ, সংখ্যাগুলি বেস 2 তে রূপান্তর করে, প্রতিটিটির সঠিক সংখ্যা নেয় এবং ফলাফলটিকে আবার বেস 10 এ রূপান্তর করে।



0

আর, 66 বাইট

function(n,k=0:length(miscFuncs::bin(n-1)))sum(bitwAnd(k+n-1,2^k))

বেনারিতে উপস্থাপিত দৈর্ঘ্যের গণনা করতে এবং তারপরে OEIS সূত্রগুলির একটি ব্যবহার binকরে miscFuncsপ্যাকেজ থেকে ফাংশনটি ব্যবহার করে এমন নামহীন ফাংশন n

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