কম্পিউটার টিউটোরিয়াল

ফিবোনাচি জাভা: একটি গাইড

জাভা ফিবোনাচি অ্যালগরিদমের একটি গাইড

ফিবোনাচি সিকোয়েন্স হল একটি সিকোয়েন্স যেখানে পরবর্তী সংখ্যা দুটি পূর্ববর্তী সংখ্যার যোগফল ক্যালকুলেট করে পাওয়া যায়।

গণিতে এই সিকোয়েন্সের বিখ্যাতি আছে। এটি প্রকৃতিতেও দৃশ্যমান। উদাহরণস্বরূপ, অধিকাংশ ফুলের 꽃잎 ফিবোনাচি সিকোয়েন্সের মতো সাজানো থাকে।

এই গাইডে, আমরা জাভা ব্যবহার করে ফিবোনাচি সংখ্যা সিরিজ কীভাবে ক্যালকুলেট করতে হয় তা আলোচনা করব। আপনার শুরুতে সাহায্য করার জন্য আমরা দুটি ফিবোনাচি জাভা অ্যালগরিদমের মাধ্যমে যাব।

ফিবোনাচি সিকোয়েন্স কী?

আপনি হয়তো হাই স্কুল ম্যাথে ফিবোনাচি সিকোয়েন্স শিখেছেন। 

ফিবোনাচি সিকোয়েন্সের প্রথম দুটি সংখ্যা ০ এবং ১। পরবর্তী সংখ্যাগুলো পূর্ববর্তী দুটি সংখ্যা যোগ করে ক্যালকুলেট করা হয়। একটু বড় লিস্ট দেখা যাক:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

আপনি কতগুলো সংখ্যা ক্যালকুলেট করতে চান তার উপর নির্ভর করে এই সিকোয়েন্স চিরকাল চলতে পারে।

ফিবোনাচি সিকোয়েন্স দুটি পদ্ধতিতে ইমপ্লিমেন্ট করা যায়:

  • ইটেরেটিভ ফাংশন ব্যবহার করে
  • রিকার্সিভ অ্যালগরিদম ব্যবহার করে

আমরা এই দুটি পদ্ধতির মাধ্যমে যাব।

একটি ইটেরেটিভ ফিবোনাচি জাভা প্রোগ্রাম

ইটেরেটিভ পদ্ধতি শুরু করার জন্য সেরা জায়গা। ইটেরেটিভ প্রোগ্রামিং হল যখন আপনি একটি লুপ, যেমন for লুপ, ব্যবহার করে একটি লিস্টের মাধ্যমে ইটেরেট করে এবং একটি টাস্ক পারফর্ম করেন।

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

আমাদের প্রোগ্রামের জন্য একটি ক্লাস এবং মেথড ঘোষণা করে শুরু করি। আমরা তিনটি ভেরিয়েবলও সংজ্ঞায়িত করব যেগুলো আমাদের প্রোগ্রামে ব্যবহার করব।

public class FibonacciSequence { public static void main(String[] args) { int number = 5, firstTerm = 0, secondTerm = 1; } }

"number" ভেরিয়েবল ট্র্যাক করে আমরা কতগুলো টার্ম ক্যালকুলেট করব। "firstTerm" এবং "secondTerm" সিকোয়েন্সের প্রথম এবং دوم মান সংরক্ষণ করে। পরে আমাদের প্রোগ্রামে এটি পরিবর্তন হবে এবং আমরা যা গরণ করলাম তার আগের দুটি আইটেম সংরক্ষণ করবে।

এখন, একটি for লুপ লিখি যা সিকোয়েন্সের পরবর্তী ফিবোনাচি সংখ্যাগুলো ক্যালকুলেট করবে:

for (int i = 0; i < number; ++i) { System.out.println(firstTerm); int nextNumber = firstTerm + secondTerm; firstTerm = secondTerm; secondTerm = nextNumber; }

এই লুপ প্রথমে firstTerm এর মান প্রিন্ট করে। প্রথম ইটেরেশনে, এই মান ০। পরের, লুপ firstTerm এবং secondTerm একসাথে যোগ করে পরবর্তী সংখ্যা ক্যালকুলেট করে।

আমাদের কোড তারপর firstTerm এর মান secondTerm এর মানে বরাদ্দ করে। secondTerm আমাদের পরবর্তী সংখ্যা হয়ে যায়।

আমাদের কোড রান করি এবং দেখি কী হয়:

0 1 1 2 3

আমাদের কোড সিকোয়েন্সের প্রথম পাঁচটি মান ক্যালকুলেট করেছে।

একটি রিকার্সিভ ফিবোনাচি জাভা প্রোগ্রাম

ফিবোনাচি সিকোয়েন্স একটি রিকার্সিভ অ্যালগরিদম ব্যবহার করে ক্যালকুলেট করা যায়। এটি একটি ফাংশন যা নিজেকে কল করে একটি সমস্যা সমাধান করতে। রিকার্সিভ অ্যালগরিদম ব্যবহার করা যেতে পারে কারণ ফিবোনাচি সিকোয়েন্সে সংখ্যা ক্যালকুলেট করার একটি কনসিস্টেন্ট ফর্মুলা আছে।

আমাদের ক্লাস আরম্ভ করে শুরু করি:

class FibonacciSequence { }

পরবর্তী, আমরা একটি ফাংশন লিখব যা রিকার্শন ব্যবহার করে সিকোয়েন্সের পরবর্তী মান ক্যালকুলেট করবে:

static void getNextValue(int number, int firstTerm, int secondTerm) { if (number > 0) { System.out.println(firstTerm); int nextNumber = firstTerm + secondTerm; firstTerm = secondTerm; secondTerm = nextNumber; getNextValue(number - 1, firstTerm, secondTerm); } }

এই মেথড firstTerm এবং secondTerm এর মান যোগ করে পরবর্তী মান ক্যালকুলেট করে। এটি ততক্ষণ ঘটে যতক্ষণ "number" এর মান ০-এর চেয়ে বড়। "number" ট্র্যাক করে সিকোয়েন্সে কতগুলো সংখ্যা ক্যালকুলেট করা বাকি।

পরবর্তী মান ক্যালকুলেট হলে, getNextValue() ফাংশনটি রিকার্সিভভাবে কল করা হয়। এইবার, "number" এর মান এক কমিয়ে দেওয়া হয়। কারণ ফাংশনটি প্রতিবার রান হলে একটি নতুন সংখ্যা ক্যালকুলেট হয়।

এখন, আমাদের রিকার্সিভ ফাংশন ব্যবহার করে একটি মেইন প্রোগ্রাম লিখি এবং আমরা যেসব ভেরিয়েবল ব্যবহার করব সেগুলো ঘোষণা করি:

public static void main(String args[]) { int number = 5, firstTerm = 0, secondTerm = 1; getNextValue(number, firstTerm, secondTerm); }

"number" আমরা কতগুলো মান ক্যালকুলেট করতে চাই সেটি রিফ্লেক্ট করে। firstTerm লিস্টের প্রথম টার্ম। secondTerm লিস্টের دوم টার্ম।

যখন আমরা getNextValue মেথড কল করি, আমাদের ক্যালকুলেশন শুরু হয়। আমাদের কোড রান করি ফিবোনাচি সংখ্যা দেখতে:

0 1 1 2 3

ফিবোনাচি সিকোয়েন্সের প্রথম পাঁচটি মান ক্যালকুলেট হয়েছে!

উপসংহার

ফিবোনাচি সিকোয়েন্স গণিত, কম্পিউটিং, এবং প্রকৃতিতে সাধারণ। সিকোয়েন্সের পরবর্তী সংখ্যা পূর্ববর্তী দুটি সংখ্যা যোগ করে ক্যালকুলেট করা হয়। সিকোয়েন্স ০ এবং ১ সংখ্যা দিয়ে শুরু হয়।

এই সিকোয়েন্স ইটেরেটিভ বা রিকার্সিভ পদ্ধতিতে ক্যালকুলেট করা যায়। এখন আপনি জাভাতে ফিবোনাচি সিরিজ ক্যালকুলেট করতে পারবেন।

  1. জাভা কম্পাইলার: ধাপে ধাপে গাইড

  2. জাভাস্ক্রিপ্টে ফিবোনাচ্চি-সদৃশ সিকোয়েন্স

  3. জাভা প্রোগ্রাম: ফিবোনাচ্চি সিরিজ প্রদর্শন করার পদ্ধতি

  4. জাভাতে মেমোইজেশন (Memoization) - ১D, ২D ও ৩D ডাইনামিক প্রোগ্রামিং