বাইনারি স্কয়ার ডায়াগোনাল সিকোয়েন্স


20

বাইনারি-বর্গক্ষেত্র-তির্যক-ক্রম নিম্নরূপ নির্মাণ হয়:

  1. ইতিবাচক প্রাকৃতিক সংখ্যার ক্রম নিন:
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ...
  2. প্রতিটি সংখ্যা বাইনারি রূপান্তর করুন:

    1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001, ...

  3. তাদের বিরুদ্ধে:

    11011100101110111100010011010101111001101111011111000010001 ...

  4. শুরু করে n=1, nউপরের ক্রমের উপাদানগুলির সাথে বাম থেকে ডানদিকে, উপরে থেকে নীচে ভরাট করে পাশের দৈর্ঘ্যের সাথে স্কোয়ারগুলি তৈরি করুন :

    1
    1 0
    1 1
    1 0 0 
    1 0 1
    1 1 0
    1 1 1 1
    0 0 0 1
    0 0 1 1 
    0 1 0 1
    0 1 1 1 1
    0 0 1 1 0
    1 1 1 1 0
    1 1 1 1 1
    0 0 0 0 1
    ...

  5. প্রতিটি বর্গের ত্রিভুজ (উপরে বাম থেকে নীচে ডানদিকে) ধরুন:

    1, 11, 100, 1011, 00111, ...

  6. দশমিক রূপান্তর করুন (শীর্ষস্থানীয় শূন্যগুলি উপেক্ষা করে):

    1, 3, 4, 11, 7, ...

কার্য

একটি প্রোগ্রাম বা ফাংশন লিখুন যা নিম্নলিখিত ক্রিয়াকলাপগুলির মধ্যে একটির অনুক্রমকে ছাড়িয়ে যায়:

  • ক্রমটি অসীমভাবে ফিরে আসুন বা মুদ্রণ করুন।
  • ইনপুট দেওয়া হয়েছে i, iঅনুক্রমের প্রথম উপাদানগুলি ফিরে আসুন বা মুদ্রণ করুন ।
  • ইনপুট দেওয়া হয়েছে i, iঅনুক্রমের তম উপাদানটি ফিরে আসুন বা মুদ্রণ করুন (হয় 0 বা 1 ইনডেক্সড)।

আপনি কোন আউটপুট ফর্ম্যাটটি চয়ন করেন দয়া করে আপনার উত্তরে উল্লেখ করুন।

এটি , প্রতিটি ভাষারই সংক্ষিপ্ত উত্তর জেতে।

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

এখানে ক্রমের প্রথম 50 টি উপাদান রয়েছে:

1,3,4,11,7,29,56,141,343,853,321,3558,8176,3401,21845,17129,55518,134717,151988,998642,1478099,391518,7798320,8530050,21809025,61485963,66846232,54326455,221064493,256373253,547755170,4294967295,1875876391,2618012644,24710258456,6922045286,132952028155,217801183183,476428761596,51990767390,687373028085,1216614609441,7677215985062,15384530216172,22714614479340,15976997237789,0,256145539974868,532024704777005,601357273478135

উত্তর:


10

হুশ , 15 14 বাইট

zȯḋm←CtNCİ□ṁḋN

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

ক্রমাগত ফলাফলগুলি অসীম তালিকা হিসাবে মুদ্রণ করে।

ব্যাখ্যা

আমি অবাক হয়েছি যে তালিকা থেকে দৈর্ঘ্য n এর অংশগুলিকে বিভক্ত করা এবং প্রতিটি অংশের মাথা পুনরুদ্ধার করার চেয়ে তালিকা থেকে প্রতিটি এন তম উপাদান পাওয়ার আরও ভাল উপায় আছে কিনা ?

      tN          Get a list of all natural numbers except 1. (A)

             N    Get a list of all natural numbers.
           ṁḋ     Convert each to its binary representation and join them 
                  all into a single list.
         İ□       Get a list of squares of all natural numbers.
        C         Cut the list of bits into chunks of corresponding sizes. (B)

zȯ                Zip (A) and (B) together with the following function.
     C            Split the bit list (from B) into chunks of the given length
                  (from A).
   m←             Get the head of each chunk. This is the diagonal of the
                  bit list arranged as a square.
  ḋ               Interpret the resulting bits as binary digits and return
                  the result.

পরিষ্কার হওয়ার জন্য, আমরা কোনও এনএক্সএন বর্গের তির্যকটি তার লিনিয়ার ফর্মটি n + 1 দৈর্ঘ্যের অংশে বিভক্ত করে এবং প্রতিটি খণ্ডের প্রথম উপাদানটি পুনরুদ্ধার করে বের করি:

[[1 , 0 , 1 , 0
  0],[1 , 0 , 1
  1 , 0],[1 , 0
  0 , 1 , 0],[1]]



4

05 এ বি 1 , 19 17 16 বাইট

°LbJsLn£θs>ô€нJC

°3mলিঙ্কগুলিতে প্রতিস্থাপন করা হয় কারণ °খুব ধীর হয়ে যায়।

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

ব্যাখ্যা

°L                 # push the range [1 ... 10^input]
  bJ               # convert each to binary and join to string
    sLn            # push the range [1 ... input]^2
       £θ          # split the binary string into pieces of these sizes and take the last
         s>ô       # split this string into chunks of size (input+1)
            €н     # get the first digit in each chunk
              JC   # join to string and convert to int

আপনি কি 3mসাথে প্রতিস্থাপন করতে পারবেন না n?
এরিক দ্য আউটগল্ফার

@ এরিকথ আউটগল্ফার: হ্যাঁ পারি, ধন্যবাদ! আমি পুরোপুরি নিশ্চিত ছিলাম যে কাজ করে নি, তবে এটি পূর্ববর্তী সমাধানে কিঙ্কসের কারণে হতে পারে। একই বাইট গণনাটি °তত দ্রুত
গতিযুক্ত

1 থেকে ইনপুট to 2 এ সংখ্যাগুলি পর্যাপ্ত নয় । পাইথন উত্তরগুলির মতো 1 টি ইনপুট করতে enough 3 যথেষ্ট বলে মনে হচ্ছে।
ovs

@ ওভস: আহা হ্যাঁ, আমি আগে এটি ব্যবহার করিনি। আমি এবার প্রথম প্রথম দুটি দম্পতি পরীক্ষা করেছি checked আমি পূর্ববর্তী সমাধানটিতে ফিরে যাব (ভাগ্যক্রমে একই বাইট গণনায়)
এমিগানা

3

হুশ , 15 বাইট

এটি মার্টিনের উত্তরের জন্য কিছুটা ভিন্ন পন্থা নেয়

moḋz!NCNCṘNNṁḋN

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

ব্যাখ্যা:

              N   List of all natural numbers
            ṁḋ    Convert each to it's binary representation and flatten
         ṘNN      Repeat the list of natural numbers according the natural numbers:
                  [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5...]
        C         Cut the list of bits into lists of lengths corresponding to the above
      CN          Cut that list into lists of lengths corresponding to the natural numbers
moḋz!N            For each in the list, get the diagonals and convert from binary.
m                   For each list in the list
   z!N              Zip it with natural numbers, indexing.
 oḋ                 Convert to binary

কর্মে

ṁḋN : [1,1,0,1,1,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0,1...]

ṘNN : [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8...]

C : [[1],[1,0],[1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1,1],[0,0,0,1]...]

CN : [[[1]],[[1,0],[1,1]],[[1,0,0],[1,0,1],[1,1,0]]...]

m z!N : [[1],[1,1],[1,0,0],[1,0,1,1],[0,0,1,1,1],[0,1,1,1,0,1]...]

oḋ : [1,3,4,11,7,29,56,141,343,853,321,3558,8176,3401,21845...]


3


2

জেলি , 16 বাইট

RBFṁ
R²SÇṫ²C$m‘Ḅ

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

ব্যাখ্যা

RBFṁ  Helper link. Input: integer k
R     Range, [1, 2, ..., k]
 B    Convert each to a list of its binary digits
  F   Flatten
   ṁ  Mold to length k

R²SÇṫ²C$m‘Ḅ  Main link. Input: integer n
R            Range, [1, 2, ..., n]
 ²           Square each
  S          Sum
   Ç         Call helper link on the sum of the first n squares
       $     Monadic chain
     ²         Square n
      C        Complement, 1-n^2
    ṫ        Tail, take the last n^2 elements
        m    Modular indexing, take each
         ‘   (n+1)th element
          Ḅ  Convert from list of binary digits to decimal



1

জেলি , 18 বাইট

এরিকের সমাধানের তুলনায় সম্পূর্ণ ভিন্ন পদ্ধতির ।

Ḷ²S‘ɓ*3B€Fṫ
Çm‘ḣµḄ

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

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

ƁS'ɓ * 3B € Fṫ - সহায়ক লিঙ্ক (একাদিক)।

Ḷ - নিম্ন রেঞ্জ, [0, এন) উত্পন্ন করে।
 ² - ভেক্টরাইজড বর্গ (প্রতিটি বর্গ)।
  এস - সম
   '- বৃদ্ধি, জেলির 1-সূচকের জন্য অ্যাকাউন্টে।
     ɓ - একটি পৃথক ডায়াডিক চেইন শুরু করে।
     * 3 - 3 পাওয়ারের ইনপুট।
       বি € - প্রত্যেককে বাইনারি রূপান্তর করুন।
         এফ - ফ্ল্যাটেন
          ṫ - লেজ রিটার্ন x [y - 1:] (1-ইনডেক্সড)।

ḢµḄm'ḣµḄ - মূল লিঙ্ক (একাদিক)।

Ç - একটি monad হিসাবে শেষ লিঙ্ক।
 মি '- মডুলার ইনপুট + ১। তালিকার প্রতিটি "ইনপুট + 1" তম উপাদান পান।
   ḣ - মাথা ইনপুট ক্রপযুক্তের চেয়ে বেশি সূচকের উপাদানগুলির সাথে উপরেরটি ফিরিয়ে দিন।
    µḄ - বাইনারি থেকে পূর্ণসংখ্যায় রূপান্তর করুন।

জনাথন অ্যালানকে 1 বাইট সংরক্ষণ করা হয়েছে !


মুছে ফেলার জন্য একটি ডায়াডিক চেইন ব্যবহার করে একটি সংরক্ষণ করুন ³:Ḷ²S‘ɓ*3B€Fṫ
জোনাথন অ্যালান

@ জোনাথন অ্যালান অবশ্যই, ধন্যবাদ! আমার সেই কৌশলটি সত্যই শিখতে হবে
মিঃ এক্সকোডার


0

পাইথ ,  27  20 বাইট

i<%hQ>s.BS^Q3s^R2QQ2

প্রথম কয়েকটি পরীক্ষার কেস যাচাই করুন।

পায় আমি ক্রম, 1 ইন্ডেক্স এর ম পরিভাষা।

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

i<%hQ>s.BS^Q3s^R2QQ2   - Full program. Q represents the input.

         S^Q3          - Generate the (inclusive) range [1, Q ^ 3].
       .B              - Convert each to binary.
      s                - Join into a single string.
     >                 - Trim all the elements at indexes smaller than:
               ^R2Q      - The elements of the range [0, Q) squared.
              s          - And summed.
  %hQ                  - Get each Q + 1 element of the list above.
 <                     - Trim all the elements at indexes higher than:
                   Q   - The input.
i                   2  - Convert from binary to integer.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.