ম্যাট্রিক্স কলামগুলির অগ্রগতি


17

অসীম ম্যাট্রিক্স বিবেচনা করুন:

0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1
0  0  2  3  0  0  2  3  0  0  2  3  0  0  2  3
0  0  0  4  5  6  0  0  0  4  5  6  0  0  0  4 ...
0  0  0  0  7  8  9 10  0  0  0  0  7  8  9 10
0  0  0  0  0 11 12 13 14 15  0  0  0  0  0 11
              ...

ম্যাট্রিক্সের প্রতিটি নতুন সারিটি zজিরো দিয়ে শুরু করে নির্মিত হয় , যেখানে zআমরা সেই সারিটিতে ব্যবহার করছি ধনাত্মক অঙ্কগুলির দৈর্ঘ্য। ইতিবাচক অঙ্কগুলি শুরু করে 1এবং বর্ধন করে এবং প্রতিবার যখন আপনি সারিগুলি পুনরাবৃত্তি করেন তখন একটি অতিরিক্ত অঙ্ক যুক্ত করে নির্মিত হয়। এই প্যাটার্নটি ডানদিকে অসীম পুনরাবৃত্তি হয়। সুতরাং, উদাহরণস্বরূপ, প্রথম সারিটি 0, 1, 0, 1...দ্বিতীয় সারিটি শুরু হওয়ার সময় শুরু হয় 0,0, 2,3, 0,0, 2,3...। প্যাটার্ন অনুসরণ করে, তৃতীয় সারি শুরু হয় 0,0,0, 4,5,6, 0,0,0, 4,5,6...

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

উদাহরণস্বরূপ, ইনপুট n = 0(0-সূচকযুক্ত) এর জন্য, কলামটি পুরোপুরি0 s, সুতরাং আউটপুটটি কেবল x 0s হবে।

ইনপুট জন্য n = 15এবংx = 6 , আউটপুট হবে [1, 3, 4, 10, 11, 0]

ইনপুট জন্য n = 29এবংx = 15 , আউটপুট হবে [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]

ইনপুট জন্য n = 99এবংx = 25 , আউটপুট হবে [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]

আই / ও এবং বিধি

  • ইনপুট এবং আউটপুট দ্বারা দেওয়া যেতে পারে কোনও সুবিধাজনক পদ্ধতি
  • ইনপুট এবং আউটপুট আপনার ভাষার স্থানীয় নম্বর প্রকারের সাথে মানানসই।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরিয়ে দিতে পারেন।
  • স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

উত্তর:


4

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

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (n)(x)

n=>g=x=>x?[...g(x-1),n/x&1&&n%x+x*~-x/2+1]:[]

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

কিভাবে?

আমরা কলাম এন (0-ইনডেক্সড) এবং সারি এক্স (1-সূচিকৃত) তে ঘরের মান পেতে সরাসরি সূত্র ব্যবহার করি :

n / x & 1 &&     // is this cell zero or non-zero?
n % x +          // column modulo row --> increment for a non-zero value at this position
x * ~-x / 2 + 1  // minimum value of non-zero values for this row:
                 // ∑(i=1...x-1)(i) + 1 = x(x - 1) / 2 + 1

3

আর , 80 76 বাইট

একটি বাগ নির্দেশ করার জন্য @ জায়েসিকে ধন্যবাদ!

function(n,x)for(a in 1:x)print(rep(c(rep(0,a),((y=sum(1:a))-a+1):y),,n)[n])

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

এর জন্য 1-ভিত্তিক সূচক ব্যবহার করে n। খুব সম্ভবত একটি গল্ফিয়ার অ্যালগরিদম বিদ্যমান তবে repএটি নিষ্পাপ সমাধানের জন্য সক্ষম।


এটি এর জন্য ত্রুটিযুক্ত n=1যেহেতু কমপক্ষে আর ম্যাট্রিক্সের ফলনের ফল নেই। এই ফিক্স ব্যয়বহুল আমি ভাবছি কোন গল্ফিয়ার আছে কিনা?
জেইসি

ওহ, হ্যাঁ, আপনি ঠিক বলেছেন। আচ্ছা, ভাগ্যিস একটা আছে!
জিউসেপ

লুপের জন্য, হ্যাঁ! এবং আপনি প্রক্রিয়াতে 4 বাইট গল্ফ করেছেন :)
জেসি

@ জাসি হ্যাঁ আমার আসল ধারণাটি ছিল বাইরের দিকের ভিতর repদিয়ে ইনডেক্স দিয়ে ইনটেক্স করা , যা একটি বাইট সংরক্ষণ করেছিল, কিন্তু তখন আমি মনে রেখেছিলাম যে লুপগুলি ছোট হওয়ার কারণে যেহেতু আমাকে কোনও ফাংশন সংজ্ঞায়িত করতে হবে না। nsapplyforsapply
জিউসেপ



2

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

x:"@:t~ys:b@-)h1G)

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

লুইস মেন্ডোকে 6 বাইট গলফ করার জন্য ধন্যবাদ!

এটি মূলত আমার আর উত্তরের একটি এমএটিএল বন্দর।

x		 % implicit input, read n and delete
:		 % implicit input, read x and push [1..x]
"		 % for loop with i = 1..x
 @:		 % push [1..i]
   t		 % duplicate
    ~		 % logical negate, turn to array of zeros
		 % stack: [[1..i], [0 .. (i times)]]
     y		 % duplicate from below
		 % stack: [[1..i], [0 .. (i times)], [1..i]]
      s:	 % sum and range
		 % stack: [[1..i], [0 .. (i times)], [1..(i * (i + 1)/2)]]
	b	 % bubble up
		 % stack: [[0 .. (i times)], [1..(i * (i + 1)/2)], [1..i]]
	 @-	 % push i and subtract. This will be used as a modular index to get the last i elements
		 % stack: [[0 .. (i times)], [1..(i * (i + 1)/2)], [1-i..0]]
	   )	 % index into array modularly to get the last i elements
		 % stack: [[0 .. (i times)], [(i-1)*i/2 + 1, .. (i * (i + 1)/2)]]
	    h	 % horizontally concatenate the array
	     1G) % push n and index modularly, leaving the result on the stack
		 % implicit end of for loop. The stack now contains the appropriate elements in order
		 % implicit end. Print stack contents


1

কাস্তে , 14 বাইট

↑!Tzo¢+MRN0CNN

আর্গুমেন্টটি n(প্রথম) 1-ইনডেক্সড, এটি অনলাইনে চেষ্টা করুন!

বিকল্পভাবে আমরা ব্যবহার করতে পারে ↑!TṠzo¢+†K0CNN একই সংখ্যক বাইট ।

ব্যাখ্যা

↑!Tz(¢+)MRN0CNN -- example inputs n=4, x=3
            C N -- cut the natural numbers: [1,2,3,4,…]
             N  -- | using the natural numbers
                -- : [[1],[2,3],[4,5,6],[7,8,9,10],…]
        M N     -- map over the naturals
         R 0    -- | replicate 0 that many times
                -- : [[0],[0,0],[0,0,0],[0,0,0,0],…]
   z(  )        -- zip these two lists
      +         -- | concatenate
     ¢          -- | cycle
                -- : [[0,1,0,1,…],[0,0,2,3,0,0,2,3,…],…]
  T             -- transpose: [[0,0,0,0,…],[1,0,0,0,…],[0,1,0,0,…],[1,3,4,0,…],…]
 !              -- index into that list using n: [1,3,4,0,…]
↑               -- take x: [1,3,4]

1

হুস্ক , 21 19 বাইট

↑mȯ!⁰¢§+`R0§…ȯ→Σ←ΣN

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





1

জেলি , 11 বাইট

ṖS+R¬;$)⁹ịⱮ

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

-1 জনাথন অ্যালানকে ধন্যবাদ ।

যুক্তি 1: x
তর্ক 2: n + 1 n


0ṁ;Ɗ-> ¬;$একটি বাইট সংরক্ষণ করে।
জোনাথন অ্যালান

@ জোনাথান অ্যালান এবং আমি সন্দেহ করি যে এটি এখনও পর্যাপ্ত নয়। কমপক্ষে আমি অবমাননাকর অপসারণ করেছি ’R... (এটি আমার পক্ষে কমপক্ষে) এক অদ্ভুত বিষয়টি হ'ল গত কয়েক দিন ধরে আমি থি-মোর্স ক্রমটি নিয়ে ভাবছিলাম (যা জেলিতে রয়েছে ;¬$)।
এরিক আউটগল্ফার

1

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

LO©LsL£¹£¹LÅ0s)øε˜®Ì∍}ø¹è

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


05 এ বি 1 ই টুথপেস্ট এবং কমলার জুসের মতো ম্যাট্রিকগুলি সহ যায় তবে আমার বাস্তবায়ন কতটা খারাপ তা বিবেচনা করে কোনও খারাপ বাইট গণনা হয় না। এমনকি আমার কোড আমাকে দেখে হাসছে " LO©L"।


0

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

IE…·¹N§⁺Eι⁰EιL⊞Oυωη

এটি অনলাইন চেষ্টা করুন!লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

    ¹               Literal 1
     N              First input (`x`) as a number
  …·                Inclusive range
 E                  Map (value `i`, 0-indexed counter `k`)
         ι          Current value
        E           Map over implicit range
          ⁰         Literal 0 (i.e. create array of `i` zeros)
            ι       Current value
           E        Map over implicit range
                 ω  Arbitrary variable
                υ   Predefined array
              ⊞O    Push
             L      Length
       ⁺            Concatenate arrays
      §           η Index by second input (`n`)
I                   Cast to string and implicitly print on separate lines

স্নিপেট লুপের মধ্য দিয়ে প্রতিটি পাসে একটি ডামি মানকে একটি অ্যারেতে ঠেলে দিয়ে ফলাফলের অ্যারের দৈর্ঘ্য গ্রহণের মাধ্যমে EιL⊞Oυωপরবর্তী iসংখ্যার উত্পাদন করে ।


0

জাভা 8, 65 63 60 বাইট

n->x->{for(;x>0;)System.out.println(n/x%2*(n%x+x*--x/2+1));}

n 0-সূচকযুক্ত, x 1-ইনডেক্সেড হয়, নতুন-লাইনের সীমানাঙ্কিত এবং বিপরীত সংখ্যাগুলিকে আউটপুট দেয়।

@ Arnauld এর জাভাস্ক্রিপ্ট (ES6) এর উত্তর পোর্ট

এটি অনলাইনে চেষ্টা করুন।
সঠিক ক্রমে একটি দুর্দান্ত-মুদ্রিত ফলাফল 8 6 বাইট দীর্ঘ: এটি অনলাইনে চেষ্টা করুন।


0

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

i#l=cycle((++)=<<(0<$)$[i..l-1]):l#(l+l-i+1)
n!x=take x$(!!n)<$>1#2

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

i#l                  -- function # builds the infinite matrix
                     -- input: i and l are lowest and highest+1 non-zero number of
                     -- the current line
   = cycle           -- for the current line, repeat infinitely
           [i..l-1]  --   the non-zero numbers of the line appended 
     (++)=<<(0<$)    --   to a list of 0s with the same length
   :                 -- append next row of the matrix
     l#(l+l-i+1)     --   which is a recursive call with i and l adjusted

n!x =                -- main function
              1#2    -- create matrix
      (!!n)<$>       -- pick nth element of each row
  take x             -- take the first x numbers thereof
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.