এই নিবন্ধে আমরা নিচের সমস্যা বিবরণের সমাধান নিয়ে আলোচনা করব:
সমস্যা বিবরণ
একটি সংখ্যা n দেওয়া থাকলে, n ফিবোনাচ্চি সংখ্যা কিনা তা যাচাই করুন।
আমরা সবাই জানি n-তম ফিবোনাচ্চি সংখ্যা হলো পূর্বের দুটি ফিবোনাচ্চি সংখ্যার যোগফল। কিন্তু রিকারেন্স রিলেশন ছাড়াও এগুলো একটি আকর্ষণীয় রিলেশন অফার করে।
একটি সংখ্যা ফিবোনাচ্চি প্রকৃতির হয় যদি এবং কেবল যদি (5*n² + 4) বা (5*n² - 4) একটি পারফেক্ট স্কয়ার হয়।
আমরা এই বৈশিষ্ট্যটি ব্যবহার করে একটি সংখ্যা ফিবোনাচ্চি কিনা তা যাচাই করব।
এখন পাইথন স্ক্রিপ্টের বাস্তবায়নটি দেখা যাক:
উদাহরণ
import math
# x পারফেক্ট স্কয়ার কিনা
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s*s == x
# n ফিবোনাচ্চি নম্বর কিনা
def isFibonacci(n):
# যদি 5*n*n + 4 বা 5*n*n - 4 বা উভয়ই পারফেক্ট স্কয়ার হয়
return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
for i in range(1, 11):
if (isFibonacci(i) == True):
print(i, "is a Fibonacci Number")
else:
print(i, "is a not Fibonacci Number")
আউটপুট
1 is a Fibonacci Number 2 is a Fibonacci Number 3 is a Fibonacci Number 4 is a not Fibonacci Number 5 is a Fibonacci Number 6 is a not Fibonacci Number 7 is a not Fibonacci Number 8 is a Fibonacci Number 9 is a not Fibonacci Number 10 is a not Fibonacci Number
সকল ফাংশন এবং ভেরিয়েবল গ্লোবাল ফ্রেমে ডিক্লেয়ার করা হয়েছে।

উপসংহার
এই নিবন্ধে আমরা একটি দেয়া সংখ্যা ফিবোনাচ্চি কিনা তা শনাক্ত করার সমাধান শিখেছি।