ঘূর্ণন-নিরাপদ লাতিন স্কোয়ার


12

ল্যাটিন স্কোয়ারটি এমন একটি বর্গ যা X বা Y কলামগুলিতে কোনও পুনরাবৃত্তি চিহ্ন নেই । উদাহরণ স্বরূপ:

ABCD    
DABC
CDAB
BCDA

এ জাতীয় একটি বর্গ। প্রতিটি কলাম এবং সারিতে কীভাবে একই 4 টি বর্ণের অনুক্রম থাকে তা লক্ষ্য করুন।

তবে, আমাদের ল্যাটিন স্কোয়ারটিতে একটি সমস্যা রয়েছে: আমি যদি দ্বিতীয় সারির ( DABC) 1 টি বাম দিকে ঘোরানো হতাম তবে আমি শেষ করব ABCDযা এটি উপরের ক্রমবিন্যাসের অনুরূপ। যদি কোনও 1 টি কলাম / সারি ঘোরানো এবং অন্য কলাম / সারিটি পাওয়া অসম্ভব হয় তবে আমরা বর্গটিকে ঘূর্ণন নিরাপদ বলে বিবেচনা করি ।

উদাহরণ স্বরূপ:

ABCD
BDAC
CADB
DCBA

রোটেশন নিরাপদ। গ্রিডের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  1. পয়েন্ট [0, N] নবম প্রতীক ব্যবহার করে
  2. পয়েন্ট [0, এন] এবং [এন, 0] সর্বদা একই প্রতীক । (আমি আরও বলতে চাই যে [x, y] এবং [y, x] সবসময় একই অক্ষর হয়, তবে আমি এটি প্রমাণ করতে পারি না))

আপনার টাস্কটি হল 1 আবর্তন-সুরক্ষিত ল্যাটিন স্কোয়ারটি প্রিন্ট করা, যখন এন পাস করা হয় তবে আমি যত্ন করি না আপনি অক্ষর, সংখ্যা, একটি তালিকা, বা 2 ডি অ্যারের আউটপুট দিচ্ছেন কিনা care আপনি যদি সংখ্যাগুলি ব্যবহার করেন তবে উপরের কলাম এবং সারিটি অবশ্যই হবে 0,1,2,3,...(সেই ক্রমে)। আপনি যদি অক্ষর ব্যবহার করেন তবে তা অবশ্যই হবেA,B,C,D,....

উদাহরণস্বরূপ, যদি আপনার ইনপুটটি 4 হয়, আপনার উচিত হয় মুদ্রণ করা উচিত:

0,1,2,3            0,1,2,3
1,3,0,2     or     1,0,3,2
2,0,3,1            2,3,1,0
3,2,1,0            3,2,0,1

৪ এর চেয়ে কম আকারের কোনও ঘূর্ণন-নিরাপদ ল্যাটিন স্কোয়ার নেই N 2,5,5906,(too long to calculate)

এটি একটি , তাই আপনার প্রিয় ভাষায় উত্তরগুলি যতটা সম্ভব সংক্ষিপ্ত করে দেওয়ার চেষ্টা করুন!


সময়সীমা আছে? : (সম্পর্কযুক্ত মন্টে কার্লো পদ্ধতি অনুমতি যদি তারা টেকনিক্যালি উচ্চ মানের জন্য বিনষ্ট নিশ্চিত করা হয় না Nঅপর্যাপ্ত র্যান্ডম সংখ্যা মানের কারণে?)
Doorknob

কোনও সময়সীমা নেই, তবে আপনার সমাধানটি সমাপ্ত হওয়ার গ্যারান্টিযুক্ত হওয়া উচিত।
নাথান মেরিল

1
1-ইনডেক্সড ভাষার জন্য, প্রথম সারিটি কি হতে পারে 1,2,3,...?
মাইল


@ মাইলস হ্যাঁ, এটি ঠিক আছে
নাথান মেরিল

উত্তর:


3

পাইথ - 29 বাইট

পাশবিক বল.

hf&!@JsCBTsm.>RdJStQ.A{IMJ^.p

এমনকি অনলাইনেও শেষ করেন না n=4, তবে আপনি স্থানীয়ভাবে এটি ব্যবহার করে দেখতে পারেন বা আরও একটি বাইটের জন্য অনলাইনে এই পরিবর্তিত সংস্করণটি চালাতে পারেন


2

স্কেলসারভার 2012 - 918 বাইট

আমার বাক্সে এটি @k = 5 এর জন্য চলে, যদিও এটি 16 সেকেন্ড সময় নেয়।

এটি কোড বিল্ডিং কোড (স্কাইনেট দেখুন, আপনার প্রতিযোগিতা রয়েছে)

দীর্ঘতম স্ক্রিপ্টের জন্য কোনও মূল্য আছে?

DECLARE @k int = 4;

DECLARE @t VARCHAR(max)='WITH C as(SELECT
top '+left(@k,1)+'row_number()over(order by 1/0)n
FROM sys.messages),D(nÆ)as(SELECT
concat(~),~
FROM Ø
WHERE |)SELECT top 1~ FROM Å
WHERE 1=1',@
varchar(999)=''SELECT @+=','+CHAR(x+65)FROM(values(0),(1),(2),(3),(4),(5))x(x)WHERE x<@k
SELECT
@t=REPLACE(REPLACE(REPLACE(REPLACE(@t,'Æ',@),'Ø',STUFF(REPLACE(@,',',',C '),1,1,'')),'Å',STUFF(REPLACE(@,',',',D
'),1,1,'')),'~',STUFF(REPLACE(@,',','.n,'),1,3,'')+'.n'),@='';WITH C as(SELECT top(@k)x
FROM(values(0),(1),(2),(3),(4),(5))x(x))SELECT @+=' AND
'+char(65+C.x)+'.n<>'+char(65+D.x)+'.n'FROM c,c d WHERE C.x<D.x
SELECT @t=REPLACE(@t,'|',STUFF(@,1,4,''));WITH A
as(SELECT top(@k)x
FROM(values(65),(66),(67),(68),(69),(70))x(x))SELECT @t+='AND
'+char(A.x)+'.'+char(C.x)+'<>'+CHAR(B.x)+'.'+char(C.x)+' AND
'+char(A.x)+'.n+'+char(A.x)+'.n'+'
not like''%''+'+char(B.x)+'.n+''%'''FROM A,A B,A C
WHERE A.x<>B.x and C.x<>B.x
EXEC(@t)

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

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