সুডোকুর জন্য ওয়াই-উইং কৌশল


11

আমি সম্প্রতি একটি নতুন সুডোকু অ্যাপ্লিকেশন পেয়েছি যা সত্যই শক্ত সুডোকু তৈরি করে, যা মানক কৌশলগুলি ব্যবহার করে সমাধান করা যায় না। সুতরাং আমি কয়েক নতুন শিখতে হয়েছিল। এই কৌশলগুলির মধ্যে একটি হ'ল ওয়াই-উইং কৌশল । এটি "শক্ত কৌশল" এর আওতায় স্থান পেয়েছে তবে এটি আসলে তেমন শক্ত নয়।

উদাহরণ

এই কৌশলটির জন্য কেবলমাত্র 4 টি সেল গুরুত্বপূর্ণ। তাই আমি ছবিতে অন্যান্য সমস্ত ঘর উপেক্ষা করেছি।

আমরা প্রতিটি কক্ষের জন্য সমস্ত প্রার্থীর দিকে নজর রাখি। নিম্নলিখিত উদাহরণে প্রার্থীদের সাথে আমাদের একটি সেল রয়েছে 3 7(এর অর্থ আমরা ইতিমধ্যে প্রার্থীদের প্রত্যাখ্যান করেছি 1 2 4 5 6 8 9, উদাহরণস্বরূপ কারণ 1একই সারিতে একটি 2রয়েছে, একই 3x3 বাক্সে একটি ...,) প্রার্থীদের সাথে একটি ঘর রয়েছে 6 7, প্রার্থীদের সাথে একটি কক্ষ এবং প্রার্থীদের সাথে 3 6একটি সেল 2 6। ওয়াই-উইং কৌশলটি পরামর্শ দেবে যে, 6ডাউনথর্ট সেলটির প্রার্থীদের কাছ থেকে অপসারণ করা যাবে এবং কেবলমাত্র একজন 2প্রার্থী হিসাবে আপনি পূরণ করতে পারবেন So সুতরাং আমরা একটি সঠিক নম্বর পেয়েছি এবং পূর্ণ সুডোকু সমাধানের এক ধাপ কাছাকাছি।

প্রথম উদাহরণ

কেন 6সরানো যাবে?

ব্যাখ্যা

আসুন আমরা ধরে নিই যে এটি 6হ'ল ডাউনরাইট সেলটির জন্য সঠিক সংখ্যা। এখন 6এই কলামে একটি রয়েছে, অতএব আমরা 6উপরের ডান কক্ষে প্রার্থীদের কাছ থেকে অপসারণ করতে পারি , কেবলমাত্র একটি রেখে 7যা আমরা পূরণ করতে পারি the নীচের বাম কক্ষের ক্ষেত্রেও একই ঘটনা ঘটে। আমরা এটিকে সরিয়ে 6এবং পূরণ করতে পারি 3। এখন আমরা উপরের বাম কক্ষের দিকে নজর দিলে আমরা একটি বৈপরীত্য পাই। এখন ইতিমধ্যে একটি কারণ 7একই সারিতে এবং 3একই কলামে, তাই আমরা অপসারণ করতে পারেন 7এবং 3প্রার্থীর, সব সময়ে কোন প্রার্থী রেখে। যা পরিষ্কারভাবে সম্ভব নয়। সুতরাং 6 টি নিম্নোক্ত ঘরের সঠিক সংখ্যা হতে পারে না।

আরও সুনির্দিষ্টভাবে: পরীক্ষার্থীদের সাথে যদি আমাদের 4 টি ঘর থাকে [A B] [A C] [C D] [B C](এই ক্রমে বা বিজ্ঞপ্তিটি ঘোরানো হয়) এবং কক্ষগুলি একটি বৃত্তে (একই সারি, একই কলাম বা একই 3x3 বাক্সের মাধ্যমে) সংযুক্ত থাকে (সেল 1 সেল 2 সাথে সংযুক্ত থাকে, যা সেলটি 3 এর সাথে সংযুক্ত, যা ঘর 4 থেকে সংযুক্ত, যা সেল 1 এর সাথে সংযুক্ত), আপনি ঘর Cথেকে সরাতে পারবেন না [C D]। এটা তোলে গুরুত্বপূর্ণ হল যে, তিন কোষ [A B], [A C]এবং [B C]শুধুমাত্র দুটি প্রার্থীদের প্রতিটি ধারণ করে। আলাদা আলাদাভাবে সেলটি [C D], এতে কম বেশি থাকতে পারে ( Dশূন্য হতে পারে, এক বা আরও বেশি প্রার্থী হতে পারে)।

সংখ্যার পরিবর্তে অক্ষরের সাথে উদাহরণ

লক্ষ্য করুন যে আমি স্পষ্টভাবে বলেছি যে তারা যে কোনও উপায়ে সংযুক্ত হতে পারে। পরবর্তী উদাহরণে আপনি কৌশলটি আবার প্রয়োগ করতে পারেন। তবে এবার ৪ টি কোষ একটি আয়তক্ষেত্র গঠন করে না। নীচে বাম এবং নীচে সেলগুলি কেবল সংযুক্ত রয়েছে, কারণ তারা একই 3x3 বাক্সে রয়েছে। ওয়াই-উইং বলেছেন, আমরা 1উপরের বাম ঘরটির প্রার্থী হিসাবে অপসারণ করতে পারি । এবার এই কক্ষে এখনও 2 জন পরীক্ষার্থী রয়ে গেছে, সুতরাং আমরা আসলে একটি নতুন সঠিক নম্বর খুঁজে পাইনি। তবে তবুও অপসারণটি 1বিভিন্ন কৌশলের দরজা খুলে দিতে পারে।

দ্বিতীয় উদাহরণ, একটি আয়তক্ষেত্রের নয়

আপনি যদি কৌশলটি সম্পর্কে আরও তথ্য চান বা আরও কয়েকটি উদাহরণ চান, তবে সুডোকুউইকি.আর.ই যান

চ্যালেঞ্জ বিশেষ উল্লেখ

সেলগুলির প্রার্থীদের প্রতিনিধিত্ব করে আপনি ইনপুট হিসাবে 4 টি তালিকা পাবেন। চারটি ঘর একটি বৃত্তের মতো সংযুক্ত রয়েছে (সেল 1 সেল 2 এর সাথে সংযুক্ত, যা সেল 3 এর সাথে সংযুক্ত, যা সেল 4 এর সাথে সংযুক্ত, যা সেল 1 এর সাথে সংযুক্ত)। আপনি ধরে নিতে পারেন যে প্রতিটি তালিকা ক্রমবর্ধমান ক্রম অনুসারে বাছাই করা হয়েছে।

আপনার কাজ হ'ল একজন প্রার্থীকে অপসারণ (ওয়াই-উইং কৌশল প্রয়োগ করে) এবং একই ক্রমে ফলাফলপ্রাপ্ত প্রার্থীদের তালিকা ফিরিয়ে দেওয়া। আপনি যদি কৌশলটি প্রয়োগ করতে না পারেন তবে কেবল একই প্রার্থীদের তালিকা ফিরিয়ে দিন return

যদি দুটি সম্ভাব্য সমাধান থাকে (তবে আপনি একটি সেল বি এর সরিয়ে ফেলতে পারেন বা সেল ডি এর সি মুছে ফেলতে পারেন), কেবলমাত্র একটি সমাধানের জন্য ফিরে আসুন। এটি কোনটি বিবেচনা করে না।

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

এটি কোড-গল্ফ। সবচেয়ে সংক্ষিপ্ততম কোড (বাইটে) জিতেছে।

পরীক্ষার কেস

[3 7] [6 7] [2 6] [3 6]       => [3 7] [6 7] [2] [3 6]   # Example 1
[6 7] [2 6] [3 6] [3 7]       => [6 7] [2] [3 6] [3 7]   # Example 1, different order
[2 6] [3 6] [3 7] [6 7]       => [2] [3 6] [3 7] [6 7]   # Example 1, different order
[3 6] [3 7] [6 7] [2 6]       => [3 6] [3 7] [6 7] [2]   # Example 1, different order
[1 2 8] [1 8] [8 9] [1 9]     => [2 8] [1 8] [8 9] [1 9] # Example 2
[3 8] [4 8] [3 4 8] [3 4]     => [3 8] [4 8] [3 8] [3 4]
[1 3 6 7 8] [3 8] [3 4] [4 8] => [1 3 6 7] [3 8] [3 4] [4 8]
[7 8] [7 8] [4 7] [4 8]       => [7 8] [8] [4 7] [4 8] or [7] [7 8] [4 7] [4 8]
[4 7] [7 8] [4 8] [4]         => [4 7] [7 8] [4 8] []    # Fictional example
[3 7] [2 6] [6 7] [3 6]       => [3 7] [2 6] [6 7] [3 6] # Y-Wing can't be applied here
[4 7] [2 7 8] [4 8] [1 4]     => [4 7] [2 7 8] [4 8] [1 4] # -||-

একটি ইনপুট একাধিক সেট ঠিক একই হতে পারে?
অপ্টিমাইজার

@ অপ্টিমাইজার হ্যাঁ, উদাহরণস্বরূপ অষ্টম পরীক্ষার ক্ষেত্রে 7 8প্রথম এবং দ্বিতীয় সেলের প্রার্থী। ওয়াই-উইং কৌশলটি এখনও প্রয়োগ করা যেতে পারে।
জাকুবে

@ জাকুব আহ ঠিক আছে, তা দেখেনি।
অপ্টিমাইজার

যদি 1 টিরও বেশি সমাধান সম্ভব হয় তবে আমি কি তাদের কোনও আউটপুট দিতে পারি?
অপ্টিমাইজার 18

হ্যাঁ, আমি প্রশ্নে এটি পরিষ্কার করে দিয়েছি।
জাকুব

উত্তর:


3

সিজেম, 90 বাইট

উঃঘঃ, অন্যান্য 3 টি কক্ষে কেবলমাত্র 2 জন প্রার্থী থাকার সীমাবদ্ধতার কারণে এটি দীর্ঘ।

l~_:_(a+2/::&_{,}$2>:&:Y;{:PY&Y{P1<}?~}%:X,3>1${,}$W=_,2>\Y&,1?*{X:_(+2/{~:I=}#)_2$=I-t}&p

এটি সিজেএম ফর্ম্যাটে তালিকার তালিকার হিসাবে ইনপুটটি প্রত্যাশা করে। প্রাক্তন জন্য .:

[[2 6] [3 6] [3 7] [6 7]]

তালিকা বিন্যাসের একটি সিজেএম তালিকায় আউটপুট দেয়:

[[2] [3 6] [3 7] [6 7]]

আমার একবার গল্ফিং হয়ে গেলে ব্যাখ্যা যুক্ত করবে ..

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


3

গণিত, 124 110 বাইট

Cases[e@n_:>n]/@(Plus@@e/@#&/@#/.NestList[RotateLeft/@#&,{x:a_+b_,y:b_+c_,z:c_+a_,w:a_+_.}->{x,y,z,w-a+1},3])&

উদাহরণ:

In[1]:= yWing = Cases[e@n_:>n]/@(Plus@@e/@#&/@#/.NestList[RotateLeft/@#&,{x:a_+b_,y:b_+c_,z:c_+a_,w:a_+_.}->{x,y,z,w-a+1},3])& ;

In[2]:= yWing[{{3, 7}, {6, 7}, {2, 6}, {3, 6}}]

Out[2]= {{3, 7}, {6, 7}, {2}, {3, 6}}

In[3]:= yWing[{{4, 7}, {7, 8}, {4, 8}, {4}}]

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