ম্যাট্রিক্স সেন্ট্রোসিমেট্রিক… এবং তাই কোড?


37

Defintion

একজন centrosymmetric ম্যাট্রিক্স একটি বর্গক্ষেত্র হয় ম্যাট্রিক্স যে তার কেন্দ্র সম্পর্কে প্রতিসম হয়। আরও কঠোরভাবে, মাপের একটি ম্যাট্রিক্স সেন্ট্রোসিমমেট্রিক যদি, কোনও the নিম্নলিখিত সম্পর্কটি সন্তুষ্ট: n × n আমি ,An×nআই ,i,j([1,n]Z)

Ai,j=An+1i,n+1j

এ জাতীয় ম্যাট্রিকের উদাহরণ

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

সেন্ট্রোসিমমেট্রিক 5 বাই 5 ম্যাট্রিক্স সত্যিই দুর্দান্ত উপায়ে চিত্রিত

একটি সম -পাশের দৈর্ঘ্য ( ) সেন্ট্রোসিমমেট্রিক ম্যাট্রিক্স:4×4

(1234567887654321)

এবং একটি বিজোড় পার্শ্ব দৈর্ঘ্য ( ) এক:3×3

(123565321)

কার্য এবং চশমা

কমপক্ষে আকারের বর্গ ম্যাট্রিক্স দেওয়া , দুটি স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ মানগুলির মধ্যে একটিকে আউটপুট দেয়, ম্যাট্রিক্স সেন্ট্রোসিমমেট্রিক কিনা তা স্থির করে। আপনি ধরে নিতে পারেন যে ম্যাট্রিক্স সম্পূর্ণ ধনাত্মক পূর্ণসংখ্যার সমন্বয়ে গঠিত।2

তবে আপনার কোডটিও অবশ্যই সেন্ট্রোসিম্যাট্রিক হতে হবে। অর্থাৎ, এটি একটি প্রোগ্রাম / ফাংশনটি (বা সমতুল) গঠিত হওয়া আবশ্যক লাইন, প্রতিটি যা ধারণকারী বাইট আপনার ভাষা এনকোডিং, এবং সংজ্ঞা দেওয়া উপরোক্ত সন্তুষ্ট করা আবশ্যক, কিন্তু ধনাত্মক পূর্ণসংখ্যা পরিবর্তে বাইট সঙ্গে। আপনার জমা দেওয়ার স্কোর হ'ল এর মান হবে , নিম্ন আরও ভাল হবে।n n nnn nn

এই লুপোলগুলি ডিফল্টরূপে নিষিদ্ধ রয়েছে তা নোট গ্রহণ করার সময় আপনি কোনও মানক পদ্ধতি এবং কোনও যুক্তিসঙ্গত ফর্ম্যাটের মাধ্যমে ইনপুট নিতে এবং আউটপুট সরবরাহ করতে পারেন । আপনি (allyচ্ছিকভাবে) আকার, , ইনপুট হিসাবেও বেছে নিতে পারেন (যদি আপনি 1D তালিকা হিসাবে ইনপুট না নেন তবে এই ক্ষেত্রে আপনি কেবলমাত্র অতিরিক্ত ইনপুট হিসাবে নিতে পারেন )।n 2nn2

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

Truthy:

[[1, 2], [2, 1]]
[[1, 2, 3], [5, 6, 5], [3, 2, 1]]
[[10, 5, 30], [2, 6, 2], [30, 5, 10]]
[[100, 100, 100], [100, 50, 100], [100, 100, 100]]
[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]]
[[3, 4, 5, 6, 7], [5, 6, 7, 8, 9], [3, 2, 10, 2, 3], [9, 8, 7, 6, 5], [7, 6, 5, 4, 3]]

Falsy:

[[1, 2], [1, 2]]
[[1, 2, 10], [5, 6, 5], [11, 2, 1]]
[[14, 5, 32], [2, 6, 2], [30, 5, 16]]
[[19, 19, 19], [40, 50, 4], [19, 19, 19]]
[[1, 2, 20, 4], [7, 6, 7, 8], [8, 7, 6, 6], [3, 3, 2, 1]]
[[3, 4, 5, 6, 7], [5, 6, 7, 8, 9], [4, 5, 10, 4, 5], [5, 6, 7, 8, 9], [3, 4, 5, 6, 7]]

1
হুম, এটি নন-গল্ফিং ভাষার পক্ষে এখনও বেশ শক্ত দেখাচ্ছে কারণ এটি কোনও মন্তব্য ছাড়াই বন্ধনী এবং বন্ধনীগুলি ভেঙে দেয়। একটি নিখুঁত দৃষ্টিভঙ্গি হ'ল মন্তব্যটির অক্ষরের (প্রতিটি পাইথনের মতো #) প্রতিটি লাইন শেষ করা , যাতে কোডের নীচের অর্ধেকটি একটি মন্তব্য হয়ে যায়।
জংহওয়ান মিন

@ জংহওয়ানমিন এই বিশেষ ক্ষেত্রে পাইথনের #কাজ করবে না কারণ পূর্ববর্তী মন্তব্যগুলি #কেবল ইনলাইন: পি
মিঃ এক্সকডার


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

1
@WW সংক্ষেপে, চ্যালেঞ্জটি সহজ রাখতে এবং যে কোনও ধরণের অযাচিত প্রবণতা এড়াতে। তদ্ব্যতীত, এটি বর্গক্ষেত্র রাখা আমার কাছে আরও স্বজ্ঞাত।
মিঃ এক্সকডার

উত্তর:


21

জাভাস্ক্রিপ্ট (ES6), আকার 12 11 9

সমস্ত সংস্করণ সেন্ট্রোসিমিমেট্রিকের জন্য মিথ্যা বা অ-কেন্দ্রীয় জড়িত জন্য সত্য প্রত্যাবর্তন করে ।


1-মাত্রিক অ্যারে + দৈর্ঘ্য, আকার 9 (89 বাইট)

বাক্য গঠন বাক্যটিতে ইনপুট নেয় (length)(array), যেখানে অ্যারেটি 1-মাত্রিক।

w=>a=> //
a.some //
(v=>v- //
a[--w])//
/////////
//)]w--[a
// -v>=v(
// emos.a
// >=a>=w

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


ম্যাট্রিক্স + প্রস্থ, আকার 11 (131 বাইট)

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

/**/w=>a=>a
.some(r=>r.
some(v=>v-a
[y][w-++x],
x=!y--),y=w
);'*/'/*';)
w=y,)--y!=x
,]x++-w[]y[
a-v>=v(emos
.r>=r(emos.
a>=a>=w/**/

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

পেলোড

w => a => a.some(r => r.some(v => v - a[y][w - ++x], x = !y--), y = w)

আধার

/**/CODE;'*/'/*';EDOC/**/

কেবলমাত্র ম্যাট্রিক্স, আকার 12 (155 বাইট)

এটি আমার আসল সমাধান যা ম্যাট্রিক্সের প্রস্থকে নিজেই গণনা করে।

/**/a=>a[w=a
.length-1,s=
'some']((r,y
)=>r[s]((v,x
)=>v-a[w-y][
w-x]))////*/
/*////))]x-w
[]y-w[a-v>=)
x,v((]s[r>=)
y,r((]'emos'
=s,1-htgnel.
a=w[a>=a/**/

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

কিভাবে?

আমাদের কয়েকটি সমালোচনামূলক টোকেন দরকার যা বিভক্ত হতে পারে না:

  • some
  • length
  • )=>

লাইন-ফিডগুলি অন্য কোথাও beোকানো যেতে পারে।

নিবন্ধভুক্ত পে-লোড কোডটি এইভাবে পড়ে:

a => a[w = a.length - 1, s = 'some']((r, y) => r[s]((v, x) => v - a[w - y][w - x]))

এবং নিম্নলিখিত কাঠামোর ভিতরে আবৃত:

/**/CODE////*/

যা একবার বিপরীত হয়ে যায়, এটি একটি কার্যকর ব্লক মন্তব্য হয়ে যায়:

/*////EDOC/**/


15

বেফুঞ্জ -৩৩ , আকার 24

   &:00p110p920p::*:v   
vp01:+1g01-1pg02g01&_v#<
>00g`#v_>:           1$^
v2p011<  v:g00p029p01< @
>0g1+20p^>*:#v_1# .#<@ .
v+1g00gg02g01<$ >1+10pv0
>:10g-\88++20g -g-     |
vg02p011_v#`g00g01-1  <1
>1+20p   >:   ^ ^      <
                        
                        
                        
                        
                        
                        
<      ^ ^   :>   p02+1>
1<  1-10g00g`#v_110p20gv
|     -g- g02++88\-g01:>
0vp01+1> $<10g20gg00g1+v
. @<#. #1_v#:*>^p02+1g0>
@ <10p920p00g:v  <110p2v
^$1           :>_v#`g00>
<#v_&10g20gp1-10g1+:10pv
   v:*::p029p011p00:&   

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

ইনপুট: n অ্যারের উপাদানগুলির পরে, সমস্ত ফাঁকা জায়গা দ্বারা পৃথক করা। দ্রষ্টব্য: আপনার কাছে যদি যথেষ্ট পরিমাণে ইনপুট থাকে তবে আপনার একটি আলাদা দোভাষী ব্যবহার করতে হবে।

আমি নিশ্চিত যে এটি করার আরও ভাল উপায় আছে, আমি কেবল বেফুজে এটি চেষ্টা করতে চেয়েছিলাম। আসল কোড অংশটি শীর্ষ অর্ধেক।

কিভাবে?

কোডটি দুটি প্রধান বিভাগে বিভক্ত করা হয়েছে, শুরু এবং যাচাইকরণ

আরম্ভ:

   &:00p110p920p::*:v   
vp01:+1g01-1pg02g01&_v#<
>00g`#v_>:           1$^

কোডটির এই বিভাগটি কোডের ঠিক নীচে এএসসিআইআই অক্ষর হিসাবে ইনপুট ম্যাট্রিক্স লিখে। এটি এবং পরবর্তী অংশ উভয়ই কোডের উপরের বাম দিকে তিনটি ঘর ডেটা হিসাবে ব্যবহার করে। তারা হিসাবে সংরক্ষণ করা হয় n, i, j

প্রতিপাদন:

                     v 
                     1
v2p011<  v:g00p029p01< @
>0g1+20p^>*:#v_1# .#<@ .
v+1g00gg02g01<$ >1+10pv0
>:10g-\88++20g -g-     |
vg02p011_v#`g00g01-1  <1
>1+20p   >:   ^ ^      <

i,jAi,j=An+1i,n+1jj8

i=(n+1)i

j=n+1(j8)+8=(n+1)+(8+8)j

কোডের অন্যান্য অংশগুলি অপরিশোধিত আবর্জনা এটি সেন্ট্রোসিম্যাট্রিক করার জন্য।


15

n=8

কোন মন্তব্য নেই!

1-ডি তালিকা হিসাবে ইনপুট নেয়

s a b=  
    a/=b
f =s<*> 
 reverse
esrever 
 >*<s= f
b=/a     
  =b a s

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

n=10

2-ডি ম্যাট্রিক্স হিসাবে ইনপুট নেয়

r =reverse
s a b=a/=b
f   =s<*>r
c  =concat
g =  f<$>c
c>$<f  = g
tacnoc=  c
r>*<s=   f
b=/a=b a s
esrever= r

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

আলু 44 তাদের চ্যাটে সমস্ত সহায়তার জন্য ধন্যবাদ । এবং লিন এক সারি থেকে গল্ফ করার জন্য।

ব্যাখ্যা

এখানে সাধারণ ধারণাটি একটি সহজ ধারণা, আমরা concatতালিকাটি এটির বিপরীতে তুলনা করি। তবে যেহেতু আমরা সেন্ট্রোসিম্যাট্রিক হতে চাই আমাদের সাবধানে পদক্ষেপ নিতে হবে। প্রথমে আমরা কোডটি সাধারণত লিখি যেমনটি হয়:

g=((==)<*>reverse).concat

এখন আমাদের বিপরীত রেখাগুলিও বৈধ হওয়ার জন্য হ্যাস্কেলকে আমাদের সমীকরণের বাম দিকের প্রয়োজন একটি ফাংশন সংজ্ঞা হিসাবে tacnoc.)esrever>*<)==((দেখায় না।

এটি ঠিক করার প্রথম পদক্ষেপটি হ'ল বন্ধনীগুলি নিষ্পত্তি করা।

s a b=a==b
f=s<*>reverse
g=f.concat

তবে আমাদের এখন কিছু নতুন সমস্যা আছে। উভয় .এবং ==যখন বিপরীত হয় একই, তাই আমাদের বিপরীত লাইন অপারেটরদের নতুন সংজ্ঞা দেওয়ার চেষ্টা করে ( <*>বিপরীত হয় >*<তাই আমরা সেই ফ্রন্টে ভাল আছি)। ফাংশনগুলি ফান্টেক্টর হওয়ায় .এটি প্রতিস্থাপন করা যেতে পারে <$>। এবং আমরা এর ==সাথে প্রতিস্থাপন করতে পারি /=, যা আমাদের আউটপুটকে উপেক্ষা করে, তবে এটি এখনও চশমাগুলির মধ্যে রয়েছে। এখন আমাদের আছে

s a b=a/=b
f=s<*>reverse
g=f<$>concat

আমাদের লাইনের দৈর্ঘ্যটি ছাঁটাই করার জন্য আমরা ওরফে concatএবং reverse

r=reverse
s a b=a/=b
f=s<*>r
c=concat
g=f<$>c

এখন আমরা কেবলমাত্র কেন্দ্রবর্ণ এবং বর্গক্ষেত্র তৈরি করে এটি শেষ করব।

সংক্ষিপ্ত 1-ডি সংস্করণটি একইভাবে কাজ করে যেহেতু concatআমাদের দুটি লাইন অপসারণের মাধ্যমে সংরক্ষণ করতে পারে এমন কোনও প্রয়োজন নেই ।


কেমন হয় এই এন = 10 জন্য?
লিন

@ লিন ধন্যবাদ! আমার মাথায় বিপরীতটিও <$>ছিল <$>
গম উইজার্ড

9

পাইথন 2 , আকার 10 (109 বাইট)

def f(a):#
 return(a#
==[r[::-1#
]for r in#
a[::-1]])#
#)]]1-::[a
#ni r rof]
#1-::[r[==
#a(nruter 
#:)a(f fed

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

পূর্ববর্তী পাইথন 2 , আকার 14 (209 বাইট)

lambda a:all(#
a[i][j]==a[-i#
-1][-j-1]for #
i in range(  #
len(a))for j #
in range(len(#
a)))         #
#         )))a
#(nel(egnar ni
# j rof))a(nel
#  (egnar ni i
# rof]1-j-[]1-
#i-[a==]j[]i[a
#(lla:a adbmal

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


1
নিশ্চিত নয় যে এটি পুনর্নির্মাণের জন্য যথেষ্ট হবে তবে এফওয়াইআই -i-1এবং -j-1কেবলমাত্র হতে পারে ~iএবং~j
মিঃ এক্সকডার

@জনাব. এক্সকোডার: আমি কিছুটা ফিড করেছিলাম, তবে ফলাফলটি পরিবর্তন করে না।
চ্যাস ব্রাউন

পাইথন 3.6 এও কাজ করে, তবে এটি সর্বোত্তম নাও হতে পারে।
সাইনস্ট্যাকএফএল্ট

8

পাইথ, আকার ((৪১ বাইট)

q_M_QQ
q.q   


   q.q
QQ_M_q

এখানে চেষ্টা করুন

ব্যাখ্যা

প্রথম লাইন ইনপুট এবং প্রতিটি সারিতে বিপরীত হয় এবং আমাদের ইনপুটটির একটি অনুলিপি রেখে দেয় কিনা তা পরীক্ষা করে। দ্বিতীয় লাইন প্রোগ্রাম থেকে প্রস্থান, যাতে পরে সবকিছু, সেইসাথে এটা আগে, একটি নো-অপ হয়।
.qq


8

এপিএল (ডায়ালগ ইউনিকোড) , স্কোর 7 6 5 4

পুরো প্রোগ্রাম। স্টিডিন থেকে ম্যাট্রিক্স প্রকাশের জন্য অনুরোধ জানানো হয়। একটি 1 বা 0 টি মুদ্রণ করে এবং তারপরে একটি ধারাবাহিক ত্রুটি ছুঁড়ে দেয়। কোন মন্তব্য নেই!

r←,⎕
r≡⌽r
r⌽≡r
⎕,←r

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

 প্রকাশের জন্য প্রম্পট এবং মূল্যায়নের এটা
, (চেপ্টা) জটিল করে তোলা এটা
r← মধ্যে ফলাফলের সংরক্ষণ r(জন্য avelled)

⌽r মিরর r
r≡ স্পষ্টতই মুদ্রণ যে rঅনুরূপ কিনা

 গভীরতা r(1 দেয়)
r⌽ ব্যবহার rঘোরাতে যে
 (এই সবসময় একটি কারণ হবে RANK ERRORকারণ একটি ম্যাট্রিক্স বাম আর্গুমেন্ট হিসাবে অনুমোদিত নয় এবং প্রস্থান )


7

পার্ল 6 , আকার 9 8 7

{.flat#
#}talf.
#  ],R[
eq # qe
[R,]  #
.flat}#
#talf.{

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

reverseএখানেই বাধা। আমি এটিকে প্রযুক্তিগতভাবে দীর্ঘায়িত করেছি, তবে আরও বিভাজক [*-1 X-^*]ঠিক আছে, ব্র্যাড গিলবার্টের অন্য প্রশ্নের উত্তর[R,] দেখার পরে আমি এটিকে পরিবর্তন করেছি ।

সমতল কোড হয় {.flat eq [R,] .flat}

সম্পাদনা: জঘন্য, আমি বুঝতে পেরেছিলাম যে আমার এমনকি প্রথম তালিকাটি সমতল করার দরকার নেই , তবে এটি 6 মাপের আকারে সংক্ষিপ্ত করার প্রয়াস কেবল একটি বাইটকে অনেক বেশি ফিট করতে ব্যর্থ হয়েছে ...

{@_#}_@
eq#<<|
[R,] #
# ],R[
|<<#qe
@_}#_@{

:(

যদিও আমরা একে এক মাত্রিক অ্যারে হিসাবে গ্রহণ করি তবে এটি একটি 6 আকারে ফিট করা সহজ।

{$_# }
eq #_$
[R,] #
# ],R[
$_# qe
} #_${

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


6

ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা) (কেবলমাত্র REPL), আকার 8 (71 বাইট)

f=#[[c=-
1;;1;;-1
,c]]==#&
(*      
      *(
&#==]]c,
1-;;1;;1
-=c[[#=f

Trueসেন্ট্রোসিমমিত্রিক ইনপুট এবং Falseঅন্যথায় ফেরত দেয় ।

গাণিতিক REPL- তে সিনট্যাক্স ত্রুটিযুক্ত রেখাগুলি উপেক্ষা করা হয় (পর্দার পাশে একটি ঘন লাল বার প্রদর্শিত হবে)। এখানে শুধুমাত্র প্রথম তিনটি লাইন f=#[[c=-1;;1;;-1,c]]==#&কার্যকর করা হয়।

এই কোডটি নামে ফাংশনটি ক্যাপচার করে f

দুঃখের বিষয়, বিল্ট-ইনটি PalindromeQঅনেক দীর্ঘ।



5

জাপট , আকার 9 4 (11 বাইট)

UªSê


êSªU

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

এক-মাত্রিক ইনপুট নেয়, এটি প্যালিনড্রোম কিনা তা পরীক্ষা করে। আপনি যদি চান তবে কয়েকটি আসকি শিল্পের জন্য দুটি খালি লাইন পূরণ করতে পারেন।
পুরাতন দ্বি-মাত্রিক সংস্করণ, ইনপুটটি দু'বার ঘোরায় এবং এটি মূলটির সমান কিনা তা পরীক্ষা করে:

W=U  I
Wz2;II
Vc)eUc
cUe)cV
II;2zW
I  U=W

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


1
নিস! আমার মনে হয় আমার একটি 6 আছে এবং আমি একটি সহযোগী 4 কে জমা দেওয়ার জন্যও চেষ্টা করছি, তবে তারা উভয়ই এর চেয়ে তুচ্ছ।
শেগি

@ শেগি আমি নতুন সমাধান দেওয়ার পরে একই সমাধানটি ছয়টিতে নামিয়ে আনতে সক্ষম হয়েছি, চারটি খুব চিত্তাকর্ষক হবে।
নিট

প্রদত্ত ইনপুটটি (এখন) একটি 1 মাত্রিক অ্যারে হতে পারে, এটি 2 এর স্কোর দিয়ে করা যায়
শেগি

@ শেগি আমি নিশ্চিত না যে আমি কীভাবে দেখছি, উত্সটি অবশ্যই এনএক্সএন হওয়া উচিত।
নিট


4

কান্ড , আকার 3

Ṡ=↔
=↔=
↔=Ṡ

এটি অনলাইন চেষ্টা করুন! 1 ডি-তালিকা হিসাবে ইনপুট। প্রতিটি লাইন একটি ফাংশন সংজ্ঞায়িত করে তবে প্রথম লাইনের মধ্যে একটিকেই ডাকা হয়।

Ṡ=↔একটি প্যালিনড্রোম পরীক্ষা যা ইনপুটটির ( =) এর বিপরীত ( ) এর সমান কিনা তা পরীক্ষা করে ।


কান্ড , আকার 4

Ṡ=↔Σ
Σ↔=Ṡ
Ṡ=↔Σ
Σ↔=Ṡ

এটি অনলাইন চেষ্টা করুন! 2 ডি-ম্যাট্রিক্স হিসাবে ইনপুট করার জন্য, আমরা Σতালিকার তালিকাকে একটি প্যালিনড্রোম যাচাই করার আগে সংযুক্ত করি ( )।


3

এমএটিএল , স্কোর 4

t,!P
]=%?
?%=]
P!,t

ইনপুট বিন্যাস রয়েছে [1 2; 2 1]ব্যবহার করে, ;সারি বিভাজক হিসাবে।

আউটপুটটি STDERR এর মাধ্যমে হয় ( ডিফল্টরূপে অনুমোদিত ):

  • সেন্ট্রোসিমমেট্রিক ইনপুটটির জন্য একটি সামঞ্জস্যপূর্ণ ত্রুটি ত্রুটি তৈরি হয়। টিআইও-তে বর্তমান লিনাক্স এবং অক্টাভা সংস্করণগুলির সাথে নিম্নলিখিত এসটিডিআরআর আউটপুট উত্পাদিত হয় (চূড়ান্ত লাইনগুলি যেটি শুরু হয় তা উপেক্ষা করে Real time: ...):

    octave: X11 DISPLAY environment variable not set
    octave: disabling GUI features
    Python 2.7.15 (default, May 16 2018, 17:50:09) 
    [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> >>> /usr/include/c++/8/bits/basic_string.h:1048: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]: Assertion '__pos <= size()' failed.
    panic: Aborted -- stopping myself...
    

    লিনাক্স এবং অক্টাভ সংস্করণগুলির উপর নির্ভর করে ত্রুটিটি ভিন্ন হতে পারে তবে ইনপুটগুলির সাথে সামঞ্জস্য থাকবে।

  • নন-সেন্ট্রোসিমমেট্রিক ইনপুটটির জন্য কোনও ত্রুটি তৈরি হয় না এবং টিআইওতে এসটিডিআরআর আউটপুট হয়

    octave: X11 DISPLAY environment variable not set
    octave: disabling GUI features
    Python 2.7.15 (default, May 16 2018, 17:50:09) 
    [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> >>> 
    

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন:

  • সেন্ট্রোসিমেট্রিক: 1 , 2 , 3 , 4 , 5 , 6
  • নন-কেন্দ্রীয় জাল: 1 , 2 , 3 , 4 , 5 , 6

প্রোগ্রামটি সেন্ট্রোসিমমেট্রিক কিনা তা পরীক্ষা করুন

ব্যাখ্যা

%এটি মন্তব্য প্রতীক, যার ফলে বাকী রেখার অবহেলিত হয়। নিউলাইনগুলিও উপেক্ষা করা হয়। কোডটি ঠিক

t,!P]=?P!,t

যা নিম্নলিখিতগুলি করে:

t       % Input, implicit. Duplicate
,       % Do twice
  !     %   Transpose
  P     %   Flip vertically
]       % End
=       % Compare element-wise
?       % If all comparisons gave true
  P     %   Implicit input. Transpose. Actually, since there is no more input, an
        %   error is prand the program exits. The rest of the code is not executed, 
        %   and will be described in parentheses
  !     %   (Transpose)
  ,     %   (Do twice)
    t   %     (Duplicate)
        %   (End, implicit)
        % (End, implicit)

3

হাস্কেল, আকার 11 , 10 , 9 , 8

ইনপুটটিকে 2D তালিকা হিসাবে নেয়! (কৃতিত্ব অর্জান জোহানসেন)

r= --r}-
 reverse
(==)<*> 
 r.map{-
-{pam.r 
 >*<)==(
esrever 
-}r-- =r

বাগগুলি: দ্বিতীয়টি <*>হওয়া উচিত >*<। 2 ডি-তে একটি অনুপস্থিত -এবং বিপরীত অংশটির সঠিক জায়গায় ফাঁকা স্থান নেই।
janrjan জোহানসেন


2

পাইথন 2 , আকার 8

i=input#
a=i()###
a[::-1##
]!=a<_##
##_<a=!]
##1-::[a
###)(i=a
#tupni=i

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

n2

তালিকাটি কেবল প্যালিনড্রোম হিসাবে পরীক্ষা করা হয়। যদি এটি হয় তবে তুলনা শৃঙ্খলাটি স্টেপ এবং শর্ট সার্কিটগুলিতে a[::-1]!=a<_ব্যর্থ হয় !=; অন্যথায় অজানা পরিবর্তনশীল _প্রোগ্রামটি ক্র্যাশ করে মূল্যায়ন করে।


2

আর , আকার 9

   #)x-))
#(nacs-<x
#(ver(yna
#       #
#       #
#       #
any(rev(#
x<-scan(#
))-x)#   

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

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

any(rev(x<-scan())-x)

আর + পিআর, আকার 9

pryr::f(#
any(rev(#
x)-x))#  



  #))x-)x
#(ver(yna
#(f::ryrp

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


2

সি # (.নেট কোর) , স্কোর 13 11 10

l=>a=>a.//
Where((e//
,i)=>e!=//
a[l-i-1]//
).Any()///
///()ynA.)
//]1-i-l[a
//=!e>=)i,
//e((erehW
//.a>=a>=l

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

ইনপুটটিকে 1 ডি অ্যারে এবং এন 2 দৈর্ঘ্য হিসাবে নেয় ; falseসেন্ট্রোসিমমেট্রিক এবং trueনন-সেন্ট্রোসিমমেট্রিকের জন্য ফেরত দেয় । এই সংস্করণটি ব্যবহার করে System.Linqতবে আমি জানি না যে চ্যালেঞ্জের নির্দিষ্ট প্রয়োজনীয়তার কারণে কোড জমা দেওয়ার ক্ষেত্রে এটি কীভাবে ফিট করা যায়। নিবন্ধভুক্ত কোড:

l => a => a.Where((e,i) => e != a[l-i-1]).Any()

নিম্নলিখিতটি আমার পূর্ববর্তী জমাটি যা লিনকিউ ব্যবহার করে না:

সি # (.নেট কোর) , স্কোর 16 15 13

l=>a=>{/////*
var r=1<2;for
(int i=0;i<l;
)r&=a[i]==a[l
-i++-1];
return r;}
     /*/
   };r nruter
     ;]1-++i-
l[a==]i[a=&r)
;l<i;0=i tni(
rof;2<1=r rav
*/////{>=a>=l

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

নিবন্ধভুক্ত কোড:

l => a =>
{
    var r = 1<2;
    for (int i = 0; i < l;)
        r &= a[i] == a[l-i++-1];
    return r;
}

আপনি পরিবর্তন করেন তাহলে intথেকে var(সুতরাং এছাড়াও tniথেকে rav), দ্বিতীয় জমা জাভাস্ক্রিপ্ট কাজ করে।
জাকারি

2

রুবি , স্কোর 9 8

->z{z==#
z.######
reverse#
}#######
#######}
#esrever
######.z
#==z{z>-

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

ইনপুট হিসাবে সমতল ম্যাট্রিক্স গ্রহণ করা একটি ল্যাম্বদা। অন্যথায় মিথ্যা, সেন্ট্রোসিম্যাট্রিকের জন্য সত্য প্রত্যাবর্তন করে।

-১ মিঃ এক্স কোডারকে ধন্যবাদ,

প্যাক করা নেই:

->z{
  z == z.reverse
}

2

পরিষ্কার , আকার 9

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

import //
 StdEnv//
r=reverse
?m=m==r//
    m    
//r==m=m?
esrever=r
//vnEdtS 
// tropmi

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

পরিষ্কার , আকার 10

import/*//
*/StdEnv//
r =reverse
?m      //
 =m==r m//
//m r==m= 
//      m?
esrever= r
//vnEdtS/*
//*/tropmi

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


1
এটি নিউলাইনের কারণে নয়, এটি ইনডেন্টের সাথে কাজ করে। 9 লাইন
Ørjan জোহানসেন

@ আরজান জোহেনসেন বিশ্বাস করতে পারছেন না আমি ভুলে গেছি আপনি তাদের এড করতে পারেন। ধন্যবাদ!
Οurous

আপনি স্বাগত, এবং আমি পোস্ট করার পরে আমি মাঝারি লাইনটি সম্পাদনা করেছি, এটি ঠিক হওয়া দরকার m
janrjan জোহানসেন

@ আরজান জোহেনসেন এর প্রতিফলনের জন্য আমি উত্তরটি আপডেট করেছি। এটি পাশাপাশি দুর্দান্তভাবে দেখায়।
Οurous

2

05 এ বি 1 ই , আকার 3 (11 বাইট )

ÂQq

qQÂ

একক তালিকা হিসাবে ইনপুট।
এটি অনলাইনে চেষ্টা করুন।

আমি অনুমান করি যে এটি গণনা করে না ..; পি

ÂQ
qâ

একক তালিকা হিসাবে ইনপুট।
এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

         # Bifurcate this list (short for DR: Duplicate & Reverse copy)
 Q        # Check if the input-list and the reversed list are equal
  q       # Terminate the program
   qQâ    # No-ops

কিছু আকার 3 (11 বাইট ) বিকল্প:

R€R
QqQ
R€R

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

RQ 
 q  
 QR

ইনপুট হিসাবে একক তালিকা।
এটি অনলাইনে চেষ্টা করুন।



1

> <>, আকার 6

!/l2(\
s\?\ ?
/{=/ ;
: /={/
? \?\s
\(2l/!

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

(এটি দেখা যাচ্ছে যে টিও-তে একাধিক মান কেটে যাওয়ার ব্যথা)

ইনপুটটি -v সহ প্রাথমিক স্ট্যাকের অবস্থা হিসাবে এক মাত্রিক অ্যারে হিসাবে নেওয়া হয়। ম্যাট্রিক্স সেন্ট্রোসিমমেট্রিক হলে কোনও আউটপুট না দিয়ে প্রস্থান করুন, একটি ত্রুটি সহ প্রস্থান করে (যদি কিছু না হয় তবে "কিছুটা গন্ধযুক্ত ...") প্রিন্ট করে।

l2(    Checks if the length of the stack is less than 2
?;     Exits cleanly if so

{=     Checks if the first and last elements are equal
?\s    Causes an error ('s' is not a valid instruction) if not

আমি এই আউটপুট ফর্ম্যাটটিতে পুরোপুরি খুশি ছিলাম না, সুতরাং এখানে একটি আকার 7 রয়েছে যা সত্যের জন্য 1 এবং মিথ্যাটির জন্য 0 দেয়।

!/l2(\\
 ?   ?0
 =;n1/n
;{   {;
n/1n;= 
0?   ? 
\\(2l/!

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


সুন্দর কাজ! > <> এগুলির সাথে কাজ করার জন্য একটি মজাদার ভাষা হতে পারে, যদি না এটি কোনও জটিল প্রোগ্রাম না হয় তবে এটি ব্যথার।
mbomb007

1
আপনি যদি সত্যবাদী এবং মিথ্যা মানগুলি অদলবদল করতে পারেন তবে এটিকে 4 দিয়ে নামতে পারবেন{-?;
জো কিং

1

স্ট্যাক্স , এন = 3

$cr
=q=
rc$

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

ব্যাখ্যা:

$cr =q= rc$ Full program, implicit input
$           Flatten
 cr         Copy and reverse
    =       Compare to original
     q      Print result
      =     Silently error because there is only one item on stack
        rc$ Not executed

3 হ'ল সর্বোত্তম সম্ভব কারণ আমার কমপক্ষে তিনটি কমান্ড প্রয়োজন: অনুলিপি করুন, বিপরীত করুন এবং তুলনা করুন

স্ট্যাক্স , এন = 4

Mrxr
M=qX
Xq=M
rxrM

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

ব্যাখ্যা:

Mrxr M=qX Xq=M rxrM Full program, implicit input
Mr                  Transpose and reverse
  x                 Push input again
   r M              Reverse and transpose
      =             Compare
       qX Xq        Print result twice and save to X
            =       Silently error because there is only one item on stack
             M rxrM Not executed


1

জাভা 10, আকার 13 (181 বাইট)

a->{var r///*
=1>0;for(int 
l=a.length,i=
0;i<l;)r&=a[i
]==a[l-++i]; 
return r;}   
     /*/     
   };r nruter
 ;]i++-l[a==]
i[a=&r);l<i;0
=i,htgnel.a=l
 tni(rof;0>1=
*///r rav{>-a

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

@ চার্লি এর সি # উত্তর দ্বারা অনুপ্রাণিত ।

গল্ফ ব্যাখ্যা:

a->{var r=1>0;for(int l=a.length,i=0;i<l;)r&=a[i]==a[l-++i];return r;}

a->{                    //  Method with byte-array parameter and boolean return-type
  var r=1>0;            //  Result-boolean, starting at true
  for(int l=a.length,   //  The length of the input-array
      i=0;i<l;)         //  Loop `i` in the range [0, length)
    r&=                 //   Bitwise-AND the result-boolean with:
       a[i]             //    Whether the current item
           ==a[l-++i];  //    equals the opposite item
  return r;}            //  Return the result

1

সি (জিসিসি) , স্কোর 11

আর্গুমেন্ট হিসাবে int এবং n এর একটি তালিকা নেয়। সত্যবাদী মান হিসাবে n, 0 টি মিথ্যা হিসাবে প্রত্যাবর্তন করে।

/*//};n=l;k
--*==++l*=*
n);l>k;n*n+
l=k(rof{;l*
tni)n,l(f;k
*/*/////*/*
k;f(l,n)int
*l;{for(k=l
+n*n;k>l;)n
*=*l++==*--
k;l=n;}//*/

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


0

জাভাস্ক্রিপ্ট ES6, আকার 8:

/***/a=>
""+a==a.
reverse(
)/////*/
/*/////)
(esrever
.a==a+""
>=a/***/

জাভাস্ক্রিপ্ট ES6, আকার 7 (এটি বৈধ?):

a=>""+a
==a.//=
reverse
`     `
esrever
=//.a==
a+"">=a

টেস্ট:

<script>
f=

a=>""+a
==a.//=
reverse
`     `
esrever
=//.a==
a+"">=a
</script>

<script>
console.log([
  [1, 2, 2, 1],
  [1, 2, 3, 5, 6, 5, 3, 2, 1],
  [10, 5, 30, 2, 6, 2, 30, 5, 10],
  [100, 100, 100, 100, 50, 100, 100, 100, 100],
  [1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1],
  [3, 4, 5, 6, 7, 5, 6, 7, 8, 9, 3, 2, 10, 2, 3, 9, 8, 7, 6, 5, 7, 6, 5, 4, 3],
].every(f))

console.log([
  [1, 2, 1, 2],
  [1, 2, 10, 5, 6, 5, 11, 2, 1],
  [14, 5, 32, 2, 6, 2, 30, 5, 16],
  [19, 19, 19, 40, 50, 4, 19, 19, 19],
  [1, 2, 20, 4, 7, 6, 7, 8, 8, 7, 6, 6, 3, 3, 2, 1],
  [3, 4, 5, 6, 7, 5, 6, 7, 8, 9, 4, 5, 10, 4, 5, 5, 6, 7, 8, 9, 3, 4, 5, 6, 7],
].every(x=>!f(x)))
</script>

বা ল্যাম্বদা দিয়ে নাম পরিবর্তনশীল হিসাবে সংরক্ষণ করা হয়েছে a:

a=

a=>""+a
==a.//=
reverse
`     `
esrever
=//.a==
a+"">=a

console.log([
  [1, 2, 2, 1],
  [1, 2, 3, 5, 6, 5, 3, 2, 1],
  [10, 5, 30, 2, 6, 2, 30, 5, 10],
  [100, 100, 100, 100, 50, 100, 100, 100, 100],
  [1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1],
  [3, 4, 5, 6, 7, 5, 6, 7, 8, 9, 3, 2, 10, 2, 3, 9, 8, 7, 6, 5, 7, 6, 5, 4, 3],
].every(a))

console.log([
  [1, 2, 1, 2],
  [1, 2, 10, 5, 6, 5, 11, 2, 1],
  [14, 5, 32, 2, 6, 2, 30, 5, 16],
  [19, 19, 19, 40, 50, 4, 19, 19, 19],
  [1, 2, 20, 4, 7, 6, 7, 8, 8, 7, 6, 6, 3, 3, 2, 1],
  [3, 4, 5, 6, 7, 5, 6, 7, 8, 9, 4, 5, 10, 4, 5, 5, 6, 7, 8, 9, 3, 4, 5, 6, 7],
].every(x=>!a(x)))


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