বিকল্প সাইন ম্যাট্রিক্স যাচাইকরণ


16

একটি পর্যায়ক্রমে চিহ্ন ম্যাট্রিক্স একজন nদ্বারা nসংখ্যার গঠিত ম্যাট্রিক্স -1, 0, 1, যেমন যে:

  • প্রতিটি সারি এবং কলামের যোগফল 1 হয়
  • প্রতিটি সারি এবং কলামের বিকল্পে সাইন ইন ননজারো প্রবেশ করুন

এই ম্যাট্রিকগুলি ক্রমান্বয়ে ম্যাট্রিকগুলি সাধারণীকরণ করে এবং প্রদত্ত জন্য এই জাতীয় ম্যাট্রিকগুলির সংখ্যা nকিছু সময়ের জন্য আগ্রহী ছিল। ম্যাট্রিক্স নির্ধারণকারীদের ডডসন ঘনীকরণ পদ্ধতির সময় এগুলি প্রাকৃতিকভাবে ঘটে (চার্লস ডডসনের নামানুসারে লুইস ক্যারল নামে পরিচিত)।

এখানে 4 বাই 4 বিকল্প সাইন ম্যাট্রিক্সের কয়েকটি উদাহরণ রয়েছে:

 0  1  0  0          1  0  0  0          0  0  1  0          0  0  1  0    
 0  0  1  0          0  0  1  0          0  1 -1  1          1  0 -1  1
 1  0  0  0          0  1 -1  1          1 -1  1  0          0  1  0  0
 0  0  0  1          0  0  1  0          0  1  0  0          0  0  1  0

এবং এখানে 4 বাই 4 ম্যাট্রিকের কয়েকটি উদাহরণ রয়েছে যা সাইন ম্যাট্রিক্সের বিকল্প নয় are

 0  1  0  0
 0  0  0  1
 1  0  0  0
 0  0  1 -1    (last row and last column don't add to 1)

 0  0  0  1
 1  0  0  0
-1  1  1  0
 1  0  0  0    (third row does not alternate correctly)

তোমার প্রোগ্রাম বা ফাংশন একটি দেওয়া হবে nদ্বারা nম্যাট্রিক্স ( n >= 1আউটপুট A - -1s, 0 সেঃ এবং 1s) truthy মান যদি দেওয়া ম্যাট্রিক্স একটি পর্যায়ক্রমে চিহ্ন ম্যাট্রিক্স একটি falsy মান, অন্যথায় আউটপুট।

এটি , তাই ব্যবহৃত বাইটের সংখ্যা হ্রাস করা লক্ষ্য।

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

নিম্নলিখিত পরীক্ষার কেসগুলি পাইথনের মতো 2D তালিকা ফর্ম্যাটে দেওয়া হয়েছে।

Truthy:

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

Falsy:

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

উত্তর:


3

রেটিনা , 62 58 56 53 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং অনুমান করে এবং \tপ্রকৃত ট্যাবগুলির সাথে প্রতিস্থাপন করা উচিত (0x09 যা এসই দ্বারা স্পেসে রূপান্তরিত হবে)।

$
\t$`¶
O$#`...(?<=^[^\t]*(.+))
$.1
T` 0
^(1(-11)*\s)+$

ইনপুট ফর্ম্যাটটি একটি ম্যাট্রিক্স যেখানে প্রতিটি কলামে তিনটি ডান-প্রান্তযুক্ত অক্ষর ব্যবহার করে, যেমন:

  0  0  1  0
  1  0 -1  1
  0  1  0  0
  0  0  1  0

আউটপুট হয় হয় 0(মিথ্যা) বা 1(সত্যবাদী)।

পরীক্ষা স্যুট. (প্রথম কয়েকটি লাইন ইনপুট ফর্ম্যাটকে রূপান্তরিত করে এবং রেটিনা একবারে একাধিক পরীক্ষার কেস চালাতে দেয়))

ব্যাখ্যা

ধন্যবাদ, ইনপুটটি একটি বর্গক্ষেত্রের ম্যাট্রিক্স: স্কোয়ারগুলি ট্রান্সপোসিং রেটিনাতে প্রায় কার্যক্ষম, অন্যদিকে আয়তক্ষেত্রগুলি স্থানান্তর করা একটি বিশাল ব্যথা।

$
\t$`¶

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

O$#`...(?<=^[^\t]*(.+))
$.1

এটি সবচেয়ে জটিল বিট: ম্যাট্রিক্সের প্রথম অনুলিপিটি স্থানান্তর করা। ধারণাটি হ'ল প্রথম অনুলিপিতে কক্ষগুলি মেলে এবং তারপরে অনুভূমিক অবস্থান অনুসারে সেগুলি বাছাই করুন। আমরা এর সাথে ঘরগুলি মেলে ...(যেহেতু তারা সর্বদা তিনটি অক্ষর প্রশস্ত থাকে) এবং তারপরে (.+)চেহারাটির পিছনের দিকের সাথে অনুভূমিক অবস্থানটি পরিমাপ করি। তারপরে, আমরা কেবল প্রথম অনুলিপিটি স্থানান্তর করেছি তা নিশ্চিত করার জন্য, আমরা পরীক্ষা করি যে কোনও ট্যাবকে না নিয়েই আমরা স্ট্রিংয়ের শুরুতে পৌঁছাতে পারি।

আপনি লক্ষ্য করতে পারেন যে এটি দ্বিতীয় কপির প্রথম সারিতে কিছু তিন-বাইট স্ট্রিং (যা এমনকি ঘরগুলির সাথে একত্রিত হয় না) এর সাথেও মিলবে কারণ .+ট্যাবটি পেরিয়ে যেতে পারে। তবে এটি কোনও সমস্যা নয় কারণ এই প্রতিযোগিতার ম্যাচগুলির অনুভূমিক অবস্থান প্রথম অনুলিপিটির অভ্যন্তরের তুলনায় কঠোরতর, সুতরাং এই ম্যাচগুলি তাদের অবস্থানে থেকে যায়।

বাকিগুলি মোটামুটি সহজ:

T` 0

আমরা ইনপুট থেকে স্পেস এবং শূন্যগুলি সরিয়ে ফেলি।

^(1(-11)*\s)+$

এবং পরিশেষে আমরা পরীক্ষা করে দেখি যে পুরো ইনপুটটিতে ফর্মের সাদা স্থান-সমাপ্তি সারি রয়েছে 1(-11)*, অর্থাৎ এর একটি বিকল্প ধারা 1এবং -1এটি শুরু হয় এবং শেষ হয় 1(কারণ অন্যথায় এটি যোগ হয় না 1)।


3

জেলি, 15 বাইট

;Zḟ€0;€-;@€-IFP

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

;Zḟ€0;€-;@€-IFP   Main monadic chain. Argument: z

;Z                Concatenate with its transpose.
  ḟ€0             Remove zeros from each sub-list. At this point,
                  one expects lists of the form [1, -1, 1, -1, ..., 1] for truthy,
                  and any other arrays containing purely 1 and -1 for falsey.
     ;€-          Append -1 to each sub-list.
        ;€@-      Prepend -1 to each sub-list.
            I     Compute the difference between each term. At this point,
                  for truthy, one expects arrays filled with 2, and arrays
                  containing 0 otherwise.
             FP   Product of every item. This checks if any item is equal to zero.

3

পাইথ, 16 বাইট

!sm-sM._+d_1U2+C

এটি অনলাইনে ব্যবহার করে দেখুন: বিক্ষোভ বা পরীক্ষার স্যুট

ব্যাখ্যা:

!sm-sM._+d_1U2+CQQ   two implicit Qs (=input matrix) at the end
              +CQQ   zip Q and connect it with Q (=list of columns and rows)
  m                  map each column/row d to:
        +d_1            append -1 to d
      ._                compute all prefixes of ^
    sM                  compute the sums of the prefixes
   -        U2          remove zeros and ones
                        a column/row is correct, if this gives an empty list 
 s                   connect up all resulting lists
!                    check, if this result is empty

3

জেলি , 11 বাইট

;Zj-+\ṚQḄ=2

রিটার্নস 1 নিদর্শন ম্যাট্রিক্স, পর্যায়ক্রমে জন্য 0 অন্যথায়। এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

পটভূমি

শূণ্যসমূহ disregarding, প্রতিটি সারি ও কলাম প্যাটার্ন গঠিত হয়েছে (1 -1) * 1 , অর্থাত্, এর পর্যায়ক্রমে ঘটনা 1 এবং -1 , শুরু এবং একটি দিয়ে শেষ 1 (তাই সমষ্টি 1 )।

এটি কেসটি যাচাই করার জন্য, আমরা সমস্ত সারি এবং কলামের অ্যারে নিই এবং সেগুলি বিভাজক হিসাবে -1 ব্যবহার করে যোগদান করি । যেহেতু সমস্ত প্রান্ত বিন্দু 1 এর, ফলস্বরূপ ফ্ল্যাট অ্যারে প্যাটার্নটি সন্তুষ্ট করে (1, -1) * 1 সারণী এবং কলামগুলি করা হলে এবং কেবল যদি।

প্রকৃত পরীক্ষার জন্য, আমরা অ্যারের সংশ্লেষক যোগফলটি গণনা করি। একটি বিকল্প সাইন ম্যাট্রিক্সের জন্য, ফলাফলটি 0 এবং এর 1 এর সমাপ্তি হবে যা 1 দিয়ে শেষ হবে ।

আমরা সমস্ত অনন্য উপাদানের প্রাথমিক উপস্থিতিগুলির ক্রম রেখে, সংশ্লেষফলকে বিপরীত করি এবং এটি প্রতিলিপি করি। সত্যবাদী ইনপুটটির জন্য, ফলাফলটি [1, 0] হবে

সংশ্লিষ্ট বুলিয়ান আউটপুট করতে, আমরা ডুপ্লিকেটযুক্ত সংখ্যামূলক যোগফলগুলি বাইনারি থেকে পূর্ণসংখ্যায় রূপান্তর করি এবং ফলাফল 2 হলে পরীক্ষণ করি ।

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

;Zj-+\ṚQḄ=2  Main link. Argument: M (matrix / 2D array)

 Z           Zip; transpose M's rows and columns.
;            Concatenate M and zipped M.
  j-         Join, separating by -1.
    +\       Take the cumulative sum of the result.
      Ṛ      Reverse the array of partial sums.
       Q     Unique; deduplicate the partial sums.
        Ḅ    Unbinary; convert from base 2 to integer.
         =2  Test for equality with 2.

2

এমএটিএল, 18 16 15 13 বাইট

3 লাইট সংরক্ষণ করেছেন লুইসকে ধন্যবাদ

t!h"@s1=@Xzdv

এই সমাধানটি 2D অ্যারেটিকে ইনপুট হিসাবে গ্রহণ করে এবং সত্যবাদী বা মিথ্যা অ্যারে আউটপুট দেয় । এটি লক্ষণীয় গুরুত্বপূর্ণ যে এমএটিএল-তে সত্যবাদী অ্যারেটি সমস্ত অ-শূন্য উপাদানগুলির সমন্বয়ে গঠিত হয় এবং মিথ্যা ফলাফলের ক্ষেত্রে কমপক্ষে একটি শূন্য উপাদান থাকে। এখানে সত্যবাদী / মিথ্যা অ্যারেগুলির আরেকটি প্রদর্শন রয়েছে

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

সমস্ত পরীক্ষার কেসগুলি দেখানোর জন্য সংশোধিত সংস্করণ

ব্যাখ্যা

        % Implicitly grab input matrix
t!      % Duplicate and transpose input
h       % Horizontally concatenate input with transpose. This allows us to 
        % process only columns since now the columns *also* contain the rows.
"       % For each column (of our column/row combined matrix)
  @s1=  % Compute the sum and ensure it is equal to 1
  @Xz   % Get the non-zeros
  d     % Compute the element-to-element difference. The 1 and -1 alternate only if
        % all these differences are non-zero
  v     % Vertically concatenate everything on the stack
        % Implicit end of loop and implicitly display truthy/falsey value


1

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

a=>!/(^|,)(?!0*10*(-10*10*)*(,|$))/.test(a.map(b=>b.join``)+','+a.map((_,i)=>a.map(b=>b[i]).join``))

অ্যারে এবং এর ট্রান্সপোসগুলিকে স্ট্রিংয়ে ফ্ল্যাট করে, তারপরে প্রতিটি স্ট্রিংয়ের 0প্যাটার্নের জন্য ( গুলি উপেক্ষা করে ) চেক করুন 1-11...1-11

সম্পাদনা করুন: @ পিটারটেলরকে 12 টি বাইট সংরক্ষণ করা হয়েছে।


1
আপনাকে প্যাটার্নটি পরীক্ষা করার দরকার নেই -11-1...-11-1কারণ যেহেতু এন্ট্রিগুলি বিকল্প এবং ধনাত্মক যোগফল রয়েছে, এর 1চেয়ে আরও একটি অবশ্যই থাকতে হবে -1, সুতরাং প্যাটার্নটি অবশ্যই হওয়া উচিত 1-11...1-11
পিটার টেলর

@ পিটারটেলর উগ, দ্বিতীয়বারের মতো আমি প্রশ্নটি ভুলভাবে লিখেছি। (প্রথমবারের সাথে সম্পর্কিত মন্তব্যগুলি পরে মুছে ফেলা হয়েছে))
নীল

শিরোনামটি 110 বাইট বলে, তবে এটি কেবল 100
পিটার টেলর

1
@ পিটারটেলর কমপক্ষে "পিটারটেলরকে ধন্যবাদ" সংরক্ষিত 12 বাইট "সঠিক ছিল।
নিল

1

পাইথন 2, 63 60 বাইট

s=0;x=input()
for r in x+zip(*x):
 for n in(-1,)+r:s+=[n][s]

ইনপুট টিপলগুলির একটি তালিকা।

বিকল্প সাইন ম্যাট্রিক্স এবং অন্যথায় প্রস্থান কোড 1 এর জন্য প্রস্থান কোড 0 দিয়ে এটি শেষ হয় । এটি সত্য এবং মিথ্যা যা করে এবং যাচাইকরণ বিভাগে দেখানো হয়েছে - এটি অবশ্যই শর্ত হিসাবে যেমন ব্যাশ স্ক্রিপ্ট হিসাবে ব্যবহার করা যেতে পারে।

প্রতিপাদন

পরীক্ষা cases.txt

[(1,)]
[(1, 0), (0, 1)]
[(0, 1), (1, 0)]
[(0, 1, 0), (0, 0, 1), (1, 0, 0)]
[(0, 1, 0), (1, -1, 1), (0, 1, 0)]
[(0, 1, 0, 0), (0, 0, 1, 0), (1, 0, 0, 0), (0, 0, 0, 1)]
[(1, 0, 0, 0), (0, 0, 1, 0), (0, 1, -1, 1), (0, 0, 1, 0)]
[(0, 0, 1, 0), (0, 1, -1, 1), (1, -1, 1, 0), (0, 1, 0, 0)]
[(0, 0, 1, 0), (1, 0, -1, 1), (0, 1, 0, 0), (0, 0, 1, 0)]
[(0, 0, 1, 0, 0), (0, 1, -1, 1, 0), (1, -1, 1, 0, 0), (0, 1, 0, -1, 1), (0, 0, 0, 1, 0)]
[(0, 0, 1, 0, 0, 0, 0, 0), (1, 0, -1, 0, 1, 0, 0, 0), (0, 0, 0, 1, -1, 0, 0, 1), (0, 0, 1, -1, 1, 0, 0, 0), (0, 0, 0, 0, 0, 0, 1, 0), (0, 0, 0, 0, 0, 1, 0, 0), (0, 1, -1, 1, 0, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0)]
[(0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 1, 0, -1, 1, 0, 0), (0, 0, 0, 1, 0, 0, 0, 0), (1, 0, 0, -1, 1, -1, 1, 0), (0, 1, -1, 1, -1, 1, 0, 0), (0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 0, 1)]
[(0,)]
[(-1,)]
[(1, 0), (0, 0)]
[(0, 0), (0, 1)]
[(-1, 1), (1, 0)]
[(0, 1), (1, -1)]
[(0, 0, 0), (0, 0, 0), (0, 0, 0)]
[(0, 1, 0), (1, 0, 1), (0, 1, 0)]
[(-1, 1, 1), (1, -1, 1), (1, 1, -1)]
[(0, 0, 1), (1, 0, 0), (0, 1, -1)]
[(0, 1, 0, 0), (0, 0, 0, 1), (1, 0, 0, 0), (0, 0, 1, -1)]
[(0, 0, 1, 0), (0, 0, 1, 0), (1, 0, -1, 1), (0, 1, 0, 0)]
[(0, 0, 0, 1), (1, 0, 0, 0), (-1, 1, 1, 0), (1, 0, 0, 0)]
[(1, 0, 1, 0, -1), (0, 1, 0, 0, 0), (0, 0, 0, 0, 1), (0, 0, 0, 1, 0), (0, 0, 0, 0, 1)]
[(0, 0, 1, 0, 0), (0, 1, -1, 1, 0), (1, -1, 1, 0, 0), (0, 1, 1, -1, 0), (0, 0, -1, 1, 1)]
[(0, -1, 0, 1, 1), (1, -1, 1, -1, 1), (0, 1, 1, 0, -1), (1, 1, -1, 1, -1), (-1, 1, 0, 0, 1)]
[(0, 0, 1, 0, 0, 0, 0, 0), (1, 0, 1, 0, 1, 0, 0, 0), (0, 0, 0, 1, -1, 0, 0, 1), (0, 0, 1, -1, 1, 0, 0, 0), (0, 0, 0, 0, 0, 0, 1, 0), (0, 0, 0, 0, 0, 1, 0, 0), (0, 1, -1, 1, 0, 0, 0, 0), (0, 0, 1, 0, 0, 0, 0, 0)]

test-suite.sh

while read; do
        if python2 asmv.py <<< "$REPLY"; then
                echo "true"
        else
                echo "false"
        fi
done < test-cases.txt 2>&- | uniq -c

আউটপুট

$ bash test-suite.sh
     12 true
     17 false

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

শূণ্যসমূহ disregarding, প্রতিটি সারি ও কলাম প্যাটার্ন গঠিত হয়েছে (1 -1) * 1 , অর্থাত্, এর পর্যায়ক্রমে ঘটনা 1 এবং -1 , শুরু এবং একটি দিয়ে শেষ 1 (তাই সমষ্টি 1 )।

এটি কেসটি যাচাই করার জন্য, আমরা ইনপুট ম্যাট্রিক্স এম জিপ / ট্রান্সপোজ করি , ফলাফলটিকে এম-এ সংযুক্ত করি (এখন সারি এবং কলামগুলির একটি তালিকা রয়েছে) এবং প্রতিটি সারি / কলামে একটি -1 প্রিপেন্ড করি ।

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

     0  1  0         0  0  0
     0  0  1         1  0  0
     1  0  0         0  1 -1

ফলাফল হয়

-1 | 0  1  0    -1 | 0  0  0
-1 | 0  0  1    -1 | 1  0  0
-1 | 1  0  0    -1 | 0  1 -1
------------    ------------
-1 | 0  0  1    -1 | 0  1  0
-1 | 1  0  0    -1 | 0  0  1
-1 | 0  1  0    -1 | 0  0 -1

উত্পন্ন ম্যাট্রিক্স সারি অনুসারে পড়ার ফলে অবশ্যই প্যাটার্ন (-1, 1) * এর সমতল ক্রম থাকতে হবে । এটি কেসটি যাচাই করার জন্য, আমরা উপরের সারি দিয়ে শুরু করে সমস্ত এন্ট্রিগুলির সম্মিলিত যোগফল গ্রহণ করি।

উদাহরণ ম্যাট্রিক্সের জন্য, এর ফলাফল

-1 -1  0  0 -1 -1 -1  0 -1  0  0  0 -1 -1 -1  0 -1  0  0  0 -1 -1  0  0
-1 -1 -1 -1 -2 -1 -1 -1 -2 -2 -1 -2 -3 -3 -2 -2 -3 -3 -3 -2 -3 -3 -3 -4

বৈধ অলটারনেটিং সাইন ম্যাট্রিক্সের জন্য আউটপুটটি -1 's এবং 0 ' এর এবং - যেহেতু প্রতি -1 পূর্ববর্তী 1 এবং বিপরীতে - অন্য কোনও সংখ্যা বাতিল করে।

প্রথম নজরে, এটি শেষ কলামটি 1 দিয়ে শেষ হয় কিনা তা পরীক্ষা করে ব্যর্থ হতে পারে । তবে, কে জিরো সমেত একটি এন × n ম্যাট্রিক্সের জন্য , বৈধ সারিগুলিতে এন + কে থাকবে। যদি সর্বশেষ ব্যতীত সমস্ত কলামগুলিও বৈধ হয়, তবে কলামগুলিতে এন + কে - 1 থাকবে, যা অসম্ভব।

পরীক্ষা অন্য কোনো সংখ্যা আছে করার জন্য, আমরা একটি পরিবর্তনশীল আংশিক অঙ্কের সংরক্ষণ গুলি এবং উত্পন্ন ম্যাট্রিক্স সঙ্গে প্রতিটি এন্ট্রির জন্য তাদের আপডেট s+=[n][s]

যদি s = 0 বা s = -1 হয় তবে এটি সমান s+=n। যাইহোক, অন্য সব মান জন্য গুলি , এটি একটি কারণ IndexError , তাই পাইথন অবিলম্বে প্রস্থান কোড সহ বন্ধ 1 । যদি এটি কোনও পর্যায়ে না ঘটে, প্রোগ্রামটি প্রস্থান কোড 0 দিয়ে পরিষ্কারভাবে শেষ করবে ।


0

আর, 54 বাইট

বেনামে ফাংশন, ডেনিসের পাইথন 2, জেলি এবং জুলিয়া উত্তরগুলির মতো একই যুক্তি ব্যবহার করে।

function(x)all(abs(cumsum(rbind(-1,cbind(t(x),x))))<2)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.