আউটপুট সংখ্যা 2 ^ n-1, "সাজানো" পর্যন্ত


38

ইনপুট হিসাবে একটি ধনাত্মক পূর্ণসংখ্যা এন নিন , এবং আউটপুট (কয়েকটি) দশমিক সংখ্যা যা এন বিট ব্যবহার করে তৈরি করা যায়, নিম্নলিখিত পদ্ধতিতে অর্ডার করুন:

প্রথম তালিকায় সব সংখ্যার যে শুধুমাত্র এক সঙ্গে তৈরি করা যেতে পারে 1, এবং বাকি 0বাইনারি উপস্থাপনা (সাজানো হিসেবে), তারপরে সমস্ত নম্বর দুই সঙ্গে তৈরি করা যেতে পারে পরপর 1 , বাকি 0, তারপর তিন পরপর 1 ইত্যাদি।

এন = 4 এর জন্য এটি দেখতে কেমন তা দেখতে দিন :

0001  -  1
0010  -  2
0100  -  4
1000  -  8
0011  -  3
0110  -  6
1100  -  12
0111  -  7
1110  -  14
1111  -  15

সুতরাং, এন = 4 এর আউটপুট হল: 1, 2, 4, 8, 3, 6, 12, 7, 14, 15 (outputচ্ছিক আউটপুট ফর্ম্যাট)।

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

n = 1
1

n = 2
1 2 3

n = 3
1, 2, 4, 3, 6, 7

n = 8
1, 2, 4, 8, 16, 32, 64, 128, 3, 6, 12, 24, 48, 96, 192, 7, 14, 28, 56, 112, 224, 15, 30, 60, 120, 240, 31, 62, 124, 248, 63, 126, 252, 127, 254, 255

n = 17
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 3, 6, 12, 24, 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288, 24576, 49152, 98304, 7, 14, 28, 56, 112, 224, 448, 896, 1792, 3584, 7168, 14336, 28672, 57344, 114688, 15, 30, 60, 120, 240, 480, 960, 1920, 3840, 7680, 15360, 30720, 61440, 122880, 31, 62, 124, 248, 496, 992, 1984, 3968, 7936, 15872, 31744, 63488, 126976, 63, 126, 252, 504, 1008, 2016, 4032, 8064, 16128, 32256, 64512, 129024, 127, 254, 508, 1016, 2032, 4064, 8128, 16256, 32512, 65024, 130048, 255, 510, 1020, 2040, 4080, 8160, 16320, 32640, 65280, 130560, 511, 1022, 2044, 4088, 8176, 16352, 32704, 65408, 130816, 1023, 2046, 4092, 8184, 16368, 32736, 65472, 130944, 2047, 4094, 8188, 16376, 32752, 65504, 131008, 4095, 8190, 16380, 32760, 65520, 131040, 8191, 16382, 32764, 65528, 131056,16383, 32766, 65532, 131064, 32767, 65534, 131068, 65535, 131070, 131071

এটি , তাই প্রতিটি ভাষার সংক্ষিপ্ততম কোডটি জয়ী হয়!

"নিয়মিত ভাষায়" সমাধানের জন্যও ভাল ব্যাখ্যা অত্যন্ত উত্সাহিত হয় !



2
@ জেপেলিন আমি প্রথমেও তাই ভেবেছিলাম, তবে এটির চেয়ে আলাদা।
ETH প্রোডাকশনগুলি


6
কাউকে কোনওরকম বেস রূপান্তর ছাড়াই এটি করা থাকলে কপাল বোনাস (সাধারণ পুরাতন গণিত ব্যবহার করে)।
স্টিভি গ্রিফিন

এটি লিখেছেন যা এটি আমার অনুমান দুটির মধ্যে একটি মিশ্রণ এটি অনলাইনে চেষ্টা করে দেখুন!
প্রিন্সপলকা

উত্তর:


38

পাইথন , 53 বাইট

f=lambda n,i=1:n*[f]and[i]+f(n-1,2*i)+i%2*f(n-1,i-~i)

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

পুনরাবৃত্ত ফাংশনটি এই গাছের নিচে প্রাক-অর্ডার হাঁটার হিসাবে সাজানো তালিকা তৈরি করে (উদাহরণ সহ n=4):

      1
     / \
    2   3
   /   / \
  4   6   7
 /   /   / \
8   12  14  15

1 2 4 8 3 6 12 7 14 15

বাম শাখাগুলি মান দ্বিগুণ করে এবং ডান শাখাগুলি i->i*2+1কেবল বিজোড়ের জন্যই থাকে এবং বিদ্যমান থাকে i। সুতরাং, অ-পাতাগুলির জন্য প্রাক-অর্ডার ওয়াক হয় T(i)=[i]+T(i*2)+i%2*T(i*2+1)

গাছ গভীরতায় শেষ হয় n, যেখানে nইনপুট থাকে। এটি nপ্রতিটি পদক্ষেপ নিচে নামিয়ে এবং 0 হয় যখন থামার মাধ্যমে অর্জন করা হয় ।

বিকল্প কৌশল হ'ল গভীরতা ট্র্যাক করার পরিবর্তে যে মানগুলি iঅতিক্রম করে সেগুলি বন্ধ করে দেওয়া 2**n। আমি এটিকে আরও দীর্ঘ একটি বাইট হিসাবে পেয়েছি:

f=lambda n,i=1:2**n/i*[f]and[i]+f(n,2*i)+i%2*f(n,i-~i)
f=lambda n,i=1:[f][i>>n:]and[i]+f(n,2*i)+i%2*f(n,i-~i)

4
কি দারুন. এটি কেবল একটি দুর্দান্ত / চালাক কৌশল নয়, এটি অত্যন্ত কার্যকর। +1, সত্যিই দুর্দান্ত উত্তর!
ডিজেএমসিএমহেম

2
[f]একটি মজাদার স্পর্শ হয়, বলতে পারবে না আমি যে আগে দেখেছি।
FryAmTheEggman

18

জেলি , 6 বাইট

Ḷ2*ẆS€

এটি কাল্পনিক বোনাসের জন্য যোগ্যতা অর্জন করে ।

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

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

Ḷ2*ẆS€  Main link. Argument: n

Ḷ       Unlength; yield [0, ..., n-1].
 2*     Yield [2**0, ..., 2**(n-1)].
   Ẇ    Sliding window; yield all subarrays of consecutive elements.
        The subarrays are sorted by length, then from left to right.
    S€  Map the sum atom over the substrings.

1
এই চ্যালেঞ্জের জন্য অন্তর্নির্মিত একটি আদর্শ, এবং এটি কার্যকর করা হয়েছে যাতে ফলাফলগুলি এই চ্যালেঞ্জের জন্য ঠিক সঠিক ক্রমে থাকে। ভাল হয়েছে :-)
ETH প্রোডাকশনগুলি

এটি কি 12 বাইট নয় (কমপক্ষে ইউটিএফ -8 এ)?
গ্যারেথ

1
@ গ্যারেথ হ্যাঁ, তবে জেলি এছাড়াও একটি একক বাইট অক্ষর সেটকে সমর্থন করে , যার মধ্যে এটি বোঝে কেবল 256 টি প্রতীক।
ডেনিস

9

গণিত, 40 বাইট

Join@@Table[2^j(2^i-1),{i,#},{j,0,#-i}]&

কাঙ্ক্ষিত তালিকার প্রতিটি সংখ্যা 2 টি শক্তির পার্থক্য, তাই আমরা কেবল তাদের ব্যবহার করে ক্রম তৈরি করি Tableএবং তারপরে তালিকাটি সমতল করুন। আমি মনে করি এটি স্টি গ্রিফিনের কল্পিত বোনাস অর্জন করেছে :)

গণিত, 35 বাইট

Tr/@Rest@Subsequences[2^Range@#/2]&

ডেনিসের জেলি অ্যালগরিদমের একটি বন্দর । আমি এর Subsequencesআগে জানতাম না ! (আমি এটিও দেখিনি যে মাইলগুলি এই সঠিক উত্তরটি পোস্ট করেছে ... এটি উপরে যান!)


1
দ্রষ্টব্য: এই সমাধানটি @ মাইলের ম্যাথমেটিকা ​​কোডের সমান, @ গ্রেগমার্টিনের সম্পাদনার 5 ঘন্টা আগে পোস্ট করা হয়েছিল। যাইহোক, প্রতি মেটা সম্মতিতে , এই উত্তরটি এখনও বৈধ।
জংহওয়ান মিন

ওহ, আমি এটি দেখতে পাইনি it এটি উল্লেখ করার জন্য ধন্যবাদ।
গ্রেগ মার্টিন

8

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

for(q=prompt(n=1);p=q--;n-=~n)for(m=n;p--;m*=2)alert(m)

একটি সম্পূর্ণ প্রোগ্রাম যা প্রম্পটের মাধ্যমে ইনপুট নেয় এবং প্রতিটি নম্বরকে পরপর সতর্ক করে দেয়। এটি কাল্পনিক বোনাসের জন্যও যোগ্যতা অর্জন করে ।

পরীক্ষার স্নিপেট

(দ্রষ্টব্য: console.logপরিবর্তে ব্যবহার করে alert)


পরামর্শ ("পপআপগুলি আর দেখাবেন না" তা পরীক্ষা করার পরে): পরীক্ষার স্নিপেটের জন্য কনসোল.লগতে পরিবর্তন করুন।
তেজাস কালে

@ তেজসকালে ভাল ধারণা, ধন্যবাদ!
ETH প্রোডাকশনগুলি

7

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

পূর্ণসংখ্যার একটি স্থান-বিভাজিত তালিকা প্রদান করে।

n=>(F=k=>k>>n?--j?F(k>>j|1):'':k+' '+F(k*2))(1,j=n)

বন্ধুত্বপূর্ণ বোনাস

ফর্ম্যাট এবং মন্তব্য

n => (                    // main function, takes n as input
  F = k =>                // recursive function, takes k as input
    k >> n ?              // if k is greater or equal to 1 << n:
      --j ?               //   decrement j ; if j is > 0:
        F(k >> j | 1)     //     do a recursive call with an additional bit set
      :                   //   else
        ''                //     stop recursion
    :                     // else
      k + ' ' + F(k * 2)  //   append k to output and do a recursive call with k * 2
  )(1, j = n)             // start the recursion with k = 1 and j = n

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




5

পাইথন 2 , 65 63 58 বাইট

lambda n:[(2<<k/n)-1<<k%n for k in range(n*n)if k/n+k%n<n]

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


1
আমি এই সূত্রটি নিয়ে আসার জন্য মাত্র এক ঘন্টা কাটিয়েছি (2<<i)-1<<j... এবং আপনি এটি ইতিমধ্যে খুঁজে পেয়েছেন। দারূন কাজ! এছাড়াও, দ্বিগুণ রেঞ্জগুলি থেকে মুক্তি পাওয়ার জন্য ভাল কাজ
TheNumberOne


4

হাস্কেল, 47 বাইট

f n=[1..n]>>= \b->take(n-b+1)$iterate(2*)$2^b-1

ব্যবহারের উদাহরণ: f 4-> [1,2,4,8,3,6,12,7,14,15]এটি অনলাইন চেষ্টা করুন!

এটি কীভাবে কাজ করে: প্রতিটি সংখ্যার bজন্য [1..n], আরম্ভ করে 2^b-1বারবার মান দ্বিগুণ করুন এবং n-b+1এই তালিকা থেকে উপাদানগুলি নিন ।


4

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

L<oΎO

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

ব্যাখ্যা

ডেনিসের জেলি উত্তরে দেখানো হয়েছে সাব-লিস্ট-সমষ্টি কৌশল ব্যবহার করে

L       # range [1 ... input]
 <      # decrement each
  o     # raise 2 to each power
   Œ    # get all sublists
    é   # sort by length
     O  # sum

4

গ্রোভি, 90 89 বাইট

{(0..<2**it).collect{0.toBinaryString(it)}.sort{it.count("1")}.collect{0.parseInt(it,2)}}

বাইনারি রূপান্তর গ্রোভিতে এতটাই বোবা।

-১ ধন্যবাদ গুরুপদ মামাদাপুরকে


3
28 বাইট বাইনারি রূপান্তর বয়লারপ্লেট, তাই বেদনাদায়ক।
ম্যাজিক অক্টোপাস উরন

1
{(1..<2**it)...একটি বাইট সংরক্ষণ করে।
গুরুপদ মামাদাপুর


3

ব্যাশ + ইউনিক্স ইউটিলিটিস, 51 বাইট

dc<<<2i`seq -f%.f $[10**$1-1]|grep ^1*0*$|sort -r`f

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

ইনপুট এনটি একটি আর্গুমেন্টে পাস করা হয়েছে।

N বা কম সংখ্যার সাহায্যে সমস্ত সংখ্যা মুদ্রণ করতে সেক ব্যবহার করুন। (এগুলি বেস -১৯ নম্বর, সুতরাং এখানে প্রচুর অতিরিক্ত সংখ্যা রয়েছে It's এটি অপব্যয় এবং সময়সাপেক্ষ, তবে এটি কোড গল্ফ!)

গ্রেপ-এ কল কেবলমাত্র সেই সংখ্যাগুলিকেই রাখে যা 0s এর পরে যথাযথভাবে 1s সমন্বিত থাকে।

তারপরে এগুলি বিপরীত লিক্সোগ্রাফিকাল ক্রমে বাছাই করতে বাছাই -r ব্যবহার করুন।

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

ত্রুটি সংশোধন করা হয়েছে: আমি সেকের জন্য -f% .f বিকল্পটি বাদ দিয়েছি, যা 1000000 থেকে পূর্ণসংখ্যার জন্য প্রয়োজন। (সমস্যা আছে তা দেখানোর জন্য @ টবিস্পাইটকে ধন্যবাদ।)


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

কিছু মান অনুপস্থিত: dc<<<2i`seq $[10**7-1]|grep ^1*0*$|sort -r`f | wc -কেবল 12 টি মানের প্রতিবেদন করে। আমি মনে করি আপনি grep ^1[01]*$পরিবর্তে চান ।
টবি স্পিড

@ টবিস্পাইট ধন্যবাদ - একটি বাগ ছিল, যা আমি সংশোধন করেছি। সমস্যাটি রেজেক্সের ছিল না; ইস্যুটি ছিল যে সেকের একটি বিকল্প প্রয়োজন। (আমি নিশ্চিত না কেন আপনি কেবল মাত্র 12 আউটপুট মান পাচ্ছেন - এমনকি ভুল সংস্করণটি সঠিক 28 টির 21 টি আউটপুট মান তৈরি করে produced আপনি যদি এটি টিআইওতে চালাচ্ছিলেন তবে এটি টিআইওর 1 মিনিটের সময়সীমা অতিক্রম করেছে ।) আমি এখন এটি লিনাক্স এবং ওএস এক্স উভয়ে পরীক্ষা করেছি।
মিচেল স্পেক্টর

1
আসলে, আমি প্রশ্নটি ভুল বুঝেছিলাম - "পর পরের" গুরুত্বপূর্ণ শব্দটি কোনওরকমে আমাকে সোজা করে চলে গেল!
টবি স্পিড


2

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

->\n{map {|(2**$_-1 X+<0..n-$_)},1..n}

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

->\n{                                }  # A lambda with argument n.
                                 1..n   # Numbers from 1 to n.
     map {                     },       # Replace each one with a list:
            2**$_-1                     #   2 to that power minus 1,
                    X+<                 #   bit-shifted to the left by each element of
                       0..n-$_          #   the range from 0 to n minus the number.
          |(                  )         #   Slip the list into the outer list.

অর্থাৎ এটি এর মতো সংখ্যাগুলি তৈরি করে:

1 2 4 8 = (2^1)-1 bit-shifted to the left by 0 1 2 3 places
3 6 12  = (2^2)-1 bit-shifted to the left by 0 1 2   places
7 14    = (2^3)-1 bit-shifted to the left by 0 1     places
15      = (2^4)-1 bit-shifted to the left by 0       places      n rows
                                                  
             n                                     n-1

কোড:


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

->\n{map {|(2**$_-1,* *2...^*>2**n-1)},1..n}

উপরের (প্রকৃততর সরল) বিট-শিফট সমাধানের কথা ভাবার আগে এটি আমার প্রথম পন্থা।

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

->\n{                                      }  # A lambda with argument n.
                                       1..n   # Numbers from 1 to n.
     map {                           }        # Replace each one with:
            2**$_-1                              # 2 to that power minus 1,
                   ,* *2                         # followed by the result of doubling it,
                        ...^                     # repeated until (but not including)
                            *>2**n-1             # it's larger than 2^n-1.
          |(                        )            # Slip the list into the outer list.

অর্থাৎ এটি এর মতো সংখ্যাগুলি তৈরি করে:

1 2 4 8 = (2^1)-1, times 2, times 2, times 2
3 6 12  = (2^2)-1, times 2, times 2
7 14    = (2^3)-1, times 2
15      = (2^4)-1                                 n rows
                                    
             n                       as many columns as possible in
                                     each row without exceeding (2^n)-1

2

হাস্কেল 59 46 বাইট

আমি দিয়ে শুরু f n=[0..n]>>= \b->take(n-b).iterate(*2).sum.map(2^)$[0..b]

নিমির উত্তর থেকে উপরের sum.map(2^)$[0..x]দিকে ঘনীভূত হতে পারে এমন অন্তর্দৃষ্টি পেয়েছে2^x-1

সাথে শেষ

e n=[1..n]>>= \x->map(\y->2^y*(2^x-1))[0..n-x]

[1..n] - আমরা চক্রটি করতে চাই এমন একটানা সংখ্যক বিটগুলির সাথে তালিকাবদ্ধ করুন `

>> = - বামে তালিকার প্রতিটি উপাদানের জন্য অনুবাদ করা এটি ডানদিকে ফাংশনে প্রেরণ করুন এবং সমস্ত ফলাফলকে একত্রিত করুন

\ x -> - একটি যুক্তি সহ ল্যাম্বদা ফাংশন ঘোষণা

মানচিত্র xy - y এর সমস্ত সদস্যের জন্য x ফাংশন প্রয়োগ করে

আমাদের ক্ষেত্রে x = (\ y-> 2 ^ y * (2 ^ x-1)) - অন্য ল্যাম্বদা ফাংশন 2 ^ y * (2 ^ x-1))। এই সূত্রটি বাইনারিতে শূন্য থেকে ডানদিকে যোগ করে দুটি দ্বারা গুণণের থেকে উদ্ভূত হয় (উদাহরণস্বরূপ 0001 থেকে 0010)। 2 ^ x - 1 হ'ল আমরা যে বিটগুলির সাথে কাজ করছি তার সংখ্যা। সুতরাং 11 এর জন্য আমাদের কাছে 2 ^ 0 * 3 (অর্থাত্ শিফটটি মোটেও ডান করবেন না) == 0011, তারপরে 2 ^ 1 * 3 = 0110 তারপর 2 ^ 2 * 3 - 1100।

[0..nx] আমরা কতবার বিটগুলি স্থানান্তর করতে পারি তার তালিকা তৈরি করে। যদি আমরা একটি একক সাথে কাজ করছি তবে 0001 এর দিকে তাকিয়ে আমরা 3 বার (4-1) স্থানান্তর করতে চাই। আমরা যদি দুটি 11 কাজ করে থাকি তবে আমরা 4-2 আরও কিছু চাই।


2

পাইথন 3, 59 বাইট

দ্রষ্টব্য: এটি ovs এবং ডেনিসের সমাধানগুলি থেকে স্বাধীনভাবে তৈরি হয়েছিল , যদিও এটি উভয়ের সাথে খুব মিল similar

lambda n:[(2<<i)-1<<j for i in range(n)for j in range(n-i)]

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

for i in range(n)for j in range(n-i)  # Iterate over number of ones, then number of places
                                      # shifted over. i = ones, j = shifts

(2<<i)                                # Create a one followed by i zeroes
      -1                              # Subtract one from above to get i ones.
        <<j                           # Shift j places.

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

টিপস (কোডিং এবং নগদ উভয়) সর্বদা স্বাগতম!


2

জাপট , 11 বাইট

o@o!²ãXÄ mx

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

এটি @ ডেনিসের পদ্ধতির ব্যবহার অনেকটাই:

o@ o!²  ãXÄ  mx
oX{o!p2 ãX+1 mx}
                  // Implicit: U = input integer
oX{            }  // Create the range [0...U) and map each item X by this function:
   o              //   Create the range [0...U)
    !p2           //     and map each item Z to 2.p(Z); that is, 2**Z.
                  //     (p2 would map each item Z to Z.p(2); ! reverses the arguments.)
        ãX+1      //   Get all overlapping slices of length X + 1.
             mx   //   Map each of these slices Z through Z.x(); that is, sum each slice.
                  // Implicit: output result of last expression


2

পিএইচপি, 59 56 53 বাইট

for(;$p>($k*=2)?:($p=1<<$argn)>$k=$i+=$i+1;)echo$k,_;

এসটিডিআইএন থেকে ইনপুট নেয়; দিয়ে চালানো -R

ভাঙ্গন

for(;$p>($k*=2)         // 3. inner loop: shift-0 $k while $k<$p (false in first iteration)
    ?:
    ($p=1<<$argvn)      // 1. init $p=2^N, outer loop:
    >$k=$i+=$i+1        // 2. shift-1 $i while $i<$p, init $k to new $i
;)
    echo$k,_;           // 4. print $k

আপনি $argnখুব ভাল ধারণা ব্যবহার করতে পারেন । প্রশ্নটি পড়ার পরে আমার মাথায় 200 বাইটের সাথে একটি সমাধান রয়েছে
জার্গ হালসারম্যান

@ জার্গহেলসারম্যান আমাকে এসটিডিনের কথা মনে করিয়ে দেওয়ার জন্য ধন্যবাদ। আমি কেবল লুপগুলি মার্জ করতে পছন্দ করি।
তিতাস

1

জে , 19 বাইট

(0-.~&,>:+/\2&^)@i.

এটি @ ডেনিসের সমাধানে একই পদ্ধতি ব্যবহার করে ।

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

ব্যাখ্যা

(0-.~&,>:+/\2&^)@i.  Input: integer n
                 i.  Range [0, 1, ..., n-1]
(              )@    Operate on that range
            2&^        Compute 2^x for each x in that range
       >:              Increment each in that range
           \           For each overlapping sublist of size (previous) in powers of 2
         +/              Reduce by addition
 0                     The constant 0
     &,                Flatten each
  -.~                  Remove zeroes

1

পাইথন 3, 91 বাইট

a=int(input())
print(*[int('1'*-~b,2)<<c for b in range(a)for c in range(a-b)],sep=', ')

নির্দিষ্ট প্রোগ্রাম হিসাবে কমা + স্পেস বিচ্ছিন্ন আউটপুট সহ সম্পূর্ণ প্রোগ্রাম।

ব্যাখ্যা:

তারকা চিহ্নিতকরণ আনপ্যাকগুলি তালিকা। তাই print(*[1,2,3])হিসাবে একই print(1,2,3)int()কনস্ট্রাক্টরকে পরপর '1 এর স্ট্রিং পাস করুন ।

-~bএগুলি মূল্যায়ন করে b+1, তবে কোনও স্ট্রিংকে গুণিত করার সময় আপনাকে এটি বন্ধনী দিয়ে ঘিরে রাখতে হবে না।

উত্পাদিত পূর্ণসংখ্যার বিটশিফ্ট বারের সংখ্যা বাড়ছে। print()একটি আনপ্যাকড তালিকায় প্রতিটি আইটেমের মধ্যে স্ট্রিংটি নির্দিষ্ট করে স্ট্রিং নির্দিষ্ট করে ifyingচ্ছিক সেপ যুক্তি রয়েছে।


2
আপনি কেবল তালিকাটি মুদ্রণ করতে পারেন। আউটপুট ফর্ম্যাটটি এত কঠোর নয়।
mbomb007

1

জাভা 7, 108 বাইট

static void x(int i){int a=0,t=1<<i,b;while((a=(a<<1)+1)<t){b=a;do System.out.println(b);while((b<<=1)<t);}}

ফলাফলের চেয়ে ছোট হওয়া পর্যন্ত প্রাথমিক মান দ্বিগুণ করে 2^n। এরপরে, প্রাথমিক মানটি আপডেট করে (initial_value * 2) + 1এবং অবশেষে এটি পৌঁছানো পর্যন্ত সেখান থেকে আবার শুরু হয় (2^n)-1

যেমন n=4:

0001 -> init
0010
0100
1000
return, double init and add one
0011 -> init
0110
1100
return, double init and add one
0111 -> init
1110
return, double init and add one
1111 -> init
done

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


1

রুবি, 50 বাইট

->r{1.upto(r){|x|p a=2**x-1;p a while(a*=2)<2**r}}

আমি কিছু "চালাক" পদ্ধতির চেষ্টা করেছি, তবে এটি সবচেয়ে সংক্ষিপ্ত বলে মনে হচ্ছে (আক্ষরিক নির্দেশাবলী অনুসরণ করুন)

ব্যাখ্যা:

প্রতিটি পুনরাবৃত্তি 2 ^ n-1 দিয়ে শুরু হয় এবং উপরের সীমাটি না হওয়া পর্যন্ত 2 দ্বারা গুণ হয়। কিছুই অভিনব, শুধু বেসিক গণিত।


1

কিউবিআইসি , 37 বাইট - কাল্পনিক বোনাস = এখনও 37 বাইট ...

:[a|e=2^b-1┘while e<2^a┘?e┘e=e*2┘wend

লজ্জা আমি while-wendকিউবিসি-তে এখনও তৈরি করি নি ... ব্যাখ্যা:

:       Get N from the command line
[a|     For b = 1 to N; The sequence is reset N times
e=2^b-1 Set the first number of this sub-sequence (yields 1, 3, 7, 15 ...)
┘       Line-break - syntactic separation of commands because there's no command for WHILE yet.
while   Pure QBasic code - lower-case is not (really) interpreted by QBIC
e<2^a   Continue as long as we don't exceed the maximum value
┘?e     Print the number in the sequence
┘e=e*2  Double the number
┘wend   And loop as long as we're not exceeding maximum, reset the sequence otherwise.
        FOR loop auto-closed by QBIC

সম্পাদনা: কিউবিআইসির এখন এর জন্য সমর্থন রয়েছে WHILE:

:[a|e=2^b-1≈e<2^a|?e┘e=e*2

এটি মাত্র 26 বাইট! এখানে WHILE:

≈e<2^a|          ≈ = WHILE, and the TRUE condition is everything up to the |
       ...       Loop code goes here
          ]      Close construct: adds a WEND instruction
                 In the program above, this is done implicitly because of EOF.


1

আর , 69 48 46 বাইট

n=scan();for(i in 1:n)print((2^i-1)*2^(i:n-i))

i in 1..nবাইনারি সিস্টেমের সাথে সম্পর্কিত প্রতিটি দশমিক সংখ্যাকে দুই দ্বারা 2^(0..n-i)প্রথম গুণমান n-i+1(1, 2, 4, ...) দ্বারা গুণ করা হয় powers

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


1

স্ট্যাক্স , 9 বাইট

übg▓}╥é►╪

চালান এবং অনলাইন ডিবাগ!

ব্যাখ্যা

কাউকে কোনওরকম বেস রূপান্তর ছাড়াই এটি করা থাকলে কপাল বোনাস (সাধারণ পুরানো গণিত ব্যবহার করে) using

ভাল, এখানে কোন বেস রূপান্তর আছে।

ব্যাখ্যা করার জন্য আনপ্যাক করা সংস্করণ (10 বাইট) ব্যবহার করে।

m|2vx_-DQH
m             For input=`n`, loop over `1..n`
 |2v          Power of two minus one
    x_-D      Do `n-j` times, where `j` is the current 1-based loop index
        Q     Output the current value
         H    And double it

0

ব্যাচ, 92 - 0 = 92 বাইট

@for /l %%i in (1,1,%1)do @for /l %%j in (%%i,1,%1)do @cmd/cset/a"(1<<%%i)-1<<%%j-%%i"&echo(

@ স্টিভিগ্রিফিনের কল্পিত বোনাসের জন্য 0 বিয়োগ করা হচ্ছে।

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