এক থেকে শুরু করুন


18

একটি কঠোর ইতিবাচক পূর্ণসংখ্যা n দেওয়া হল , এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি অ্যারের তৈরি করুন একটি সঙ্গে এন 1 এর।
  2. যদি A এর একটি মাত্র উপাদান থাকে তবে শেষ করুন। অন্যথায়, প্রথম উপাদানটি থেকে শুরু করে, প্রতিটি জোড়কে এর যোগফলের সাথে প্রতিস্থাপন করুন , শেষ উপাদানটিকে এর দৈর্ঘ্য বিজোড় করে রেখে এই পদক্ষেপটি পুনরাবৃত্তি করুন।

প্রথম পদক্ষেপ থেকে শেষ পর্যন্ত প্রতিটি ধাপের পরে আউটপুটটিতে A এর অবস্থা থাকা উচিত । স্ট্যান্ডার্ড লুফোলের ব্যবহার নিষিদ্ধ। এটি একটি চ্যালেঞ্জ, সুতরাং প্রতিটি ভাষার সবচেয়ে কম বাইট সহ সমাধানটি জিততে পারে।

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

এই উদাহরণগুলির ফলাফলের প্রতিটি লাইন একটি রাষ্ট্র a আপনি যে কোনও যুক্তিসঙ্গত ফর্ম্যাট মাধ্যমে আউটপুট করতে পারেন।

ইনপুট: 1

[1]

ইনপুট: 4

[1, 1, 1, 1]
[2, 2]
[4]

ইনপুট: 13

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 1]
[8, 5]
[13]

ইনপুট: 15

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 3]
[8, 7]
[15]

আমি কি বিপরীত ক্রমের জন্য এই প্রশ্নগুলির ধারণাটি অনুলিপি করতে পারি? নম্বর এন দেওয়া হয়েছে, আউটপুট পদক্ষেপ A এবং আরও কতক্ষণ আপনি n 1s এ পৌঁছবেন?
pixma140

10
@ pixma140 এটি মূলত একই চ্যালেঞ্জ হতে পারে, ঠিক পরে আউটপুট বিপরীতভাবে। পরিবর্তনটি তুচ্ছ।
এরিক দ্য আউটগল্ফার

উত্তর:



4

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

:g`t2estnq

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

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

:     % Input n (implicit). Range [1 2 ... n]
g     % Convert to logical. Gives [1 1 ... 1]
`     % Do...while
  t   %   Duplicate
  2   %   Push 2
  e   %   Reshape as 2-column matrix, in column-major order, padding with 0 if needed
  s   %   Sum of each column
  t   %   Duplicate
  n   %   Number of elements
  q   %   Subtract 1. This will be used as loop condition
      % End (implicit). If top of the stack is not zero run new iteration
      % Display stack, bottom to top (implicit)

4

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

def f(i,j=1):print(i//j*[j]+[i%j][:i%j]);i>j and f(i,j*2)

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

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

def f(i,j=1):print i/j*[j]+[i%j][:i%j];i>j>f(i,j*2)

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

টিএসএস -6 মোট বাইটস

পুনরাবৃত্তি ফাংশন। প্রতিটি পদক্ষেপের জন্য, এটি শক্তির একটি তালিকা তৈরি করে 2, যেমন যোগফল প্রদত্ত পূর্ণসংখ্যার চেয়ে ছোট বা সমান। এটা তোলে তারপর, বাকি appends যদি এটা চেয়ে বড় 0


1
পাইথন 3 61 বাইট: def f(i,j=1):l=i//j*[j]+[i%j][:i%j];print(l);i>j and f(i,j*2); পাইথন 2 55 বাইট:def f(i,j=1):l=i/j*[j]+[i%j][:i%j];print l;i>j>f(i,j*2)
tsh

@tsh অবশ্যই, ধন্যবাদ! i>jআমার আগের সমাধানটিতে কাজ করেনি এবং আমি পরে এটি চেষ্টা করতে ভুলে গেছি।
জিতসে


3

আর , 65 বাইট

-1 বাইট জিউসেপিকে ধন্যবাদ।

n=scan();while(T<2*n){cat(rep(+T,n%/%T),if(n%%T)n%%T,"\n");T=2*T}

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

%/%%%k=2^in%/%kkn%%k2n1

এখানে Tপরিবর্তে আমি ব্যবহার করছি k, যেহেতু এটি সূচনা হয় TRUEযা 1 এ রূপান্তরিত হয় সে হিসাবে এখনও আউটপুটে s এর ভেক্টর এড়ানোর +Tপরিবর্তে আমার প্রিন্ট করা দরকার ।TTRUE


আমাকে প্রায় 5 মিনিট এবং প্রায় 60 বাইট দ্বারা প্রহার করুন ... তবে জিউসেপ ঠিক আছে, এটি চূড়ান্ত পদক্ষেপের ফলাফল দেয় না।
Sumner18

@ Sumner18 এখনই ঠিক করা উচিত।
রবিন রাইডার

+Tতুলনায় খাটোT+0
: Giuseppe

@ জিউসেপ ধন্যবাদ, আমি জানতাম আমি কিছু ভুলে যাচ্ছি।
রবিন রাইডার





3

জে , 20 17 বাইট

_2+/\&.>^:a:<@#&1

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

-5 বাইট বাবলার ধন্যবাদ


20 বাইট নির্মূল করে [:এবং ()
বুদ্বুদ

আমার স্নাতকের! ধন্যবাদ।
জোনাহ


ধন্যবাদ @ বুবলার কৌতূহলবশত, কী আপনাকে এটার কাছে ফিরিয়ে এনেছে?
জোনা

1
আমি কেবল উত্তরটি যোগ করতে বা বিদ্যমান উত্তর (গুলি) উন্নত করতে পারি কিনা তা দেখার জন্য আমি "এ্যাকটিভ" তে উপস্থিত এলোমেলো চ্যালেঞ্জগুলি ব্রাউজ করি।
বাবলার


2

জাভাস্ক্রিপ্ট, 55 বাইট

f=(n,t=1,r=n)=>r>t?t+[,f(n,t,r-t)]:n>t?r+`
`+f(n,t+t):r

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

এটি মূলত নিম্নলিখিত কোডগুলির গল্ফযুক্ত সংস্করণ:

function f(n) {
  var output = '';
  t = 1;
  for (t = 1; ; t *= 2) {
    for (r = n; r > t; r -= t) {
      output += t + ',';
    }
    output += r;
    if (n <= t) break;
    output += '\n';
  }
  return output;
}


2

ব্র্যাচল্যাগ , 17 বাইট

;1j₍ẹẉ₂{ġ₂+ᵐ}ⁱ.ẉȮ

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

ভয়ঙ্করভাবে দীর্ঘ এই হিসাবে হিসাবে, আমি এখনও একটি বিট ব্যবহার করার জন্য চালাক মনে .ẉȮ: সুস্পষ্ট পথ কিছু প্রিন্ট করতে, তারপর পরীক্ষা যদি তার দৈর্ঘ্য 1 হতে হবে ẉ₂l1, ẉ₂~gঅথবা ẉ₂≡Ȯ, যেখানে গত এক প্রয়োজনীয় কারণ ẉ₂একীকৃত করে তার ইনপুট এবং আউটপুট এটি মুদ্রণের আগে এবং Ȯদৈর্ঘ্য 1 এর তালিকা হিসাবে পূর্ব-সীমাবদ্ধ হওয়ার আগে, যাতে ইনপুটটি দৈর্ঘের 1 তালিকা না হয় তবে একীকরণ ব্যর্থ হয় a ভবিষ্যদ্বাণীকের শেষে, এই বৈশিষ্ট্যটি ẉ₂ছদ্মবেশিত করা যেতে পারে সাবস্ক্রিপশনের পরিবর্তে আউটপুট ভেরিয়েবল ব্যবহার করে : .ẉȮপ্রথমে তার ইনপুটটিকে আউটপুট ভেরিয়েবলের সাথে একত্রিত করে, তারপরে আউটপুট ভেরিয়েবলটি মুদ্রণ করে এবং তারপরেই আউটপুট ভেরিয়েবলটি একত্রিত করে Ȯ


2

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

Çë⌐ⁿ┤5π»Å╡

এটি চালান এবং এটি ডিবাগ করুন

পদ্ধতি:

  1. 0-ভিত্তিক ব্যাপ্তি তৈরি করুন।
  2. সমস্ত উপাদান শূন্য না হওয়া পর্যন্ত প্রতিটি উপাদানকে বারবার অর্ধেক করুন।
  3. প্রতিটি অনন্য অ্যারের জন্য রান-দৈর্ঘ্যের গণনা করুন।

স্বীকৃত উত্স:

r       main:[0 .. 5] 
{{hmgu  main:[[0 .. 5], [0, 0, 1, 1, 2, 2], [0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0]] 
m:GJ    main:"1 1 1 1 1 1" 

1

কাঠকয়লা , 19 বাইট

NθIE↨⊖⊗θ²E⪪Eθ¹X²κLλ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। চারকোলের ডিফল্ট আউটপুট ফর্ম্যাটটি ব্যবহার করে যা প্রতি লাইনে এক নম্বর, একে অপরের থেকে দ্বিগুণ ব্যবধানে সাবহারে রয়েছে। ব্যাখ্যা:

Nθ                  Input `n` into a variable
       θ            `n`
      ⊗             Doubled
     ⊖              Decremented
    ↨   ²           Converted to base 2 (i.e. ceil(log2(input)))
   E                Map
           Eθ¹      List of `1`s of length `n`
          ⪪         Split into sublists of length
               ²    Literal `2`
              X     To power
                κ   Loop index
         E          Map over each sublist
                 Lλ Take the length
  I                 Cast to string for implicit print


1

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

{1 xx$_,*.rotor(2,:partial)>>.sum...1}

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

আংশিক ঘোরার জন্য কিছু শর্টকাট রয়েছে যা আমি এই মুহূর্তে মনে রাখছি না ...

ব্যাখ্যা:

{                                    }  # Anonymous code block
                                 ...    # Return a sequence
 1 xx$_,            # Starting with a list of 1s with input length
        *           # Where each element is
         .rotor(2,:partial)        # The previous list split into chunks of 2 or less
                           >>.sum  # And each chunk summed
                                    1  # Until the list is length 1

1

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

g.pure
g x|x!!0<2=[x]|1>0=(g$(\z->filter(0/=)[-div(-z)2,div z 2])=<<x)++[x]

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

তালিকা থেকে পিছনে কাজ করে [n]যতক্ষণ না এটি সুনির্দিষ্টদের তালিকায় পৌঁছায়।

ফরোয়ার্ড যাওয়া আমি ব্যবহার বাইট 80 পেতে পারে chunksofথেকে Data.List.Split:

import Data.List.Split
f x=g$1<$[1..x]
g[n]=[[n]]
g x=x:(g$map sum$chunksOf 2 x)

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


1

কেগ , 30 বাইট

(|1){!1>|^(:. ,")^
,(!2/|+")}.

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

আমি আসলে এই চ্যালেঞ্জটি কিছু সময়ের জন্য সম্পূর্ণ করার অর্থ পেয়েছি (যার অর্থ, আমি নিজেকে এর লিঙ্কটি ইমেল করেছি যাতে আমি মনে করতে পারি), তবে এখন পর্যন্ত আমি কখনই এটি করতে পারিনি!



0

ওহম ভি 2 , 8 বাইট

@Dv·Ω2σΣ

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

যদি বৈজ্ঞানিক স্বরলিপিতে আউটপুট অনুমোদিত হয়, অন্যথায়:

ওহম ভি 2 , 9 বাইট

@Dv·Ω2σΣì

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


যদি বৈজ্ঞানিক স্বরলিপি সংখ্যাগুলি ওহমে প্রকৃতিগত সংখ্যার ধরণের (যেমন ভাসমান) হয় তবে নিশ্চিত, এটি যুক্তিসঙ্গত।
এরিক দি আউটগলফার

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