আমি এমন একটি মেশিনের জন্য সফটওয়্যারটিতে কাজ করছি যা পায়ের নখগুলি স্বয়ংক্রিয়ভাবে ছাঁটাবে, যাতে ব্যবহারকারীরা সহজেই এতে পা ফেলতে পারে এবং নিজেই এটি কামড়ায় বা পেরেক ক্লিপার ব্যবহার করে তা চালানোর পরিবর্তে চালাতে পারে।
আমাদের সম্ভাব্য ব্যবহারকারীর বেসের একটি বিশাল শতাংশ সম্ভবত ইহুদি হবে এবং স্পষ্টতই, অনুক্রমিক ক্রমে নখগুলি ( বা নখ ) ছাঁটাই না করার একটি traditionতিহ্য রয়েছে
এই traditionতিহ্যের যথাযথ প্রয়োগ সম্পর্কে মতভেদ রয়েছে বলে মনে হয়, তবে আমরা মনে করি যে নীচের নিয়মগুলি এমন লোকদের থাকার জন্য যথেষ্ট, যাদের ধর্মীয় অনুশীলনগুলি যাতে পায়ের আঙ্গুলগুলি কাটতে নিষেধ করে:
- দুটি লাগোয়া নখের লাগোয়া টানা টানা কাটা উচিত নয়
- বাম পায়ে কাটার ক্রমটি ডান পায়ের ক্রমটির সাথে মেলে না
- পরপর দুটি রান কাটার ক্রম একই হওয়া উচিত নয়। সিকোয়েন্সগুলি সহজে অনুমানযোগ্য হওয়া উচিত নয়, তাই বিকল্প সিকোয়েন্সটিকে হার্ডকোডিংয়ের কাজ হয় না।
এইভাবে আমরা অঙ্গুলি সংখ্যা নির্ধারণ করার সিদ্ধান্ত নিয়েছি:
5 4 3 2 1 1 2 3 4 5
Left foot Right foot
সমস্যাটি সমাধানের জন্য আমার কাছে লিখিত কোড রয়েছে, তবে ব্যবহৃত অ্যালগরিদমটি সাব-অনুকূল রয়েছে: আসলে, সবচেয়ে খারাপ ক্ষেত্রে পারফরম্যান্স হ'ল (∞) । এটি যেভাবে কাজ করে তা বোগোসর্টের সাথে তুলনীয় । এখানে ব্যবহৃত প্রকৃত কোডের সিউডোকোড সরলীকরণ:
function GenerateRandomSequence
sequence = Array[5]
foreach (item in sequence)
item = RandomNumberBetween(1,5)
return sequence
function GetToenailCuttingOrder
while (true)
sequence = GenerateRandomSequence()
if (!AllItemsAreUnique(sequence))
continue
if (NoTwoAdjacentItemsHaveConsecutiveNumbers(sequence))
return sequence
do
leftFootSequence = GetToenailCuttingOrder()
rightFootSequence = GetToenailCuttingOrder()
until (leftFootSequence != rightFootSequence &&
leftFootSequence != leftFootSequenceFromLastRun &&
rightFootSequence != rightFootSequenceFromLastRun)
মূলত, এটি মানদণ্ড পূরণ করে কিনা তা এলোমেলো ক্রম এবং পরীক্ষা করে। যদি এটি মানদণ্ডগুলি না পূরণ করে তবে এটি শুরু হয়। এটি একটি হাস্যকরভাবে দীর্ঘ সময় নেয় না, তবে এটি খুব অবিশ্বাস্য।
আমি বুঝতে পারি যে বর্তমানে আমি এটিটি করছি তা অত্যন্ত ভয়ঙ্কর, তবে আরও ভাল উপায় নিয়ে আসতে আমার সমস্যা হচ্ছে। আপনারা কেউ কি আরও মার্জিত এবং পারফরম্যান্ট অ্যালগরিদম প্রস্তাব করতে পারেন?