আমার পূর্ণসংখ্যা পৃথক করুন


21

ভূমিকা

টোপোলজি হিসাবে পরিচিত গণিতের ক্ষেত্রে , বিচ্ছেদ অ্যাক্সিয়ামগুলি বলে কিছু রয়েছে । স্বজ্ঞাতভাবে, আপনার একটি সেট Xএবং সাবসেটের সংগ্রহ রয়েছে X, যা আমরা সম্পত্তি হিসাবে বিবেচনা করতে পারি। সিস্টেমটি ভালভাবে পৃথক করা হয়েছে, যদি কেউ Xতাদের বৈশিষ্ট্যের ভিত্তিতে সমস্ত আইটেমের মধ্যে পার্থক্য করতে পারে। পৃথকীকরণ axioms এই ধারণা আনুষ্ঠানিকভাবে। এই চ্যালেঞ্জের মধ্যে, আপনার কাজটি তিনটি পৃথক পৃথক অক্ষর প্রদত্ত Xএবং বৈশিষ্ট্যের তালিকা পরীক্ষা করা।

ইনপুট

আপনার ইনপুটগুলি একটি পূর্ণসংখ্যা n ≥ 2এবং পূর্ণসংখ্যার তালিকার একটি তালিকা T। মধ্যে পূর্ণসংখ্যাগুলি Tআঁকা হয় X = [0, 1, ..., n-1]। এর মধ্যে থাকা তালিকা Tখালি এবং অরসোর্টার্ড হতে পারে তবে সেগুলিতে সদৃশ থাকবে না।

আউটপুট

আপনার আউটপুট চারটি স্ট্রিংগুলির মধ্যে একটি, তিনটি পৃথক পৃথক অক্ষ দ্বারা নির্ধারিত, প্রতিটি শেষের চেয়ে শক্তিশালী। অন্যান্য স্বতন্ত্রতা রয়েছে, তবে আমরা সরলতার জন্য এগুলি দিয়ে আছি।

  • মনে করুন যে সমস্ত স্বতন্ত্র xএবং অভ্যন্তরের yজন্য X, তাদের মধ্যে Tঠিক একটি রয়েছে এমন একটি তালিকা রয়েছে । তারপরে Xএবং axiom T0T সন্তুষ্ট করুন ।
  • মনে করুন যে সমস্ত স্বতন্ত্র xএবং yজন্য X, দুটি তালিকা Tরয়েছে যার মধ্যে একটি রয়েছে xতবে রয়েছে না yএবং অন্যটিতে রয়েছে yতবে নেই x। তারপরে Xএবং axiom টি 1T সন্তুষ্ট করুন ।
  • ধরুন উপরের দুটি তালিকায় কোনও সাধারণ উপাদান নেই। তারপরে Xএবং axiom টি 2T সন্তুষ্ট করুন ।

আপনার আউটপুট এক T2, T1, T0বা TSউপরের অবস্থার যা (ঝুলিতে নির্ভর করে, TSমানে তাদের কেউ না)। দ্রষ্টব্য যে টি 2 টি 1 এর চেয়ে শক্তিশালী, যা টি 0 এর চেয়ে শক্তিশালী এবং আপনার সর্বদা শক্তিশালী সম্ভাব্য অক্ষটি আউটপুট করা উচিত।

বিধি এবং স্কোরিং

আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়।

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

2 [] -> TS
2 [[],[1]] -> T0
2 [[0],[1]] -> T2
3 [[0],[0,1,2],[1,2]] -> TS
3 [[],[0],[0,1],[2]] -> T0
3 [[0],[0,1],[2,1],[0,1,2]] -> T0
3 [[0],[0,1],[2,1],[2,0]] -> T1
6 [[0,2,4],[0,3,5],[1,2],[3,4,5]] -> TS
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,4,5]] -> T0
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,1],[3,4,5]] -> T1
6 [[0,1],[0,2,3],[1,4],[2,4],[2,3,5],[1,3],[4,5]] -> T2

ইনপুট কি nঅতিমাত্রায়? চ্যালেঞ্জের বাকি অংশগুলিতে, আমি কী উপাদানগুলির মধ্যে থাকতে পারে তা নির্ধারণের বাইরে এটি ব্যবহার করতে দেখছি না T, তবে এটি কি কেবল সরবরাহ করা শর্টকাট T.Maximum()?
অ্যাডমবর্কবর্ক

@ টিমিমিডি, না প্রথম পরীক্ষার কেসটি দেখুন। 0 []দেওয়া উচিত T2
পিটার টেলর

@ পিটারটেলর আআআআআহহহহহ্। ধন্যবাদ, এটি দুর্দান্তভাবে সহায়তা করে।
অ্যাডমবর্কবার্ক

বিচ্ছিন্নতা মানে কী তার দুর্দান্ত ব্যাখ্যা!
লুইস মেন্ডো

@ লুইসমেডো অদ্ভুত পরিভাষা সতর্কতা: এগুলি বিচ্ছেদ অখণ্ডতা, এবং একটি টপোলজিকাল স্পেস যা টি 2 কে সন্তুষ্ট করে কখনও কখনও পৃথক বলা হয়, তবে পৃথকীকরণ পুরোপুরি অন্য কিছু।
ডেনিস

উত্তর:


9

হাস্কেল, 317 209 174 168 বাইট

ফাংশন চ কাজ করে।

(#)=elem
x?y=[1|a<-x,b<-y,not$any(#a)b]
f n l|t(++)="TS"|t zip="T0"|t(?)="T1"|1>0="T2"where
    t p=any null[p(x%y)(y%x)|x<-[0..n-1],y<-[0..x-1]]
    x%y=[z|z<-l,x#z,not$y#z]

পরীক্ষা:

main=do
    putStrLn $ f 2 []
    putStrLn $ f 2 [[],[1]]
    putStrLn $ f 2 [[0],[1]]
    putStrLn $ f 3 [[0],[0,1,2],[1,2]]
    putStrLn $ f 3 [[],[0],[0,1],[2]]
    putStrLn $ f 3 [[0],[0,1],[2,1],[0,1,2]]
    putStrLn $ f 3 [[0],[0,1],[2,1],[2,0]]
    putStrLn $ f 6 [[0,2,4],[0,3,5],[1,2],[3,4,5]]
    putStrLn $ f 6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,4,5]]
    putStrLn $ f 6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,1],[3,4,5]]
    putStrLn $ f 6 [[0,1],[0,2,3],[1,4],[2,4],[2,3,5],[1,3],[4,5]]

আউটপুট:

TS
T0
T2
TS
T0
T0
T1
TS
T0
T1
T2

tইনপুট হিসাবে একটি ফাংশন দেওয়া একটি চতুর কৌশল!
জাগারব

প্রতিযোগিতার অনুপস্থিতিতে, এই অনুগ্রহ আপনার উত্তরে যায়। অভিনন্দন!
জাগারব

কিছু বিনামূল্যে বাইট - fএকটি অপারেটরের নাম p(x%y)(x%y)দ্বারা প্রতিস্থাপন, এবং দ্বারা প্রতিস্থাপন p(x%y)$x%y। এবং ওয়ে, দুর্দান্ত কাজ!
গর্বিত হাস্কেলর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.