সুডোকু ধাঁধা সংরক্ষণের জন্য প্রয়োজনীয় ন্যূনতম বিটের সংখ্যা কত?


28

দ্রষ্টব্য: এটি স্ট্যান্ডার্ড 9x9 সুডোকু ধাঁধা সম্পর্কে। সমাধানটি কেবলমাত্র সমাধান হওয়া, আইনী ধাঁধা সমর্থন করতে পারে । সুতরাং কোনও সমাধানের খালি কোষগুলিকে সমর্থন করার প্রয়োজন নেই এবং একটি সমাধান সুডোকু ধাঁধাটির বৈশিষ্ট্যের উপর নির্ভর করতে পারে।

আমি এটি ভাবছিলাম, কিন্তু আমি যে সন্তুষ্ট ছিলাম এমন কোনও উত্তর সম্পর্কে ভাবতে পারি না। একটি নিষ্পাপ সমাধান প্রতিটি কক্ষের জন্য একটি বাইট ব্যবহার করে (81 কোষ), মোট 648 বিট। আরো সৌখিন সমাধান একটি বেস-9 নম্বর (সেল প্রতি এক সংখ্যার) সমগ্র সুডোকু পাজল সংরক্ষণ এবং করতে হবে বিট।log2(981))=257

তবে এটি এখনও উন্নত করা যেতে পারে, উদাহরণস্বরূপ, আপনি যদি 3x3 সাবগ্রিডে 9 নম্বরগুলির মধ্যে 8 টি জানেন তবে আপনি তুচ্ছভাবে 9 ম কে বিয়োগ করতে পারবেন। আপনি এই চিন্তাভাবনাগুলি এমন পর্যায়ে চালিয়ে যেতে পারেন যেখানে এই প্রশ্নটি উত্থিত হয় যেখানে অনন্য সমাধান হওয়া সুডোকাসের পরিমাণ কত? এখন আপনি একটি বিশাল লুকিং টেবিল ব্যবহার করতে পারেন যা প্রতিটি বাইনারি সংখ্যাকে সুডোকু ধাঁধাতে মানচিত্র করে, তবে এটি ব্যবহারযোগ্য সমাধান হবে না।

সুতরাং, আমার প্রশ্ন:

একটি সন্ধানের টেবিলটি ব্যবহার না করে, সুডোকু ধাঁধা সঞ্চয় করতে ন্যূনতম পরিমাণ বিটগুলি কী এবং অ্যালগরিদমের সাথে কী?


3
3x3, সারি, বা কলামে 9 তম সংখ্যাটি ছেড়ে যাওয়া এবং খালি জায়গাগুলির সাথে ন্যূনতম সুডোকু সংরক্ষণ করার মধ্যে কি সত্যিই কোনও গুণগত পার্থক্য রয়েছে যার অনন্য সমাধান রয়েছে? "খালি কোষগুলিকে সমর্থন করার প্রয়োজন নেই" এটি একটি রেড হেরিং কিছুটা হলেও যদি প্রয়োজনীয় সমাধানটির প্রয়োজন হয়।
Wooble

19
কারণ এখানে 6.67 × 10 ^ 21 সলভিত সুডোকু ("কিউএসসিজিজেড" 2003; ফেলজেনহৌর এবং জার্ভিস 2005) এবং লগ_2 (6.67 × 10 ^ 21) = 72.4…, নীচে একটি গণ্ডি 73 বিট (আপনি বিশাল টেবিলের লুক ব্যবহার করলেও) । প্রতিসমতার ক্ষেত্রে যদি আপনাকে মূলত অভিন্ন সমাধানগুলি আলাদা করতে না হয় তবে এই নিম্ন সীমাটি প্রযোজ্য নয়।
Tsuyoshi Ito

9
এই প্রশ্নটি একটি ভাল প্রোগ্রামিং প্রতিযোগিতা তৈরি করবে।
পিটার শর

1
মূলত অভিন্ন সমাধানের জন্য অ্যালাজাল লোয়ার বন্ডটি 33 বিট।
চার্লস

3
আপনার দেখার জন্য টেবিলের প্রয়োজন কেন? কাঙ্ক্ষিত সংখ্যায় না পৌঁছানো পর্যন্ত আপনি একে একে সুডোকু সমাধানগুলি গণনা করতে পারেন।
জিরুই ওয়াং

উত্তর:


19

র‌্যাচেট ফ্রিকের উত্তরের মতো একই রেখাগুলির সাথে, আপনি যদি নীচের ম্যাট্রিক্সে অ-তারকাচিহ্নিত কক্ষগুলি পূরণ করেন তবে একবারে 3x3 বাক্স, সর্বদা পরবর্তী বাক্সটি নির্বাচন করুন যা আপনাকে একটি বাক্সের সাথে সারি বা কলামগুলি ভাগ করে রাখে ইতিমধ্যে ভরাট হয়ে গেছে, প্রতিটি ধাপে পছন্দের সংখ্যার জন্য আপনি নীচের মতো একটি প্যাটার্ন পান (উপরের মিডল বক্সটি প্রথমে পূরণ করুন, তারপরে উপরের ডান বাক্সটি ইত্যাদি)।

প্রথমটির পরে প্রতিটি 3x3 বাক্সে, একবার আপনি বাক্সের একটি সারি বা কলামটি পূরণ করেছেন, বাকি ছয়টি অঙ্কের মধ্যে তিনটি একক সারিতে স্থানীয়করণ করা হবে। প্রথমে তাদের অবস্থানগুলি চয়ন করুন এবং তারপরে বাকী তিনটি ঘর পূরণ করুন। (সুতরাং কোন কোষগুলিতে পূরণ করতে হবে তার প্রকৃত ক্রমটি আপনি ইতিমধ্যে যা জানেন তার উপর নির্ভর করে হতে পারে, তবে পছন্দগুলির সংখ্যা আমি যা দেখিয়েছি তার চেয়ে বেশি কখনও নয়))

আপনি এই ঘরগুলি পূরণ করার পরে তারাগুলি সমস্ত নির্ধারিত হয়।

* * * 9 8 7 6 5 4
* * * 6 5 4 3 3 2
* * * 3 2 1 3 2 1

6 5 4 * * * 6 3 3
3 3 2 * * * 5 3 2
3 2 1 * * * 4 2 1

6 3 3 6 5 4 * * *
5 3 2 3 3 2 * * *
4 2 1 3 2 1 * * *

যদি আমি সঠিকভাবে গণনা করি তবে এটি 87 বিট দেয়। পিটার শোরের মন্তব্য অনুসারে সর্বশেষ 3x3 ব্লকে কিছু অতিরিক্ত সঞ্চয় করতে হবে: প্রতিটি মান চারটি কোষের একটিতে স্থানান্তরিত হয় এবং প্রতিটি সারিতে কমপক্ষে একটি সম্ভাব্য মান সহ কমপক্ষে একটি কক্ষ থাকে, সুতরাং অবশ্যই এর কারণগুলি ব্লকটি 4 নয় 6 দিয়ে শুরু করা উচিত, তবে আমি শোরের উত্তরের বাকী কারণগুলি বুঝতে পারি না।


4
আপনি ষষ্ঠ 3x3 বাক্সটি পূরণ করার সময় আপনি পছন্দগুলির সংখ্যা হ্রাস করতে পারবেন। আমি যদি এটি সঠিকভাবে গণনা করি তবে এই বাক্সটি মোট 83 টি বিটের 4,3,2 / 3,2,1 / 2,1,1 হয়ে যায়।
পিটার শর

@ পিটার - না ডানদিকে 3 টি সংখ্যা উপরের সংখ্যাগুলির মতো হতে পারে। আপনি জানেন না যে এগুলি সব আলাদা। সুনিশ্চিত অনন্য নম্বরগুলি 3 তাই প্রথম বাক্সটি ছয়টি আইটেমের বাছাই। (এটি একটি অবস্থানের উদাহরণ। এটি অন্যদের ক্ষেত্রেও সত্য))
হোগান

@ ডেভিড - পিটারের কাছে আমার মন্তব্যে গিয়ে আমি মনে করি না যে আপনার নম্বরগুলি ভুল। ২ য় বাক্সে আপনার 6 5 4 4 3 2 3 2 1বিশ্বাস আছে যে এটি 6 5 4 6 5 4 3 2 1সবচেয়ে খারাপ অবস্থার জন্য হওয়া উচিত ।
হোগান

হোগান, না, "আমার একবারের বাক্সের একটি সারি বা কলাম পূরণ করার পরে আমার উত্তরটির অংশটি দেখুন, আপনি সর্বদা পরবর্তী সারি বা কলামটি এমন একটি হতে পূরণ করতে পারেন যেখানে সর্বাধিক চারটি মান রয়েছে "
ডেভিড এপস্টিন

@ ডেভিড - বাম থেকে ডান থেকে নীচে যেতে 3 x 3s 1,1 1,2 1,3 লেবেল করতে দেয়। স্কোয়ার এ লেবেল করা যাক - আমি বাম থেকে ডানদিকে নীচে যাচ্ছি। 1,3-তে অবস্থিত ডি অবস্থানটি (এ, বি, সি) এর 3x3-তে 3 নম্বর জানে এবং এটি 1,2 (ডি, ই, এফ) এ 3 সংখ্যা জানে কিন্তু এটি 6 নম্বরটি আলাদা কিনা তা জানে না। তারা ৩,১ এবং ২,১ বাক্স বক্স থেকে একই 3 নম্বর হতে পারে তাই ম্যাক্স 6 পছন্দ রয়েছে।
হোগান

13

আপনি @ বাম দিক থেকে শুরু করে এটি পূরণ করার সাথে সাথে প্রতিটি পেলের @ পিটারের উত্তরের সাথে এখানে সবচেয়ে খারাপ ক্ষেত্রে সম্ভাবনার তালিকা রয়েছে here

9   8   7       6   5   4       3   2   1
6   5   4       6   5   4       3   2   1
3   2   1       3   2   1       3   2   1

6   6   3       6   5   4       3   2   1
5   5   2       5   5   3       3   2   1
4   4   1       4   2   1       3   2   1

3   3   3       3   3   3       1   1   1
2   2   2       2   2   2       1   1   1
1   1   1       1   1   1       1   1   1

এটি 4,24559E + 29 সম্ভাব্যতা বা 99 বিটের জন্য তৈরি করে

সম্পাদনা: ভুলে গেছেন যে শেষ বর্গটি অন্য সকলের দ্বারা সম্পূর্ণরূপে নির্ধারিত


খুব সুন্দর!! আমাকে যোগ করুন যে এটি আমার কাছে স্পষ্ট নয় যে আপনি কখনই আসল সুডোকু সমাধানের জন্য এই খারাপ পরিস্থিতিগুলি অর্জন করতে পারেন (বিশেষত যদি আপনি একটি পরিশীলিত অ্যালগরিদম ব্যবহার করেন যা কিছু সুডোকু কৌশল ব্যবহার করে সম্ভাব্য সংকেতগুলি সংকুচিত করতে ব্যবহার করে যার জন্য নম্বরগুলি কোনও ঘরে যেতে পারে )।
পিটার শর

@ ইপিটার তবে আপনার এনডো এবং ডিকোডিংয়ের ক্ষেত্রে সংকীর্ণদের যুক্ত করা দরকার এবং আমি বুঝতে পেরেছিলাম যে যদি আপনাকে একটি বেছে নিতে হয় এবং অর্ডার ঠিক করতে না হয় (সবচেয়ে সহজ উপায় তবে সত্যই অনুকূল নয়) তবে আপনাকে এটিকে এনকোডিংয়েও যুক্ত করতে হবে
ratchet freak

না, আপনি যদি এন এবং ডিকোডিং পদ্ধতির সেরা সেলটি নির্ধারণের জন্য একই অ্যালগরিদম ব্যবহার করেন তবে এটি একই সেলটি দেবে (যেহেতু এটি একই ডেটাতে কাজ করছে), সুতরাং এন-এবং ডিকোডিং পদ্ধতিগুলি সিঙ্ক্রোনাইজ হবে, এবং আপনাকে এনকোডিংয়ে অর্ডার যোগ করতে হবে না। এই ধারণাটি এলজেডাব্লু ডেটা সংক্ষেপণ অ্যালগোরিদমকে কাজ করে।
পিটার শোর

আমি মনে করি যে বৈধ সুডোকু ধাঁধা সংরক্ষণ করার জন্য প্রয়োজনীয় ন্যূনতম বিটগুলি কোনও গণনীয় ফাংশন (কোলমোগোরভ) নয়। তবে পিটার / রাচেটের 103 বিটগুলি একটি ভাল আবদ্ধ বলে মনে হচ্ছে।
মারজিও ডি বায়াসি

2
@ ভোর: প্রযুক্তিগতভাবে ট্যুরিং মেশিন যা সুডোকু ধাঁধা দেওয়ার সময় বিটগুলির সঠিক সংখ্যাকে আউটপুট দেয় কারণ ইনপুট সেটটি সীমাবদ্ধ, সুতরাং "এই ধাঁধাটি বর্ণনা করার জন্য কয়টি বিটের প্রয়োজন হয়" তা "তুচ্ছ" গণনাযোগ্য। আমি বলছি যে আমরা প্রকৃতপক্ষে স্পষ্টভাবে এই জাতীয় টিউরিং মেশিনটি খুঁজে পেতে পারি (নীতিগতভাবে, গণনাগুলি খুব দীর্ঘ সময় নেয়) কারণ এটি ওমেগা সংখ্যার একটি সীমাবদ্ধ উপসর্গ গণনা করার চেয়ে কঠিন হতে পারে না।
অ্যারন স্টার্লিং

5

অনুকূল সংকোচনেতা অর্জনের জন্য আপনার একটি সম্পূর্ণ বর্ণন সারণীর প্রয়োজন নেই। আমি বিশ্বাস করি যে আধুনিক কম্পিউটারগুলি খুব যুক্তিসঙ্গত বর্ণন সারণী ব্যবহার করে বাধা সুডোকাসের সংখ্যা গণনা করতে সক্ষম , যা সুডোকাস যা ইতিমধ্যে কিছু সংখ্যক জায়গায় রয়েছে। এটি ব্যবহার করে, আপনি কীভাবে এনকোড করবেন তা এখানে (ডিকোডিংটি একই রকম)।

স্কোয়ারগুলির অর্ডারিং ঠিক করুন। ধরুন প্রথম বর্গের সংখ্যাটি । সুডোকাসের সংখ্যা হিসাবে এন 1 টি রাখুন যার প্রথম বর্গ d 1 এর চেয়ে কম । এখন 2 ডি দ্বিতীয় স্কোয়ারের সংখ্যা হবে। সুডোকাসের সংখ্যা হিসাবে এন 2 টি রাখুন যার প্রথম বর্গক্ষেত্র d 1 এবং যার দ্বিতীয় বর্গ d 2 এর চেয়ে কম । ইত্যাদি। এনকোডেড সংখ্যা এন = Σ আমি এন আইd1N1d1d2N2d1d2N=iNi

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

সম্পাদনা: সুডোকু গণিতের উইকিপিডিয়া পৃষ্ঠাটি আমাদের ছবিটি পরিষ্কার করতে সহায়তা করে। এড রাসেল দ্বারা সংকলিত একটি সারণীটিও সহায়ক ।

দেখা যাচ্ছে যে আপনি যদি কেবল শীর্ষ তিনটি সারি বিবেচনা করেন তবে কেবলমাত্র 44 টি আলাদা কনফিগারেশন বিবেচনা করতে হবে। সারণীতে, আপনি যে কোনও প্রদত্ত একের সমতুল্য কনফিগারেশনগুলির মোট সংখ্যা (শীর্ষ সারিটি 123456789 ধরে নিচ্ছেন) এবং প্রতিটিটির সম্পূর্ণকরণের সংখ্যা খুঁজে পেতে পারেন। একটি সুডোকু দেওয়া হল, আমরা এখানে এর মূল সংখ্যাটি কীভাবে গণনা করব:

  1. কনফিগারেশনটিকে সাধারণ করুন যাতে এর শীর্ষ সারিটি 123456789 হয়।
  2. এটি সম্পর্কিত যে 44 টির মধ্যে বিভিন্ন কনফিগারেশন রয়েছে তা সন্ধান করুন। উইকিপিডিয়া নিবন্ধটি তার জন্য একটি অ্যালগরিদম দেয়। সারণিটি প্রতিটি কনফিগারেশনের জন্য সমতুল্য শ্রেণীর সংখ্যা, পাশাপাশি পরিপূরণের সংখ্যা তালিকাভুক্ত করে।
  3. এর সমতুল্য শ্রেণীর মধ্যে শীর্ষ তিনটি সারির কনফিগারেশনের অর্ডিনাল সংখ্যা নির্ধারণ করুন। এটি দুটি উপায়ে করা যেতে পারে: হয় সমস্ত সমতুল্য শ্রেণীর একটি তালিকা ব্যবহার করে (সমস্ত সমতুল্য শ্রেণিতে মোট 36288 রয়েছে), বা তাদের সমস্ত দ্রুত গণনার উপায় খুঁজে বের করে।
  4. তাদের প্রথম কলামে 4-6 এবং 7-9 সারিগুলি বাছাই করে অবশিষ্ট সারিগুলিকে সাধারণ করুন এবং তারপরে এই দুটি ব্লকের কয়েকটি ব্লককে স্বেচ্ছাসেবীভাবে সাজান। এটি 72 এর গুণক দ্বারা পরিপূর্ণতার সংখ্যা হ্রাস করে।
  5. একই প্রথম কলামযুক্ত সমস্ত পরিপূর্ণতা গণনা করুন। সম্পর্কে আছে , প্রতিটি সমানতা বর্গ জন্য তাদের যাতে অতি দীর্ঘ না গ্রহণ করা উচিত। কিছু ট্রেড অফগুলি এখানেও সম্ভব।220
  6. যাক সমানতা বর্গ হতে সমানতা বর্গ মধ্যে তিন সারি উপরের কনফিগারেশন পূরণবাচক সংখ্যা হতে, k সমাপ্তির পূরণবাচক সংখ্যা হতে। এখানে দুটি অ্যারে সি আই , ডি আই (যা এড রাসেলের টেবিল থেকে গণনা করা যেতে পারে) যেমন সি আই + জে ডি আই + কে হ'ল পর্যন্ত সোডুকোর অর্ডিনাল সংখ্যা ! 72 প্রতিসাম্য বিবেচনা করা হয়। সেখান থেকে আপনি প্রকৃত অর্ডিনাল নম্বর গণনা করতে পারেন।ijkCi,DiCi+jDi+k9!72

এই পদ্ধতিটি প্রত্যাবর্তনযোগ্য এবং একটি সাধারণ সংখ্যা থেকে একটি সুডোকু উত্পন্ন করবে। দ্রষ্টব্য যে সুডোকু গণনা কয়েক মিনিটের মধ্যে হ্রাস পেয়েছে (2006 সালে; উইকিপিডিয়া নিবন্ধটির আলাপ পৃষ্ঠাটি দেখুন) বা তার চেয়ে কম, তাই আমি আশা করি যে একটি আধুনিক কম্পিউটারে এই পদ্ধতিটি খুব ব্যবহারিক হবে এবং কয়েক সেকেন্ড বা তারও কম সময় নিবে।


2
সুদোকু সীমাবদ্ধতার সমাধানগুলি দক্ষতার সাথে গণনা করা কি সম্ভব? আপনি যদি আকারটি সাধারণীকরণ করেন এবং আপনি নির্বিচারে জায়গায় ফাঁকা অনুমতি দেন তবে এটি # পি-সম্পূর্ণ।
Tsuyoshi Ito

2
আমি আমার উত্তরে ইঙ্গিত হিসাবে, পাটিগণিত এনকোডিং এই দৃশ্যের জন্য নিকটতম অনুকূল সংক্ষেপণ অর্জন করবে।
পিটার শোর

1
আপনি হয়ত সঠিক হতে পারেন, তবে আপনার দাবী বোঝায় যে সুডোকু গ্রিডের সংখ্যা (6.67 × 10 ^ 21) একটি আধুনিক কম্পিউটারে গণনা করা সহজ। এটি গণনা করা সম্ভব, তবে এটি কি সহজ?
সসুওশি ইতো

2
গণনাটি কীভাবে করা যায় তার বর্ণনা দিয়ে আমি একটি কাগজ থেকে এই ধারণাটি পেয়েছি। এমনকি প্রিপ্রোসেসিংয়ের জন্য আপনি কিছু "ভারী" ডেটা গণনা করতে এবং যুক্তিযুক্ত আকারের টেবিলটিতে এটি সঞ্চয় করতে পারেন - গতি লাভ নাটকীয় হতে পারে। যতদূর আমার মনে আছে, তাদের কয়েক ঘন্টা আগে লেগেছিল। এখন ধরুন আপনি কোনও টেবিলটি এটি 1000 গুণ দ্রুত করার জন্য ব্যবহার করেছেন। আরও কী, প্রতিটি পর্যায়ে সংখ্যাগুলি তাত্পর্যপূর্ণভাবে হ্রাস পায়, তাই বেশিরভাগ কাজ সম্ভবত প্রথম পর্যায়ে কেন্দ্রীভূত হয়।
যুবাল ফিল্মাস

1
@tsuyoshi আমি বিশ্বাস করি যে বিডিডি- র কিছু সংস্করণ / সম্প্রসারণ যা গণনা তুলনামূলকভাবে সোজা করে তোলে - এর জন্য আমাকে কিছুটা খনন করা দরকার, তবে আমি জানি যে তারা বেশ কয়েকটি জটিল সংমিশ্রণ গণনা সমস্যার জন্য ব্যবহার করা হয়েছে।
স্টিভেন স্টাডনিকি

4

এখানে একটি অ্যালগরিদম যা আমি সন্দেহ করি যে এটি বেশ ভাল এনকোডিং তৈরি করবে। আপনার সঙ্কুচিত করতে চান সমাপ্ত সুডোকু, এবং আসুন আমরা এর কিছু কক্ষ ইতিমধ্যে এনকোড করে রেখেছি বলে কিছু কোষ পূরণ করে একটি আংশিক সুডোকু (অগত্যা কোনও অনন্য সমাধান সহ নয়) রয়েছে।

প্রতিটি খালি ঘরে কত নম্বর স্থাপন করা যায় তা গণনা করতে একটি নির্দিষ্ট অ্যালগরিদম ব্যবহার করুন। অভিধানের প্রথম কক্ষটি আবিষ্কার করুন যেখানে বিভিন্ন সংখ্যার ক্ষুদ্রতম সংখ্যাটি স্থাপন করা যেতে পারে এবং এর মধ্যে কোন একটিটি এর মধ্যে চলে যায় তা এনকোড করে (সুতরাং যদি কোনও ঘরে কেবল একটি 3, 7 বা 9 থাকতে পারে, 3 "0 দ্বারা এনকোড করা থাকে "," 1 "দ্বারা 7 এবং 9" 2 "দ্বারা) পাটিগণিত কোডিং (যা কোনও ঘরে থাকতে পারে এমন সংখ্যার সংখ্যা বিবেচনা করে) ব্যবহার করে ফলাফলের ক্রমটি এনকোড করুন।

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

আপনার যদি একটি ভাল অ্যালগরিদম থাকে যা প্রদত্ত নম্বরযুক্ত প্রতিটি কক্ষের সম্ভাবনা অনুমান করে, আপনি আরও ভাল করতে পারেন।


3

কোন মন্তব্য এবং সমালোচনা স্বাগত জানাই

সংকুচিত সেন্সিং থেকে একটি পদ্ধতির থেকে একটি পরিসীমা প্রদান বলে মনে হয় বিট 171,72 বিট:69.96171.72

1.) ধাঁধাটি সংরক্ষণ করে বোঝা যায় সমাধানটি সংরক্ষণ করা (তাত্ত্বিকভাবে তথ্য)।

২) শক্ততম সুডোকু ধাঁধাতে কিছু টি ( α ) এর জন্য এন্ট্রি রয়েছে যা α (উদাহরণস্বরূপ, টি ( 3 ) = 2.44444 থেকে 3 ) এর উপর নির্ভর করে । http://www.usatoday.com/news/offbeat/2006-11-06-sudoku_x.htmt(α)α2t(α)αt(3) =2.444443

অত: পর, আমরা একটি ভেক্টর আছে দৈর্ঘ্যের α 4 আছে atmost টি ( α ) α 2 নন-জিরো এন্ট্রি।Pα4t(α)α2

3.) দিক নিন , একটি β × α 4 ম্যাট্রিক্স সঙ্গে β 2 টি ( α ) α 2 এবং যা কোনো রয়েছে 2 টি ( α ) α 2 স্বাধীন কলাম এবং এন্ট্রিগুলির সঙ্গে { 0 , ± 1 } । এই ম্যাট্রিক্স ধাঁধাটির সমস্ত দৃষ্টান্তের জন্য স্থির।Mβ×α4β2t(α)α22t(α)α2{0,±1}β=kt(α)α2k

V=MPβ|α2|M{0,±1}

Vβlogα2=2kt(α)α2logα

α=3t(α) =32kt(α)α2logα=69.96k85.86kk=2139.92171.72bits

নোট করুন যে আমি অনুমিত আকারের এর মাপের কতগুলি প্রবেশের অনুমান করেছি handMP

A.)k2t(α)1

B.)t(α)t(α)kt(α)α4Ct(α)α2α4(3α21)Ct(α)α23t(α)

t(α)α2

C.)k

D.) VVO((Vmax))=O(|α2|)2βlogα2=2kt(α)α2logα

2k2A.)B.)C.)D.)8973


1

এটি সম্পূর্ণ-সুডোকু কমপ্যাক্ট এনকোডিংয়ের একটি বাস্তবায়ন রিপোর্ট করার জন্য (জুরাই ওয়াং 9/14/11 এর পরামর্শ অনুসারে)।

ইনপুটটি দ্বিতীয় সারির শীর্ষ সারি এবং প্রথম 3 সংখ্যা digit এগুলি হ্রাস করা হয় 1-9! এবং 1-120 এবং <= 4.4x10 ^ 7 এ মিলিত। এগুলি মিলের ক্রম পর্যন্ত 30 অঙ্কের সমস্ত আংশিক সুকোকাসকে অভিধান হিসাবে গণনা করার জন্য প্রদত্ত হিসাবে ব্যবহৃত হয়। তারপরে পুরো ৮১ সংখ্যা পর্যন্ত চূড়ান্ত গণনা একইভাবে করা হয়। এই 3 সিকোয়েন্সগুলি সর্বাধিক 26 বিটের 32-বিট পূর্ণসংখ্যার হিসাবে সংরক্ষণ করা হয়, সুতরাং আরও সংকোচিত করা যায়। প্রথম প্রক্রিয়াটি বেশিরভাগ সময় নেয় বলে প্রথম প্রক্রিয়াটি প্রায় 3 মিনিট সময় নেয়। ডিকোডিং একই রকম - সুডোকাসের পরিবর্তে ম্যাচিং গণনা বাদে।

শীঘ্রই আসছেন - সংশোধনটিতে 30 অঙ্কের পরিপূর্ণতা (২ য় 32-বিট কোড) গণনার ক্ষেত্রে দ্বিতীয় সারির 1 ম 3 সংখ্যা রয়েছে, জার্ভিস গণনার তুলনা (জেসকোট, 3/1615)


1
এফওয়াইআই: আপনি যদি দুটি অ্যাকাউন্ট তৈরি করেন এবং সেগুলি মার্জ করতে চান তবে cstheory.stackexchange.com/help/merging-accounts দেখুন
ডিডব্লিউ

0

আমি নিম্নলিখিত সহজ বিশ্লেষণ সঙ্গে যেতে হবে:

প্রতিটি মান 4 বিটে সংরক্ষণ করা যেতে পারে (1-9 থেকে শুরু করে, এই তিনটি বিট এমনকি ০-১-16 এর জন্যও অনুমতি দেয়)

যদি আমরা সম্পূর্ণ সমাধান (অনুকূল নয়) সঞ্চয় করে বিবেচনা করি 9×9=81মান। প্রতিটি 3 টি বিট = 243 বিট।

তবে, সমাধান করা সুডোকু যে নিয়মগুলি মেনে চলতে হয়েছে, প্রতিটি বিট সংরক্ষণ করা আসলে নিরর্থক। তবে, যেহেতু ক্রমটি গুরুত্বপূর্ণ, আপনার প্রতিটি সারিতে প্রথম 8 টি মান (এইভাবে 9 তম মান নির্ধারণ করা) 8 সারি (এইভাবে শেষ সারিটি নির্ধারণ করে) রাখতে হবে। এটি সুডোকু হ্রাস করে8×8 3 বিট, 192 বিট (24 বাইট) এর জন্য।

আমার ধারণা আমি এটিকে কমাতে পারব:

=লগ2(বনাম)(এন-1)

কোথায়

বনাম = মানের পরিসীমা (আমি 0-5 সুডোকাস অনেক দেখেছি)

এন = সারি / কলামের সংখ্যা

সম্পাদনা: নিও স্টাইল: আমি লেটেক্সকে জানি।


-2

প্রতিটি সুডোকুর জন্য সেই সংখ্যাটি আলাদা। সুডোকুর একটি নিয়ম হ'ল এটির ঠিক একটি সমাধান রয়েছে।

সুতরাং আপনি যদি একটি উদাহরণ তাকান, এটি আপনার অবশ্যই সঞ্চয় করতে হবে ডেটা ন্যূনতম পরিমাণ।

যদি আপনি বিপরীত দিক থেকে কাজ করেন তবে আপনি অঙ্কের মাধ্যমে অঙ্ক সরিয়ে ফেলতে পারেন এবং ফলাফলটিতে এখনও একটি সমাধান রয়েছে কিনা তা দেখার জন্য ফলাফলটিতে একটি দ্রাবক চালাতে পারেন। যদি তা হয় তবে আপনি অন্য একটি সংখ্যা মুছতে পারেন। যদি তা না হয় তবে আপনাকে অবশ্যই এই অঙ্কটি পুনরুদ্ধার করতে হবে এবং আরও একটি চেষ্টা করতে হবে। আপনি যদি না পারেন তবে আপনি সর্বনিম্ন সন্ধান করেছেন।

যেহেতু বেশিরভাগ ধাঁধা বেশিরভাগ ফাঁকা শুরু হয়, তাই একটি রান দৈর্ঘ্যের এনকোডিং সম্ভবত ভাল ফলাফল করবে।


এই লোভী দৃষ্টিভঙ্গি অগত্যা ন্যূনতম অর্জন করে না, সম্ভবত আপনাকে প্রতিটি পদক্ষেপে কোন অঙ্কটি সরিয়ে ফেলতে হবে তা সাবধানতার সাথে নির্বাচন করতে হবে।
দিয়েগো ডি এস্ট্রাদ

এটি কেবল একটি উদাহরণ। আরও পরিশীলিত জিনিস পেতে গুগল "সুডোকু ধাঁধা জেনারেটর"।
অ্যারন দিগুল্লা

5
আপনি কেন এটি বিশেষভাবে পারফরম্যান্সের আশা করবেন তা আমি সত্যিই দেখছি না। এটি কেবল উত্তর না বলে অন্ত্রে অনুভূতি বলে মনে হচ্ছে।
জো ফিটজসিমসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.