দুর্ভাগ্যক্রমে আমি সুইপ লাইন অ্যালগরিদম বোঝার জন্য এখনও এত শক্তিশালী নই । বিষয়টিতে সমস্ত কাগজপত্র এবং পাঠ্যপুস্তক ইতিমধ্যে পড়েছে, তবে বোঝাপড়া এখনও অনেক দূরে। এটি পরিষ্কার করার জন্য আমি যতটা সম্ভব ব্যায়ামগুলি সমাধান করার চেষ্টা করি। তবে, সত্যই আকর্ষণীয় এবং গুরুত্বপূর্ণ কাজগুলি এখনও আমার পক্ষে চ্যালেঞ্জ।
নিম্নলিখিত অনুশীলনটি আমি সর্বশক্তিমান জেফ এরিকসনের লাইন সেগমেন্ট ছেদগুলির বক্তৃতা নোটগুলিতে পেয়েছি ।
ব্যায়াম 2. বর্ণনা করুন এবং নির্ধারণ করার জন্য একটি sweepline অ্যালগরিদম বিশ্লেষণ দেওয়া সমতলে বৃত্ত, কিনা কোন দুটি ছেদ, এ হে ( ঢ লগ ইন করুন এন ) সময়। প্রতিটি বৃত্তটি এর কেন্দ্র এবং তার ব্যাসার্ধ দ্বারা নির্দিষ্ট করা হয়, সুতরাং ইনপুটটিতে তিনটি অ্যারে এবং । নিম্ন-স্তরের আদিমগুলি সঠিকভাবে প্রয়োগ করতে সাবধান হন।
জটিল জিনিসটিকে আরও সহজ করার চেষ্টা করি। চেনাশোনাগুলির ছেদ সম্পর্কে আমরা কী জানি? লাইনের ছেদ নিয়ে কী অ্যানালগ পাওয়া যায়। দুটি লাইন ছেদ করতে পারে যদি সেগুলি সংলগ্ন হয়, দুটি সম্পত্তিকে দুটি ছেলের ছেদ করার জন্য কোন সম্পত্তি থাকতে হবে? আসুন বৃত্ত, কেন্দ্রে মধ্যে দূরত্ব হতে এবং চেনাশোনা সেন্টার। কয়েকটি ক্ষেত্রে বিবেচনা করুন:
কেস 1: যদি তবে কোনও সমাধান নেই, চেনাশোনাগুলি পৃথক।
কেস 2: যদিতারপরে কোনও সমাধান নেই কারণ একটি বৃত্ত অন্যটির মধ্যে রয়েছে।
কেস 3: যদি এবং তবে চেনাশোনাগুলি কাকতালীয় এবং এর সমাধানের একটি অসীম সংখ্যা রয়েছে।
সুতরাং, দেখে মনে হচ্ছে ছেদ করার শর্তগুলি প্রস্তুত, অবশ্যই এটি ভুল শর্ত হতে পারে। যদি তাই হয় দয়া করে সংশোধন করুন।
অ্যালগরিদম। দুটি ছেদ ছেদকারী বৃত্তের মধ্যে এখন আমাদের কিছু মিল খুঁজে পাওয়া দরকার। লাইন ছেদটির এনালগের সাথে, আমাদের ইভেন্টের সারিতে শর্ত সন্নিবেশ করা এবং শর্তটি মুছতে হবে। ধরা যাক ইভেন্ট পয়েন্টটি প্রথম এবং শেষ পয়েন্টগুলির এক্স স্থানাংক যা উল্লম্ব সুইপ লাইন স্পর্শ করে। প্রথম বিন্দুতে আমরা স্থিতিতে বৃত্তটি সন্নিবেশ করি এবং নিকটবর্তী চেনাশোনাগুলির সাথে ছেদটি (চেক করার জন্য 3 টি কেস উপরে উল্লিখিত) চেক করি, শেষ বিন্দুতে আমরা স্থিতি থেকে বৃত্তটি মোছি ।
দেখে মনে হচ্ছে সুইপ লাইন অ্যালগরিদমের জন্য যথেষ্ট। যদি কিছু ভুল হয়, বা এমন কিছু হতে পারে যা আলাদা করা উচিত, আপনার মতামত আমাদের সাথে নির্দ্বিধায় জানাতে নির্দ্বিধায় নাও।
সংযোজন :
প্রথমবারের জন্য যখন উল্লম্ব সুইপ লাইনটি বৃত্তটি স্পর্শ করে তখন আমি একটি বৃত্ত সন্নিবেশ করি এবং যখন সুইপ লাইনটি শেষবারের জন্য এটি স্পর্শ করে তখন স্থিতি থেকে একটি বৃত্ত সরান। ছেদ করার জন্য চেকটি নিকটবর্তী পূর্ববর্তী বৃত্তের জন্য করা উচিত। যদি আমরা স্থিতিতে কোনও চেনাশোনা যুক্ত করেছি এবং ইতিমধ্যে অন্য একটি বৃত্ত ছিল যা আমরা আগে যুক্ত করেছি এবং এটি এখনও রয়েছে, অতএব উদ্বেগযুক্ত বৃত্তটি "বন্ধ" ছিল না, তাই কোনও ছেদ হতে পারে।
status
বর্তমানে স্যুইপ লাইনটি ছেদ করে চেনাশোনাগুলি বজায় রাখে? ধরুন বর্তমানে আপনার 100 টি চেনাশোনা রয়েছে status
এবং আপনি একটি সন্নিবেশ ইভেন্টটি প্রক্রিয়া করছেন এবং 101 তম বৃত্তটি সন্নিবেশ করান। ছেদটি পরীক্ষা করার জন্য আপনি কতটি বৃত্তের তুলনা করছেন? কোন চেনাশোনাগুলি তুলনা করবেন তা কীভাবে বেছে নিন?