কম্পিউটার

মডুলার সমীকরণের সমাধানের সংখ্যার জন্য C/C++ প্রোগ্রাম?


গণিতে, একটি মডুলার সমীকরণ মডুলি দ্বারা সন্তুষ্ট একটি বীজগণিতীয় সমীকরণ , মডুলি সমস্যা অর্থে। অর্থাৎ, একটি মডুলি স্পেসে অনেকগুলি ফাংশন দেওয়া হলে, একটি মডুলার সমীকরণ হল তাদের মধ্যে থাকা একটি সমীকরণ, বা অন্য কথায় মডিউলির একটি পরিচয়৷

মডুলার সমীকরণ শব্দটির সবচেয়ে ঘন ঘন ব্যবহার উপবৃত্তাকার বক্ররেখার জন্য মডুলি সমস্যার সাথে সম্পর্কিত। সেক্ষেত্রে, মডিউলির স্থান নিজেই এক মাত্রার। এর অর্থ হল যে কোন দুটি যুক্তিযুক্ত ফাংশন F এবং G , মডুলার বক্ররেখার ফাংশন ক্ষেত্রে, একটি মডুলার সমীকরণকে সন্তুষ্ট করবে P(F, G) =0 P এর সাথে জটিল সংখ্যার উপর দুটি চলকের একটি অ-শূন্য বহুপদী। F এবং G-এর উপযুক্ত নন-ডিজেনারেট পছন্দের জন্য , সমীকরণ P(X,Y) =0 আসলে মডুলার বক্ররেখা সংজ্ঞায়িত করবে।

আপনি এইমাত্র ফর্মটির একটি অদ্ভুত ধরনের গাণিতিক অভিব্যক্তি দেখেছেন

B ≡ (A mod X)

এটি বলে যে B A মডুলো X এর সাথে সঙ্গতিপূর্ণ। আসুন একটি উদাহরণ নেওয়া যাক,

21 ≡ 5( মোড 4)

একটি প্রতীক equiv মানে "সমতা"। উপরের সমীকরণে, 21 এবং 5 সমতুল্য। এর কারণ হল 21 মডুলো 4 =1 হল 5 মডুলো 4 =1 এর সমান। আরেকটি উদাহরণ হল 51 ≡ 16( mod 7)

এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যা a এবং b আছে এবং আমাদের সম্ভাব্য মানের সংখ্যা বের করতে হবে x যেগুলি মডুলার সমীকরণ অনুসরণ করে (A mod X)=B যেখানে মডুলার সমীকরণের X সমাধান।

উদাহরণস্বরূপ

Input: A = 26, B = 2
Output: X can take 6 values

ব্যাখ্যা

X এর যেকোনো একটির সমান হতে পারে {3, 4, 6, 8, 12, 24} কারণ A মডুলাস এই মানের যেকোনো একটি 2 i এর সমান। e., (26 mod 3) =(26 mod 4) =(26 mod 6) =(26 mod 8) =.... =2

আমাদের সমীকরণ A mod X =B

আছে

শর্তাবলী

যদি (A =B) তাহলে অসীম অনেকগুলি মান থাকবে যেখানে A সর্বদা X থেকে বড় হবে।

যদি (A

এখন শুধুমাত্র শেষ কেসটি বাকি (A> B)।

এখন, এই ক্ষেত্রে, আমরা সম্পর্ক ব্যবহার করব

লভ্যাংশ =ভাজক * ভাগফল + অবশিষ্ট

X অর্থাৎ ভাজককে দেওয়া হয়েছে A অর্থাৎ লভ্যাংশ এবং B অর্থাৎ অবশিষ্টাংশ।

এখন

A =X * ভাগফল + B

ভাগফলকে Y

হিসাবে উপস্থাপন করা যাক

∴ A =X * Y + B

A - B =X * Y


∴ Y এর অবিচ্ছেদ্য মান পেতে,

আমাদের সমস্ত X নিতে হবে যাতে X ভাগ করে (A - B)


∴ X হল (A - B) এর একটি ভাজক

(A – B) এর ভাজক খুঁজে বের করা হল প্রধান সমস্যা এবং এই ধরনের ভাজকের সংখ্যা হল সম্ভাব্য মান X নিতে পারে।

আমরা জানি যে A mod X সমাধানের মান হবে (0 থেকে X – 1) এই ধরনের সমস্ত X নিন যেমন X> B।

এইভাবে আমরা এই বলে উপসংহারে পৌঁছাতে পারি যে (A – B) এর ভাজকের সংখ্যা B এর থেকে বেশি, সম্ভাব্য সমস্ত মান X সহ যা A mod X =B

কে সন্তুষ্ট করতে পারে।

উদাহরণ

#include <iostream>
#include <math.h>
using namespace std;
int Divisors(int A, int B) {
   int N = (A - B);
   int D = 0;
   for (int i = 1; i <= sqrt(N); i++) {
      if ((N % i) == 0) {
         if (i > B)
            D++;
         if ((N / i) != i && (N / i) > B)
            D++;
      }
   }
   return D;
}
int PossibleWaysUtil(int A, int B) {
   if (A == B)
      return -1;
   if (A < B)
      return 0;
   int D = 0;
   D = Divisors(A, B);
   return D;
}
int main() {
   int A = 26, B = 2;
   int Sol = PossibleWaysUtil(A, B);
   if (Sol == -1) {
      cout <<" X can take Infinitely many values greater than " << A << "\n";
   } else {
      cout << " X can take " << Sol << " values\n";
      return 0;
   }
}

  1. মডুলার সমীকরণের সমাধানের সংখ্যার জন্য C/C++ প্রোগ্রাম?

  2. nম কাতালান নম্বরের জন্য C/C++ প্রোগ্রাম?

  3. একটি প্যারাবোলার শীর্ষবিন্দু, ফোকাস এবং ডিরেক্ট্রিক্স খোঁজার জন্য C/C++ প্রোগ্রাম?

  4. ত্রিভুজাকার ম্যাচস্টিক নম্বরের জন্য C/C++ প্রোগ্রাম?