কম্পিউটার

C++ ব্যবহার করে তিনটি লাইনে বিন্দুর সেট থেকে গঠিত ত্রিভুজের সংখ্যা নির্ণয় করুন


আমাদের এখন 3 লাইনে বেশ কয়েকটি পয়েন্ট দেওয়া হয়েছে; এই বিন্দুগুলি কতগুলি ত্রিভুজ গঠন করতে পারে তা আমাদের খুঁজে বের করতে হবে, উদাহরণস্বরূপ

Input: m = 3, n = 4, k = 5
Output: 205

Input: m = 2, n = 2, k = 1
Output: 10

আমরা এই প্রশ্নে কিছু সমন্বয় প্রয়োগ করব এবং এই সমস্যা সমাধানের জন্য কিছু সূত্র তৈরি করব।

সমাধান খোঁজার পদ্ধতি

এই পদ্ধতিতে, আমরা বর্তমান পরিস্থিতিতে সংমিশ্রণ প্রয়োগ করে একটি সূত্র তৈরি করব এবং এই সূত্রটি আমাদের ফলাফল দেবে৷

উপরের পদ্ধতির জন্য C++ কোড

এখানে C++ সিনট্যাক্স রয়েছে যা আমরা প্রদত্ত সমস্যার সমাধান করতে ইনপুট হিসাবে ব্যবহার করতে পারি −

উদাহরণ

#include <bits/stdc++.h>

#define MOD 1000000007

using namespace std;

long long fact(long long n) {
   if(n <= 1)
   return 1;
   return ((n % MOD) * (fact(n-1) % MOD)) % MOD;
}
long long comb(int n, int r) {
   return (((fact(n)) % MOD) / ((fact(r) % MOD) * (fact(n-r) % MOD)) % MOD);
}

int main() {
   int n = 3;
   int m = 4;
   int r = 5;
   long long linen = comb(n, 3); // the combination of n with 3.
   long long linem = comb(m, 3); // the combination of m with 3.
   long long liner = comb(r, 3); //the combination of r with 3.
   long long answer = comb(n + m + r, 3); // all possible comb of n, m , r with 3.
   answer -= (linen + linem + liner);
   cout << answer << "\n";
   return 0;
}

আউটপুট

205

উপরের কোডের ব্যাখ্যা

এই পদ্ধতিতে, আমরা তিনটির সাথে n+m+r-এর সম্ভাব্য সমস্ত সমন্বয় খুঁজে পাই, যেমন, comb(n+m+r, 3)। এখন, যেমন আপনি জানেন, ত্রিভুজ হওয়ার জন্য 3টি বিন্দুর শর্ত হল যে সেগুলি সমরেখার হওয়া উচিত নয়, তাই আমরা সম্ভাব্য সমস্ত সমরৈখিক বিন্দু খুঁজে পাচ্ছি যেগুলি n, m, r-এর সাথে তিনটির সংমিশ্রণের যোগফল এবং কখন আমরা এই যোগফলটি বিয়োগ করে n+m+r এর বৈচিত্র্যের সাথে তিনটি দিয়ে আমরা উত্তর পাই এবং আমরা এটি প্রিন্ট করি।

উপসংহার

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


  1. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  2. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে একটি সেটে রিফ্লেক্সিভ রিলেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে প্রদত্ত বিন্দু থেকে সম্ভাব্য চতুর্ভুজের সংখ্যা নির্ণয় করুন