সর্বাধিক 7 টি তুলনা সহ 5 টি সংখ্যার অ্যারে বাছাই করুন


19

5 টি পূর্ণসংখ্যার একটি তালিকা আমি কীভাবে সর্বাধিক খারাপ অবস্থায় এটির তুলনায় 7 তুলনা করতে পারি? অন্যান্য কয়টি অপারেশন করা হয় সে সম্পর্কে আমি মাথা ঘামাই না। পূর্ণসংখ্যা সম্পর্কে আমি বিশেষ কিছু জানি না।

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

এই মুহূর্তে আমি সমাধানের জন্য নয়, কেবল একটি ইঙ্গিত খুঁজছি।


আপনি কি "তুলনা করতে" গাছটি লেখার চেষ্টা করেছেন? এটা আছে পাতা, প্রতিটি পূর্ণসংখ্যার ক্রম অনুসারে to "তুলনা-করা" গাছ বলতে আমি কী বোঝাতে চাইছি আপনি যদি তা জানেন না, আপনি কি প্রমাণটি জানেন যে আপনার তুলনা করা দরকার? হ্যাঁ, আপনি কি মনে করেন এটি সম্ভব? 5!=120nlogএন
পল জিডি

1
ওয়েল, 8 বিট টু এর পরিপূরক, if(x > y)একই হয় if((x - y) & 0x80)যা খুব কমই তুলনা করা হয়। আমি অনুমান করি যে আমাদের ভুলে যাওয়া উচিত যে অবজেক্টগুলি পূর্ণসংখ্যা এবং ধরে নেওয়া উচিত যে আমাদের অবশ্যই এই compare(x, y)
যাদুগুলির

2
' কম্পিউটার আর্টিং অফ আর্ট কম্পিউটারের খণ্ড 3-তে সর্বাধিক বাছাইয়ের উপর ধারা 5.3 পরীক্ষা করে দেখুন , যা সঠিকভাবে এই প্রশ্নটি অন্তর্ভুক্ত করে' একটি ইঙ্গিত বা সমাধান হিসাবে গণনা করে? :-)
স্টিভেন স্টাডনিকি

3
আবদ্ধ সত্য যে, এবং । সুতরাং এটি হল সম্ভব (নীতিগতভাবে)। 2cn!5!=120<27=128
ভনব্র্যান্ড

উত্তর:


23

এই প্রক্রিয়াটি শুরু করার জন্য কেবল একটি উপায় রয়েছে (এবং পরবর্তী ধাপগুলিতে কী তুলনা করতে হবে সে সম্পর্কে আপনার প্রায় সমস্ত সিদ্ধান্তের জন্য কেবলমাত্র একটি সঠিক পদ্ধতি রয়েছে)। এটি কীভাবে নির্ধারণ করা যায় তা এখানে। প্রথম, নোট করুন যে আপনার তুলনার জন্য আপনি পেতে পারেন এমন উত্তর রয়েছে এবং আপনার মধ্যে পার্থক্য করার জন্য পৃথক ক্রিয়াকলাপ।27=1285!=120

প্রথম তুলনা করা সহজ: আপনাকে দুটি কী তুলনা করতে হবে, এবং যেহেতু আপনি সেগুলি সম্পর্কে কিছুই জানেন না, সমস্ত পছন্দ একইভাবে ভাল। সুতরাং আসুন আমরা বলি যে আপনি এবং তুলনা করুন এবং এটি একটি বি । এখন আপনার কাছে 2 6 = 64 বাম সম্ভাব্য উত্তর, এবং 60 অবশিষ্ট (যেহেতু আমরা তাদের অর্ধেক কাটানো হয়েছে) সম্ভব একাধিক বিন্যাসন।abab26=6460

এরপরে, আমরা হয় এবং ডি তুলনা করতে পারি, অথবা আমরা সি প্রথম তুলনাতে ব্যবহৃত কী এক সাথে তুলনা করতে পারেন । আমরা তুলনা তাহলে এবং , এবং জানতে পারে যে, , তারপর আমরা আছে 32 অবশিষ্ট উত্তর এবং 30 সম্ভব একাধিক বিন্যাসন। অন্যদিকে, আমরা তুলনা যদি সঙ্গে , এবং আমরা যে আবিষ্কার , আমরা 40 , সম্ভব অবশিষ্ট একাধিক বিন্যাসন কারণ আমরা নির্মূল যে 1 / 3 সম্ভব একাধিক বিন্যাসন (যাদের একটিcdccdcd3230a a ccaac401/3 )। আমাদের কাছে কেবলমাত্র 32 টি অবশিষ্ট উত্তর রয়েছে, সুতরাং আমরা ভাগ্যের বাইরে।cab32

সুতরাং এখন আমরা জানি যে আমাদের প্রথম এবং দ্বিতীয় কী এবং তৃতীয় এবং চতুর্থ কীগুলি তুলনা করতে হবে। আমরা ধরে নিতে পারি যে আমাদের এবং c d রয়েছে । আমরা তুলনা তাহলে এই চারটি চাবি কোন একই যুক্তি আমরা পূর্ববর্তী ধাপে ব্যবহৃত দ্বারা, আমরা কেবল নিষ্কাশন পারে 1 / 3 একাধিক বিন্যাসন অবশিষ্ট, এবং আমরা ভাগ্য ফুরিয়েছে। সুতরাং আমরা কি দুই তুলনা করতে হবে একটি , , , । প্রতিসাম্যতা অ্যাকাউন্টে নেওয়া, আমাদের দুটি পছন্দ আছে, একটি এবং সি তুলনা করুন বা একটি এবং ডি তুলনা করুনabcde1/3a,b,c,dacad। অনুরূপ গণনা যুক্তি দেখায় যে আমাদের অবশ্যই এবং সি তুলনা করতে হবে । আমরা সাধারণের ক্ষতি ছাড়াই ধরে নিতে পারি যে a c , এবং এখন আমাদের কাছে একটি b এবং a c d রয়েছেacacabacd

যেহেতু আপনি কোনও ইঙ্গিত চেয়েছিলেন, আমি বাকী যুক্তি দিয়ে যাব না। আপনার চারটি তুলনা বাকি আছে। সেগুলি বুদ্ধিমানের সাথে ব্যবহার করুন।


আপনি যে তুলনা কিভাবে পেতে পারি থেকে কেবলমাত্র আপনি 40 বিনিময়ের নিচে পায়? a
রবার্ট এস বার্নেস

1
@ রবার্ট: মনে করুন আপনার কাছে এবং একটি সি রয়েছে । তারপরে এই সীমাবদ্ধতার সাথে সামঞ্জস্য রেখে a , b , c এর দুটি ক্রিয়াকলাপ রয়েছে , একটি < বি < সি এবং একটি < সি < বি । এই দুটি আদেশের প্রত্যেকটির জন্য, আপনি চারটি স্থান যোগ করতে পারেন ডি এবং পাঁচটি স্থান আপনি যুক্ত করতে পারেন । abaca,b,ca<b<ca<c<bde
পিটার শর

8

আপনি ডি আর কুনুথের আর্ট অফ কম্পিউটার প্রোগ্রামিং খণ্ড III এ এটি সন্ধান করতে পারেন তবে কৌশলটি হ'ল (আমি ধরে নেব আপনার অ্যারে আছে ): আপনি যদি ইঙ্গিতটি পড়তে চান আমার উত্তর মাত্র দুটি লাইন{a,b,c,d,e}

  • সংখ্যার প্রথম গ্রুপ জোড়া: (a,b),(c,d)
  • বাছাই করার জন্য জোড়াগুলি তুলনা করুন যেমন: a<b,c<d
  • জোড়ের ক্ষুদ্রতম উপাদানগুলির সাথে তুলনা করুন, আমরা ফলাফলটি পাই যেমন a<c
  • শেষ উপাদান তুলনা , গত তুলনায় বড় উপাদান (সঙ্গে ) ec
    • যদি , 3 টি তুলনা শেষ করা সহজ। সম্পন্ন হয়েছে।e<c
    • যদি তারপর আপনি উচিত সাজানোর { , , , } জ্ঞান < , < e>c{b,c,d,e}c<e,c<d
      • যদি< তারপর Compare(d,e)d<e
        • , বি <> ডিCompare(b,d)b>d
          • । সম্পন্ন হয়েছে।Compare(b,e)
        • যদি b<d
          • । সম্পন্ন হয়েছে।Compare(b,c)
      • if d>e
        • যদি বি > Compare(b,e)b>e
          • । সম্পন্ন হয়েছে।Compare(b,d)
        • যদি b<e
          • । সম্পন্ন হয়েছে।Compare(b,c)

উপরে উল্লিখিত সমস্ত উপায় গ এর সাথে প্রথম তুলনার পরে সর্বাধিক তিনটি তুলনা করার কারণ । (যার অর্থ সর্বাধিক 7)। ec


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