কম্পিউটার

C++ ব্যবহার করে x + y + z <=n সমীকরণের সমাধানের সংখ্যা খুঁজুন


এই প্রবন্ধে, আমরা x+y+z<=n সমীকরণের সমাধানের সংখ্যা বের করার পন্থা ব্যাখ্যা করব। এই সমস্যায়, আমাদের কাছে চারটি ভেরিয়েবলের একটি সমীকরণ রয়েছে এবং কাজটি হল প্রদত্ত সমীকরণের সমাধান খুঁজে বের করা। তাই এখানে একটি সহজ উদাহরণ &miuns;

Input: X = 1, Y = 1, Z = 1, n = 1

Output: 4

Input: X = 1, Y = 2, Z = 3, n = 4

Output: 3

এই সমস্যায়, আমরা প্রতিটি ভেরিয়েবলকে আলাদা করে (x, y), (y,z), (x,z) এর সমস্ত মানের মধ্য দিয়ে যেতে পারি এবং এটি সমীকরণটি সন্তুষ্ট করে কিনা তা পরীক্ষা করে দেখতে পারি।

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

এখন আমরা প্রদত্ত সমস্যার সমাধান খুঁজতে ব্রুট ফোর্স পদ্ধতি ব্যবহার করব।

ব্রুট ফোর্স

এই প্রোগ্রামে আমরা (x,y), (y,z) এবং (x,z) এর সম্ভাব্য সমস্ত মান দিয়ে যেতে যাচ্ছি যাতে এটি z <=n - x - y সমীকরণকে সন্তুষ্ট করে (এখানে z বিচ্ছিন্ন ) যেখানে 0 <=z <=Z (এবং অন্যান্য বিচ্ছিন্ন ভেরিয়েবলের জন্য একই)।

উদাহরণ


#include<bits/stdc++.h>
using namespace std;
int main(){
    int X = 1, Y = 2, Z = 3, n = 4; // limits of x, y, z and given n.
    int answer = 0; // counter variable.
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Z){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= X; i++){
        for(int j = 0; j <= Z; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= Y){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    for(int i = 0; i <= Z; i++){
        for(int j = 0; j <= Y; j++){
            int temp = (n - i) - j; // temp = n - x - y.
            if(temp >= X){ // if n - x - y >= z so we increment the answer.
               answer++;
            }
        }
    }
    cout << answer << "\n";
}

আউটপুট

17

উপরের প্রোগ্রামের ব্যাখ্যা

এই প্রোগ্রামে, আমরা একটি নেস্টেড ফর লুপ ব্যবহার করে (x,y), (y, z), (x,z) এর সমস্ত সংমিশ্রণে যেতে যাচ্ছি এবং সমীকরণটি পরীক্ষা করে দেখব যে এটি সমীকরণটি সন্তুষ্ট করে কিনা এবং যদি এটি তারপর সন্তুষ্ট, আমরা উত্তর বৃদ্ধি করি।

উপসংহার

এই নিবন্ধে, আমরা O(X*Y)-এ x + y + z<=n সমীকরণকে সন্তুষ্ট করে এমন সমাধানের সংখ্যা খুঁজে বের করার একটি সমস্যার সমাধান করি। সময় জটিলতা। এছাড়াও আমরা এই সমস্যার জন্য C++ প্রোগ্রাম শিখেছি এবং সম্পূর্ণ পদ্ধতির মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষায় যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি।


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

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

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

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