সংখ্যাতত্ত্ব - Number theory

সংখ্যাতত্ত্ব: লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ

linear Diophantine Equation bangla tutorial,linear Diophantine Equation tutorial

সংখ্যাতত্ত্বের আরেকটি লিখাতে আপনাদের স্বাগতম। আগের লিখায় দেখেছিলাম আমরা কিভাবে ইউক্লিডিয়ান অ্যালগরিদম ব্যবহার করে a.x_g+b.y_g=gcd(a,b) এর সমাধান করতে পারি। এই লিখায় আমরা a.x+b.y=c এর সমাধান করা শিখবো যেখানে c|gcd(a,b) বা c , gcd(a,b) দ্বারা বিভাজ্য এবং a অথবা b এর যেকোনো একটি অশূন্য হবে। এই সমীকরণের নাম লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ ।

লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ: সমস্যার বিবরণী

আমাদের একটি সমীকরণ দেয়া আছে, a.x+b.y=c যেখানে a,b,c প্রদত্ত পূর্ণসংখ্যা, c , gcd(a,b) দ্বারা বিভাজ্য। আমাদেরকে x,y এর এমন দুইটি মান বের করতে হবে যেন এই সমীকরণটি সত্য হয়।

এই লিখাটি অনেক বেশি Extended Euclidean Algorithm এর উপর নির্ভরশীল। সুতরাং যাদের বর্ধিত ইউক্লিডিয়ান অ্যালগরিদম বা Extended Euclidean Algorithm নিয়ে জানা নেই তারা লিখাটি পরে আসেন।

সংখ্যাতত্ত্ব: এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদম

Linear Diophantine Equation এর একটি সমাধান বের করা।

যদি পূর্ব থেকে এক্সটেন্ডেড ইউক্লিডীয়ান অ্যালগরিদম নিয়ে জানা থাকে তবে এই সমস্যার সমাধান করা সহজ হবে আশা করি। a.x+b.y=c এই সমীকরণে c কে gcd(a,b) দ্বারা নিঃশেষে ভাগ করা যায়। এটা সমাধানের আগে আমরা a.x_g+b.y_g=gcd(a,b) এর সমাধান বের করবো বর্ধিত ইউক্লিডিয়ান অ্যালগরিদম ব্যবহার করে।

আমরা সেখান থেকে জেনেছিলাম a.x_g+b.y_g=gcd(a,b) এর জন্য আমরা সবসময় x_g,y_g এর একটি সমাধান পাবো। আগের লিখা থেকে extended_gcd() ফাংশনটি কপি করছি।

উদাহরণস্বরূপ একটি সমীকরণ বিবেচনা করি, 8x+44y=52 , এখানে a=8,b=44,c=52 । আমরা main() ফাংশনের ভেতর থেকে extended_euclid() কে কল করবো।

এখানে x,y রেফেরেন্সের মাধ্যমে আপডেট হয়ে গিয়েছে। এবং ফাংশনটি gcd(8,44)=4 রিটার্ন করেছে। আমরা এই কলের মাধ্যমে x_g,y_g,gcd(a,b) এর মান পেয়েছি। এখানে আমরা পাই x_g=-5,y_g=1,gcd(a,b)=4

এখন লিনিয়ার ডায়োফ্যান্টাইন সমীকরণের শর্ত মোতাবেক c অবশ্যই gcd(a,b) দ্বারা বিভাজ্য হতে হবে। এখানে c=52 যা 4 দ্বারা বিভাজ্য। c/gcd(a,b)=13

বর্ধিত ইউক্লিডিয়ান অ্যালগরিদম থেকে পাই,

a.x_g+b.y_g=gcd(a,b)
8.-5+44.1=4
13.(8.-5+44.1)=4.13 [উভয় পক্ষে c/gcd(a,b) বা 13 গুন করি]
8.(-5.13)+44.(1.13)=52

8x+44y=52 এর সাথে তুলনা করে পাই, x=-5.13=-65 এবং y=13

আমরা যদি সাধারনরূপে লিখি তবে পাই,

a.x+b.y=c এর সাথে তুলনা করি, x=x_g. \frac{c}{gcd(a,b)} এবং y=y_g. \frac{c}{gcd(a,b)}

a.x_g+b.y_g=gcd(a,b)

উভয় পক্ষে \frac{c}{gcd(a,b)} গুন করে পাই,
বা, \frac{c}{gcd(a,b)}(a.x_g+b.y_g)=gcd(a,b). \frac{c}{gcd(a,b)}
বা, a.x_g. \frac{c}{gcd(a,b)} +b.y_g. \frac{c}{gcd(a,b)}=c

সুতরাং আমরা সমীকরণের একটি সমাধান পেলাম।

সাধারণরূপে সমাধান বের করা

উপরের ধাপে আমরা a.x+b.y=c এর একটি সমাধান সমাধান বের করেছি। কিন্তু লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ এর অসীম সংখ্যক সমাধান পাওয়া যায়। কিভাবে? চলুন নিচের অংশটুকু শেষ করি।

a.(x_g. \frac{c}{gcd(a,b)}+\frac{b}{gcd(a,b)}) +b.(y_g. \frac{c}{gcd(a,b)}- \frac{a}{gcd(a,b)}) =c

আমরা x এর মান এর সাথে \frac{b}{gcd(a,b)} যোগ করেছি এবং y এর মানের থেকে \frac{a}{gcd(a,b)} বিয়োগ করেছি। এতে করে এই সমীকরনের সাম্যতা অক্ষুন্ন রয়েছে। প্রমান নিচে দেয়া হলো।

a(x+\frac{b}{gcd(a,b)})+b(y-\frac{a}{gcd(a,b)})
=a.x+\frac{ab}{gcd(a,b)}+b.y-\frac{ab}{gcd(a,b)}
=ax+by
=c

সুতরাং দেখতে পাছি x এর সাথে \frac{b}{g} যোগ এবং y থেকে \frac{a}{g} বিয়োগ করলে x y এর নতুন যা মান পাবো পাবো তা আমাদের সমীকরণকে সিদ্ধ করে।

একই ভাবে খুব সহজেই দেখানো যায় যে,

a.(x_g. \frac{c}{gcd(a,b)}+k.\frac{b}{gcd(a,b)}) +b.(y_g. \frac{c}{gcd(a,b)}- k.\frac{a}{gcd(a,b)}) =c

এখানে k হলো যেকোনো পূর্ণসংখ্যা। সুতরাং দেখতে পাচ্ছি লিনিয়ার ডায়োফ্যান্টাইন সমীকরণের অসীম সংখ্যক সমাধান রয়েছে, যা k এর মানের উপর নির্ভর করে।

সুতরাং আমরা সাধারণ রুপে লিখতে পারি,

x= x_g. \frac{c}{gcd(a,b)}+k.\frac{b}{gcd(a,b)}

y= y_g. \frac{c}{gcd(a,b)}- k.\frac{a}{gcd(a,b)}

এখানে k যেকোনো পূর্ণসংখ্যা।

নন লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ

C++ এর মাধ্যমে লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ এর ইমপ্লিমেন্টেশন

এখনে আমরা সবার প্রথমে Extended Euclidean Algorithm অনুসারে a.x+b.y=gcd(a,b) সমাধানের জন্য extended_euclid() ফাংশন তৈরি করে নিয়েছি। এর মাধ্যমে আমরা gcd(a,b) এর পাশাপাশি x_g,y_g এর মান পাবো। তারপরে আমরা পরিক্ষা করে দেখেছি c কে gcd(a,b) দ্বারা ভাগ করা যায় কি না। যদি ভাগ করা না যায় তবে আমরা বলতে পারি এই সমিকরনের সমাধান সম্ভব নয় যেখানে x,y পূর্ণ সংখ্যা হবে।

এর পর আমরা k এর একটি ইচ্ছেমত মান ধরে নিয়েছি। k এর মান অনুসারে আমরা এই সমিকরনের বিভিন্ন সমাধান পেতে পারি। তারপর আমরা সুত্র প্রয়োগ করে x,y এর মান বের করেছি এবং আউটপুট দিয়েছি।

এই লিখাটি অসম্পূর্ণ। লিখাটি আরও আপডেট করা হবে। আপাতত এখানে একটি সমাধান বের করা দেখানো হলেও আমরা x,y এর এমন মান বের করতে পারবো যেন x+y এর মান সর্বনিম্ন হয়। একই সাথে আমরা বের করতে পারবো একটি নির্দিষ্ট সীমার মধ্যে কতগুলো সমাধান রয়েছে।

সুত্র: https://cp-algorithms.com/algebra/linear-diophantine-equation.html

লেখাটি কেমন লেগেছে আপনার?

রেটিং দিতে হার্টের উপর ক্লিক করুন।

গড় রেটিং / 5. মোট ভোট:

আপনি প্রথম ভোটদাতা.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button