দুইটি সংখ্যা a , b দেওয়া অাছে । [a,b] সীমার মাঝেকতটি ফিবোনাচ্চি সংখ্যা অাছে অামাদেরকে বের করতে হবে । a ও b দেওয়া অাছে । তারা উভয়ই ফিবোনাচ্চি হতেও পারে অাবার নাও হতে পারে । ফিবোনাচ্চি হলে ফিবোনাচ্চি সংখ্যার একটি সূত্র ব্যবহার করে a ও b কততম ফিবোনাচ্চি সংখ্যা কততম তা বের করতে পারি । a যদি ফিবোনাচ্চি সংখ্যা না হয় তাহলে a এর পরের ফিবোনাচ্চি সংখ্যাটি কততম এবং b যদি ফিবোনাচ্চি সংখ্যা না হয় b এর অাগের ফিবোনাচ্চি সংখ্যাটি কততম বের করতে পারি । এখন যদি এই দুটি ক্রমের বিয়োগফলই হবে a ও b এর মাঝে কতটি ফিবোনাচ্চি সংখ্যা অাছে ।
মনে করি F > 1 একটি ফিবোনাচ্চি সংখ্যা । তাহলে F কততম ফিবোনাচ্চি সংখ্যা তা বের করার জন্য নিচের সূত্রটি ব্যবহা করব ।
সূত্রটি যদি F এর মান এক এর চেয়ে বড় হয় তাহলে সঠিক ফলাফল দিবে ।
যেখানে :
উদাহরণ দিলে অারও পরিষ্কার হবে : 10 ও 100 এর মাঝে কতটি ফিবোনাচ্চি সংখ্যা অাছে তা বের করতে হবে । তা বের করার জন্য উপরের সূত্র ব্যবহার করে পাই 10(F) = 6 এবং 100(F) = 11 । বিয়োগফল 5 । সুতরাং 10 এবং 100 এর মাঝে 5 টি ফিবোনাচ্চি সংখ্যা অাছে । নিচে ফিবোনাচ্চি সংখ্যার সিরিজেও দেখা যাচ্ছে 10 ও 100 এর মাঝে 5 টি ফিবোনাচ্চি সংখ্যা অাছে ।
সি প্রোগ্রামিং ভাষায় যদি উপরের হিসেব করার প্রোগ্রাম :
[code language="c"]
#include <stdio.h>
#include <math.h>
int main()
{
double phi = (1+sqrt(5))/2;
int a, b,count = 0,aF,bF;
printf("Enter two numbers: \n");
scanf("%d%d",&a,&b);//Taking input a and b
//logarithm of x base b = log(x)/log(b)
aF = floor(log(a*sqrt(5)+0.5)/log(phi));
bF = floor(log(b*sqrt(5)+0.5)/log(phi));
count = bF - aF;
printf("\nThere are total %d fibonacci numbers.\n",count);
return 0;
}
[/code]
সূত্র ও ছবি : উইকিপিডিয়া ।