একদিন, মাহা তার দাদুর কাছে গিয়ে জানতে চাইলো ফিবোনাচ্চি সিকোয়েন্স কীভাবে তৈরি করা যায়। দাদু তখন তাকে একটি গল্পের মাধ্যমে সহজ ভাষায় বুঝিয়ে দেন।
দাদু বলেন, “ধরো, তুমি একটি খেলার মাঠে দাঁড়িয়ে
আছো। মাঠের প্রথম স্থানে একটি ইট আছে, আর ঠিক পরের স্থানেও একটি ইট আছে। তারপর তৃতীয়
স্থান থেকে ইটগুলো একে একে সাজাতে হবে, কিন্তু নতুন ইট যোগ করতে হলে তোমাকে আগে দুইটি
ইটের সংখ্যা যোগ করতে হবে।”
মাহা কৌতূহল নিয়ে দাদুকে জিজ্ঞাসা করলো,
“কীভাবে?”
দাদু বললেন, “প্রথমে প্রথম দুইটি ইট গণনা
করো: এক এবং এক। এবার তৃতীয় ইট হবে এই দুই ইটের যোগফল, মানে এক এবং এক মিলিয়ে দুই।
ঠিক সেইভাবে পরের ইট হবে এর আগের দুই ইটের যোগফল। চল, এবার ধাপে ধাপে এই কাজটি করি।”
এরপর দাদু তাকে একটি কাগজে ফিবোনাচ্চি সিকোয়েন্স
বের করতে বললেন:
- প্রথম ইট: 0
- দ্বিতীয় ইট: 1
- তৃতীয় ইট: 0+1=1
- চতুর্থ ইট: 1+1=2
- পঞ্চম ইট: 1+2=3
- ষষ্ঠ ইট: 2+3=5
- সপ্তম ইট: 3+5=8
এভাবে মাহা একে একে নতুন নতুন ইট যোগ করতে
লাগল, আর দেখতে পেল যে প্রতিটি নতুন ইট আগের দুটি সংখ্যার যোগফল দিয়ে তৈরি হচ্ছে।
এইভাবে মাহা বুঝে গেল যে ফিবোনাচ্চি সিকোয়েন্স
তৈরি করার জন্য তাকে শুধু আগের দুইটি সংখ্যা যোগ করতে হবে, আর এই প্রক্রিয়াটি যতক্ষণ
ইচ্ছা চলতে থাকবে। শেষ পর্যন্ত তার সামনে একটি দীর্ঘ ইটের সারি তৈরি হলো, যা দাদুর
সাহায্যে সহজেই বের করা সম্ভব হয়েছিল।
এই গল্পের মাধ্যমে মাহার সাথে সাথে আমরাও ফিবোনাচ্চি সিকোয়েন্সের একটি সম্পূর্ণ ধারণা পেয়েছি। এখন এটি কোড আকারে তৈরি করা যাক। নিচের জাভাস্ক্রিপ্ট কোডটি ফিবোনাচ্চি সিকোয়েন্সের প্রথম N টি সংখ্যা তৈরি করবে:
function fibonacciSequence(n) {
let sequence = [0, 1]; // প্রথম দুটি সংখ্যা ফিবোনাচ্চির: ০ এবং ১
// যদি n এর মান ১ হয়, তাহলে শুধুমাত্র প্রথম সংখ্যাটিই দরকার
if (n === 1) {
return [0];
}
// যদি n এর মান ২ বা তার বেশি হয়, তাহলে ফিবোনাচ্চি সিকোয়েন্স বের করা হবে
for (let i = 2; i < n; i++) {
let nextNumber = sequence[i - 1] + sequence[i - 2]; // আগের দুই সংখ্যার যোগফল
sequence.push(nextNumber); // যোগফল সিকোয়েন্সে যোগ করা হচ্ছে
}
return sequence;
}
let n = 10;
console.log(fibonacciSequence(n));
আউটপুট –
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34];
ভিন্ন পদ্ধতি -
function fibonacci(n) {
// ফিবোনাচ্চির প্রথম দুটি সংখ্যা ০ এবং ১
if (n === 0) {
return 0;
} else if (n === 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
function fibonacciSequence(n) {
let sequence = [];
for (let i = 0; i < n; i++) {
sequence.push(fibonacci(i)); // এখানে প্রতিটি ফিবোনাচ্চি সংখ্যা অ্যারেতে যোগ করা হচ্ছে
}
return sequence;
}
let n = 10;
console.log(fibonacciSequence(n));
আউটপুট:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
কোডের ব্যাখ্যা:
রিকার্সিভ ফাংশন: fibonacci(n) ফাংশনটি রিকার্সন
ব্যবহার করে প্রতিটি ফিবোনাচ্চি সংখ্যা বের করে। যদি n ০ বা ১ হয়, তা সরাসরি রিটার্ন
করে। যদি n তার থেকে বড় হয়, ফাংশন নিজেই নিজেকে কল করে এবং আগের দুটি সংখ্যার যোগফল
বের করে।
সিকোয়েন্স তৈরি: fibonacciSequence(n) ফাংশনটি একটি খালি অ্যারে তৈরি করে এবং সেখানে প্রতিটি ফিবোনাচ্চি সংখ্যা সংরক্ষণ করে।
“গল্পে গল্পে প্রোগ্রামিংর সমস্যার সমাধান
করুন” আমাদের ওয়েবসাইটটি বুকমার্ক করে রাখুন! গল্পটি উপভোগ করলে বন্ধুরা যাতে মিস না
করে, পোষ্টটি শেয়ার করতে ভুলবেন না। আর, লাইক ও কমেন্ট করে আমাদের জানাতে ভুলবেন না
যেন।