আমাদের একটি 2-ডি স্পেসে N পয়েন্টের একটি ইনপুট দেওয়া হয়েছে। লক্ষ্য হল ইনপুট থেকে বিন্দুর তিনগুণ গণনা করা যাতে একটি বিন্দু অন্য দুটির মধ্যবর্তী লাইনের মধ্যবিন্দু হয়। অর্থাৎ যদি ট্রিপলেট হয় (A,B,C) তাহলে B হল A এবং C এর মধ্যবিন্দু (বা A,B,C এর অন্য কোনো সমন্বয়)।
আমরা একটি ভেক্টরে
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
<প্রে>{ 1,2 }, { 4,2} , { 2,1 } , { 7,2 } N=4 জোড়াআউটপুট
প্রদত্ত শর্ত পূরণকারী ট্রিপলেট জোড়ার সংখ্যা হল:1
ব্যাখ্যা
এখানে {4,2} হল {1,2} এবং {7,2}-এর মধ্যবর্তী বিন্দু। মাত্র ১টি এরকম ট্রিপলেট
ইনপুট
{ 1,2 }, { 4,2} , { 2,1 } , { 5,2 }, { 8,1} , {1,1} N=6
আউটপুট
প্রদত্ত শর্ত পূরণকারী ট্রিপলেট জোড়ার সংখ্যা হল:1
ব্যাখ্যা
এমন কোনো ট্রিপলেট বিদ্যমান নেই
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা
প্রকারের জোড়ার ভেক্টর নিচ্ছি. -
প্রতিটি জোড়ায় (x,y) স্থানাঙ্ক রয়েছে।
-
ফাংশন mid_point(vector
> vec, int size) একটি ভেক্টর নেয় এবং এটির আকার ইনপুট হিসাবে থাকে এবং মধ্য-বিন্দু শর্ত পূরণ করে এমন ট্রিপলেটের সংখ্যা প্রদান করে। -
এই ধরনের ট্রিপলেটের জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।
-
একটি সেট
> সেটে ভেক্টর থেকে সমস্ত জোড়া সন্নিবেশ করান। এতে সব অনন্য পয়েন্ট থাকবে। -
প্রতিটি বিন্দুর জোড়ার জন্য দুটি লুপ ব্যবহার করে ভেক্টরটি অতিক্রম করুন৷
-
পূর্ণসংখ্যা বিন্দু_A তে উভয় বিন্দুর x স্থানাঙ্কের যোগফল এবং পূর্ণসংখ্যা বিন্দু_B তে উভয় বিন্দুর y স্থানাঙ্কের যোগফল সংরক্ষণ করুন।
-
পয়েন্ট_এ এবং পয়েন্ট_বি-তে এই দুটি যোগফলই যদি সমান হয় তবে মধ্য-বিন্দুর অবস্থা পরীক্ষা করুন।
-
যদি একটি জোড়া(point_A/2,point_B/2) সেটে একটি জোড়া হিসাবে বিদ্যমান থাকে মানে মধ্য-বিন্দু বিদ্যমান। ট্রিপলেটের সংখ্যা বৃদ্ধি।
-
শেষ পর্যন্ত গণনায় ট্রিপলেটের সংখ্যা থাকবে।
-
লুপের শেষে ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int mid_point(vector > vec, int size){ int count =0; সেট<জোড়া > সেট; জন্য (int i =0; i > vec ={ { 9, 2 }, { 5, 2 }, { 1, 2 } }; int size =vec.size(); cout<<"প্রদত্ত শর্ত পূরণ করে এমন 2-D স্পেসে ট্রিপলেট জোড়ার (A, B, C) বিন্দুর সংখ্যা হল:"< আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেপ্রদত্ত শর্ত পূরণকারী 2-D স্পেসে ট্রিপলেট জোড়ার (A, B, C) বিন্দুর সংখ্যা হল:1