মাঝখানে থেকে অ্যারেগুলি মুদ্রণ করুন


10

এটি একটি কোড-গল্ফ প্রশ্ন।

প্রদত্ত পূর্ণসংখ্যা গুলি এবং এনকে দেওয়া হল দৈর্ঘ্যের সমস্ত অ্যারে আউটপুট করা যা -s থেকে মানগুলিতে নেয় take একমাত্র টুইস্টটি হ'ল আপনাকে অবশ্যই নিম্নলিখিত ক্রমে সেগুলি আউটপুট করতে হবে।

  • দৈর্ঘ্যের সমস্ত শূন্য অ্যারে
  • আপনার পূর্বে আউটপুট করা কোনও অ্যারে বাদ দিয়ে -1 থেকে 1 পর্যন্ত উপাদানগুলির সাথে দৈর্ঘ্যের এন এর সমস্ত অ্যারে।
  • আপনি পূর্বে আউটপুট করেছেন এমন কোনও অ্যারে বাদ দিয়ে -2 থেকে 2 পর্যন্ত উপাদান সহ সমস্ত দৈর্ঘ্যের এন এর অ্যারিগুলি।
  • এবং তাই আপনি যতক্ষণ না পূর্বে আউটপুট করেছেন এমন কোনও অ্যারে বাদ দিয়ে এস-এর উপাদানগুলির সাথে দৈর্ঘ্যের এন এর সমস্ত অ্যারে না পাওয়া পর্যন্ত।

আপনার প্রতি লাইনে একটি অ্যারে আউটপুট করা উচিত। তারা স্থান বা কমা দ্বারা পৃথক করা যেতে পারে।

এখানে কিছু অ-কমপ্লায়িং পাইথন কোড রয়েছে যা অ্যারে / তালিকা / টিপলগুলি সঠিক ক্রমে আউটপুট করে।

import itertools

s =  3
n = 2

oldsofar = set()
newsofar = set()
for i in xrange(s):
    for k in itertools.product(range(-i,i+1), repeat = n):
        newsofar.add(k)
    print newsofar - oldsofar
    oldsofar = newsofar.copy()
    print "***"

অতিরিক্ত গৌরব (এবং আমার কাছ থেকে নেওয়া) এমন উত্তরের জন্য যা কোনও সেট বিয়োগ বা সমতুল্য না করে।


1
আমরা কি এমন একটি ফাংশন লিখতে পারি যা ফলাফল মুদ্রণ করে?
LegionMammal978

@ LegionMammal978 আমি একটি সম্পূর্ণ প্রোগ্রাম পছন্দ করব। এটিকে যদি গুরুতরভাবে বিতর্কিত বলে মনে করা হয় তবে অবশ্যই আমি অবশ্যই দেব :)

আপনার প্রতিটি বুলেট পয়েন্টের মধ্যে কোনও প্রয়োজনীয় অর্ডার রয়েছে?
মার্টিন এেন্ডার

@ মার্টিনব্যাটনার না, একেবারেই নয়।

উত্তর:


6

জেলি, 9 বাইট

NRṗµAṀ€Ụị

এই পোস্টটি তৈরিতে কোনও তালিকা বিয়োগ ব্যবহার করা হয়নি। এটি অনলাইন চেষ্টা করুন!

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

NRṗµAṀ€Ụị  Main link. Arguments: s, n

N          Negate; yield -s.
 R         Range; yield [-s, ..., s].
  ṗ        Cartesian power; push all vectors of length n of those elements.
   µ       Begin a new, monadic link. Argument: L (list of vectors)
    A      Compute the absolute values of all vector components.
     Ṁ€    Get the maximum component of each vector.
       Ụ   Sort the indices of A according to the maximal absolute value of the
           corresponding vector's components.
        ị  Retrieve the vectors of A at those indices.

এখন এটা নিরীহ হয়ে যাচ্ছে!

2
"এই পোস্টটি তৈরিতে কোনও তালিকার কোনও ক্ষতি করা হয়নি"
ডেনিস ভ্যান গিল

6

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

_G2$:iZ^t!|X>4#SY)

প্রথম ইনপুট হয় s, দ্বিতীয় হয়n

এটি ভাষার বর্তমান সংস্করণে (15.0.0) কাজ করে।

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

ব্যাখ্যা

_      % take input s implicitly. Negate to obtain -s
G      % push input s again
2$:    % inclusive range from -s to s
i      % take input n
Z^     % Cartesian power. Gives 2D array, with each result on a row
t!     % duplicate and transpose
|      % absolute value
X>     % maximum of each column 
4#S    % sort and push the indices of the sorting
Y)     % apply as row indices into the 2D array. Display implicitly

1
18 বাইটগুলি

4

হাস্কেল, 61 60 বাইট

n#s=[c|b<-[0..s],c<-mapM id$[-b..b]<$[1..n],any((b==).abs)c]

ব্যবহারের উদাহরণ: 2#2->[[0,0],[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1],[-2,-2],[-2,-1],[-2,0],[-2,1],[-2,2],[-1,-2],[-1,2],[0,-2],[0,2],[1,-2],[1,2],[2,-2],[2,-1],[2,0],[2,1],[2,2]]

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

   b<-[0..s]                           -- loop b through 0 .. s
        c<-mapM id$[-b..b]<$[1..n]     -- loop c through all lists of length n
                                       -- made out of the numbers -b .. b
                                       -- ("[-b..b]<$[1..n]" is "replicate n [-b..b]";
                                       --  "mapM id" is "sequence")
[c|                 ,any((b==).abs)c]  -- keep c if it contains b or -b

সম্পাদনা: @xnor সরু আউট যে mapM idহয় sequence


mapM idতুলনায় খাটো sequence
xnor

@ এক্সনর: সত্য। ধন্যবাদ!
নিমি

2

গণিত, 83 বাইট

Print/@Select[Range[-#,b=#]~Tuples~a,Abs@#~MemberQ~b&]&/@Range[0,a=Input[];Input[]]

ব্যবহার করতে, একটি স্ক্রিপ্ট এবং ইনপুট nপরে sপৃথক লাইনে রাখুন। প্রতিটি অ্যারে একটি কোঁকড়ানো বন্ধনী, কমা-বিস্মৃত তালিকা হিসাবে (যেমন, {-1, 0, 1}) মুদ্রণ করে । এটা তোলে দৈর্ঘ্য প্রতিটি তালিকা গ্রহণ করে কাজ করে nমধ্যবর্তী সংখ্যার [-cur..cur], এবং যারা যা অন্তর্ভুক্ত হয় মুদ্রণ -curবা cur। তখনই সকলের জন্য এই পুনরাবৃত্তি curমধ্যে [0..s](এই পোস্টে 19 `অক্ষর রয়েছে!)


1

জাভাস্ক্রিপ্ট (স্পাইডারমনকি 30+), 134 বাইট

(s,n)=>n?[for(a of f(s,n-1))for(i of Array(s*2+1).keys())[i-n,...a]].sort((a,b)=>g(a)-g(b),g=a=>Math.max(...a,-Math.min(...a))):[[]]

কার্টেসিয়ান-পাওয়ার-এবং সাজানোর অ্যাপ্রোচ ব্যবহার করে, যা আমি আলাদাভাবে চিন্তা করেছি, তবে আমি স্পাইডার মোনকিকে আবার কম্পাইল করেছিলাম তাই আমি ডেনিসের আগে এর উত্তর দিতে পারিনি।

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