কર્કম্যানের স্কুল ছাত্রীর সমস্যা প্রসারিত করুন


22

আপনারা যারা অপরিচিত তাদের জন্য, কার্কম্যানের স্কুলছাত্রী সমস্যাটি নিম্নলিখিত হিসাবে রয়েছে:

একটি বিদ্যালয়ের পনেরো যুবতী সাত দিনের জন্য তিনটি দূরে হাঁটতে হাঁটতে: তাদের প্রতিদিনের ব্যবস্থা করা প্রয়োজন যাতে কোনও দু'বার দু'বার দূরে হাঁটতে না পারে।

আমরা এটিকে নেস্টেড 3 বাই 5 তালিকার (বা ম্যাট্রিক্স) মতো দেখতে পারি:

[[a,b,c]
 [d,e,f]
 [g,h,i]
 [j,k,l]
 [m,n,o]]

মূলত, মূল সমস্যার লক্ষ্য হ'ল উপরের ম্যাট্রিক্সটি সজ্জিত করার জন্য 7 টি বিভিন্ন উপায় বের করা যাতে দুটি অক্ষর কখনও কখনও একাধিকবার সারি ভাগ না করে । ম্যাথওয়ার্ল্ড থেকে (উপরে সংযুক্ত), আমরা এই সমাধানটি খুঁজে পাই:

[[a,b,c]   [[a,d,h]   [[a,e,m]   [[a,f,i]   [[a,g,l]   [[a,j,n]   [[a,k,o]
 [d,e,f]    [b,e,k]    [b,h,n]    [b,l,o]    [b,d,j]    [b,i,m]    [b,f,g]
 [g,h,i]    [c,i,o]    [c,g,k]    [c,h,j]    [c,f,m]    [c,e,l]    [c,d,n]
 [j,k,l]    [f,l,n]    [d,i,l]    [d,k,m]    [e,h,o]    [d,o,g]    [e,i,j]
 [m,n,o]]   [g,j,m]]   [f,j,o]]   [e,g,n]]   [i,k,n]]   [f,h,k]]   [h,l,m]]

এখন, যদি সেখানে স্কুলের বিভিন্ন ছাত্রী থাকত? একটি অষ্টম দিন হতে পারে? এটি আমাদের চ্যালেঞ্জ।

এই ক্ষেত্রে কোন †† , কিন্তু না অগত্যা অন্যান্য অ্যারে মাত্রার জন্য
†† আমরা সহজে দেখাতে পারেন, যেহেতু aপ্রত্যেক অন্যান্য অক্ষর দিয়ে একটি সারিতে উপস্থিত হয়।


চ্যালেঞ্জ:

স্কুলছাত্রীদের (অর্থাত এর একটি অ্যারের মাত্রার একটি ইনপুট (সারি, কলাম বেশি) দেওয়া 3 x 5, 4 x 4অথবা [7,6], [10,10]ইত্যাদি), আউটপুট 'দিনের যে প্রয়োজনীয়তা উপরে উল্লিখিত মাপসই সর্ববৃহৎ সম্ভব সেট।

ইনপুট:
স্কুল ছাত্রী অ্যারের জন্য মাত্রাগুলি (যে কোনও যুক্তিসঙ্গত ইনপুট ফর্মটি আপনি চান)।

আউটপুট:
উপরের প্রয়োজনীয়তাগুলি (যে কোনও যুক্তিসঙ্গত ফর্ম) ফিট করে সবচেয়ে বড় সম্ভাব্য সিরিজ ra

পরীক্ষার কেস:

Input:  [1,1]
Output: [[a]]

Input:  [1,2]
Output: [[a,b]]

Input:* [2,1]
Output: [[a]
         [b]]

Input:  [2,2]
Output: [[a,b]  [[a,c]  [[a,d]
         [c,d]]  [b,d]]  [b,c]]

Input:  [3,3]
Output: [[a,b,c]  [[a,d,g]  [[a,e,i]  [[a,f,h]
         [d,e,f]   [b,e,h]   [b,f,g]   [b,d,i]
         [g,h,i]]  [c,f,i]]  [c,d,h]]  [c,e,g]]

Input:  [5,3]
Output: [[a,b,c]   [[a,d,h]   [[a,e,m]   [[a,f,i]   [[a,g,l]   [[a,j,n]   [[a,k,o]
         [d,e,f]    [b,e,k]    [b,h,n]    [b,l,o]    [b,d,j]    [b,i,m]    [b,f,g]
         [g,h,i]    [c,i,o]    [c,g,k]    [c,h,j]    [c,f,m]    [c,e,l]    [c,d,n]
         [j,k,l]    [f,l,n]    [d,i,l]    [d,k,m]    [e,h,o]    [d,o,g]    [e,i,j]
         [m,n,o]]   [g,j,m]]   [f,j,o]]   [e,g,n]]   [i,k,n]]   [f,h,k]]   [h,l,m]]

There may be more than one correct answer. 

* পরীক্ষার কেস 3 সংশোধন করার জন্য @ ফ্রোজেনফ্র্যাঙ্ককে ধন্যবাদ : যদি কেবল একটি কলাম থাকে তবে কেবল একদিনই থাকতে পারে, যেহেতু সারি ক্রম কোনও ব্যাপার না।

এটি প্রতিযোগিতা - সংক্ষিপ্ত উত্তর জেতে।


এটি কি কোনও উপায়ে সীমাবদ্ধ প্রকল্পের সাথে সম্পর্কিত বা আমি অন্য কোনও সমস্যার কথা ভাবছি?
নিল

@ নীল আমার কোন ক্লু নেই আমি আশঙ্কা করছি যে আমি এর উত্তর দেওয়ার মতো যোগ্য নই। ;-)
স্কট মিলনার

সময়সীমা আছে?
আর্টিয়ার

@ আর্টির না, তবে আমি কোডটি পরীক্ষা করতে সক্ষম হতে চাই ...
স্কট মিলনার

2
উইকিপিডিয়া পড়ার মতো নিল @ নিল।
ম্যাজিক অক্টোপাস উরান

উত্তর:


12

গণিত, 935 বাইট

Inp={5,4};L=Length;T=Table;ST[t_,k_,n_]:=Binomial[n-1,t-1]/Binomial[k-1,t-1];H=ToExpression@Alphabet[];Lo=Inp[[1]]*Inp[[2]];H=H[[;;Lo]];Final={};ST[2,3,12]=4;ST[2,4,20]=5;If[Inp[[2]]==1,Column[Partition[H,{1}]],CA=Lo*Floor@ST[2,Inp[[2]],Lo];While[L@Flatten@Final!=CA,Final={};uu=0;S=Normal[Association[T[ToRules[H[[Z]]==Prime[Z]],{Z,L@H}]]];PA=Union[Sort/@Permutations[H,{Inp[[2]]}]];PT=Partition[H,Inp[[2]]];While[L@PA!=0,AppendTo[Final,PT];Test=Flatten@T[Times@@@Subsets[PT[[X]],{2}]/.S,{X, L@PT}];POK=T[Times@@@Subsets[PA[[Y]],{2}]/.S,{Y,L@PA}];Fin=Select[POK,L@Intersection[Test,#]==0&];Facfin=T[FactorInteger[Fin[[V]]],{V,L@Fin}];end=T[Union@Flatten@T[First/@#[[W]],{W,L@#}]&[Facfin[[F]]],{F,L@Facfin}]/.Map[Reverse,S];PA=end;PT=DeleteDuplicates[RandomSample@end,Intersection@##=!={}&];If[L@Flatten@PT<L@H,While[uu<1000,PT=DeleteDuplicates[RandomSample@end,Intersection@##=!={}&];If[L@Flatten@PT==L@H,Break[],uu++]]]]];Grid@Final]


এটি সর্বাধিক 26 মহিলার জন্য

সম্পাদনা করুন
আমি কিছু পরিবর্তন করেছি এবং আমার মনে হয় এটি কার্যকর হয়! এই মুহুর্তে কোডটি [5,4] (যা "সামাজিক গল্ফার সমস্যা") সমাধান করার জন্য সেট করা হয়েছে এবং কয়েক সেকেন্ডের মধ্যে ফলাফল পেয়ে যায়। তবে [5,3] সমস্যাটি আরও কঠিন এবং আপনাকে 10-20 মিনিট অপেক্ষা করতে হবে তবে আপনি সমস্ত দিনের জন্য একটি সঠিক সমন্বয় পাবেন। সহজ ক্ষেত্রে এটি খুব দ্রুত।

যাইহোক আপনি এটি চেষ্টা করে দেখতে পারেন এবং ফলাফলগুলি
এটি অনলাইনে চেষ্টা করে দেখতে পারেন এখানে
সিটিআরএল-ভি ব্যবহার করে অনুলিপি করুন এবং পেস্ট
করুন কোড চালানোর জন্য এন্টার চাপুন
আপনি কোডটির শুরুতে ইনপুট পরিবর্তন করতে পারেন -> ইনপ = {5,4}
চালান বিভিন্ন অনুমোদন পেতে একাধিকবার কোড করুন


যদিও এটি চিত্তাকর্ষক, এবং সমস্যা সমাধানের দিকে অনেক অগ্রগতি করেছে, এটি এখনও অসম্পূর্ণ। এটি ছোট টেস্ট মামলার ক্ষেত্রে কাজ করার পরেও এটি [5,3]টেস্ট কেস সহ আরও বড় কোনও সমস্যার সমাধান করতে পারেনি, এই পুরো সমস্যাটি ভিত্তিতে তৈরি। উপরন্তু, এটি আরও গল্ফ করা যেতে পারে; বেশ কয়েকটি ভেরিয়েবলের নাম রয়েছে যা তাদের প্রয়োজনের চেয়ে বড় এবং কিছু ফাংশন সংক্ষিপ্তকরণ @বা ইনফিক্স স্বরলিপি সহ হতে পারে । আমি আশা করি আপনি কাজ চালিয়ে যাবেন, যদিও!
স্কট মিলনার

এটি পরীক্ষা করার জন্য ধন্যবাদ। আমি প্রথমে এই কাজটি করার চেষ্টা করব এবং তারপরে এটি গল্ফ করব ...
J42161217

1
আপনার ভেরিয়েবলের নামগুলি একক অক্ষর তৈরি করে, এবং আপনি ভেরিয়েবলগুলির জন্য একাধিকবার ব্যবহার করেন এমন কিছু ফাংশন নির্ধারণ করে এবং সেই ভেরিয়েবলগুলির সাথে ফাংশনগুলি প্রতিস্থাপন করে আপনার অনেকগুলি বাইট সংরক্ষণ করতে সক্ষম হওয়া উচিত :)
নম্বরমানিয়াক

2
@ নাম্বারমানিয়াক কেবলমাত্র ভেরিয়েবলের নাম প্রতিস্থাপন করে, আমি এটি নামিয়ে আনতে সক্ষম হয়েছি 914। এটা তোলে প্রায় 850. করার golfable নিচে হওয়া উচিত
স্কট মিলনার

3
আমি পরীক্ষার কেস ঠিক করেছি। সবার আগে আমি এটি কাজ করতে চাই। আমি এখনও এটি কেন গল্ফ করিনি তা জানায় your আপনার সমস্ত মন্তব্যের জন্য ধন্যবাদ। আমি এখন এটি প্রস্তুত মনে হয়।
J42161217
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.