পাইথনে আমি কীভাবে অসীম সংখ্যার প্রতিনিধিত্ব করতে পারি? আপনি প্রোগ্রামটিতে কোন সংখ্যাটি প্রবেশ করান তা বিবেচনা নয়, কোনও সংখ্যা অনন্তের এই প্রতিনিধিত্বের চেয়ে বড় হওয়া উচিত নয়।
পাইথনে আমি কীভাবে অসীম সংখ্যার প্রতিনিধিত্ব করতে পারি? আপনি প্রোগ্রামটিতে কোন সংখ্যাটি প্রবেশ করান তা বিবেচনা নয়, কোনও সংখ্যা অনন্তের এই প্রতিনিধিত্বের চেয়ে বড় হওয়া উচিত নয়।
উত্তর:
পাইথনে, আপনি এটি করতে পারেন:
test = float("inf")
পাইথন 3.5 তে, আপনি এটি করতে পারেন:
import math
test = math.inf
এবং তারপর:
test > 1
test > 10000
test > x
সর্বদা সত্য হবে। অবশ্যই যেমনটি উল্লেখ করা হয়েছে, এক্সটি অনন্ত বা "নান" ("একটি সংখ্যা নয়")।
উপরন্তু (পাইথন কেবলমাত্র 2.x), একটি তুলনায় Ellipsis, float(inf)ক্ষুদ্রতর হয়, যেমন:
float('inf') < Ellipsis
সত্য ফিরে আসবে।
Ellipsis, যা অনন্ত সহ সমস্ত কিছুর চেয়ে বৃহত্তর তুলনা করে। float("inf") < Ellipsisসত্য প্রত্যাবর্তন করে
math.inf < ...বা float('inf') > Ellipsisএকটি নিক্ষেপ TypeError: unorderable types: float() < ellipsis()করছে।
আপনি ঠিক কী করছেন তা আমি জানি না, তবে float("inf")আপনাকে একটি ফ্লোট ইনফিনিটি দেয় যা অন্য কোনও সংখ্যার চেয়ে বেশি।
সেখানে NumPy লাইব্রেরিতে একটি অনন্ত হল: from numpy import inf। নেতিবাচক অনন্ত পেতে সহজভাবে লিখতে পারেন -inf।
আরেকটি, কম সুবিধাজনক, এটি করার উপায় হচ্ছে Decimalক্লাস ব্যবহার করা :
from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
Decimal('Infinity') == float('inf')ফিরে আসে True, তাই এটি প্রায় একই রকম।
float('inf') is float('inf')আয় Falseখুব
float('inf') is float('inf')-> False, কেবল ধরে রেখেছে যে তারা বিভিন্ন উদাহরণ সহ পৃথক পৃথক বস্তু, তবে অভ্যন্তরীণ বিষয়বস্তু পৃথক নয় - বাস্তবে @nemesisdesign পয়েন্টটি float('int') == float('int')ধরে রেখেছিল True। পরিবর্তনীয় বস্তুর সাথে তুলনা করার মতো একই সমস্যাটি [1,2,3] এর মতো [1,2,3] এবং [1,2,3] == [1,2,3], ক্রমে, মিথ্যা এবং সত্য .. আরও তথ্য দেখুন: stackoverflow.com/questions/2988017/…
পাইথন ২.এক্সে একটি নোংরা হ্যাক ছিল যা এই উদ্দেশ্যে কাজ করেছিল (একেবারে প্রয়োজনীয় না হলে এটি ব্যবহার না করে):
None < any integer < any string
সুতরাং চেকটি কোনও পূর্ণসংখ্যার জন্য i < ''ধারণ করে ।Truei
এটি পাইথন 3 এ যুক্তিসঙ্গতভাবে হ্রাস করা হয়েছে। এখন এই ধরনের তুলনা শেষ হয়
TypeError: unorderable types: str() < int()
MIN_INFINITY = None; INFINITY = "inf"; MIN_INFINITY < x < INFINITY
এছাড়াও আপনি যদি সিমপি ব্যবহার করেন তবে আপনি ব্যবহার করতে পারেন sympy.oo
>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan
প্রভৃতি
math.infঅপ্টিমাইজেশান সমস্যার ক্ষেত্রে প্রাথমিক মান হিসাবে কার্যকর, কারণ এটি কমপক্ষে উদাহরণ সহ সঠিকভাবে কাজ করে।min(5, math.inf) == 5। উদাহরণস্বরূপ, সংক্ষিপ্ততম পথ অ্যালগরিদমগুলিতে, আপনিmath.infবিশেষ কেসের প্রয়োজন ছাড়াই অজানা দূরত্ব নির্ধারণ করতে পারেনNoneবা উপরের সীমাটি ধরে নিচ্ছেন9999999। একইভাবে, আপনি-math.infসর্বাধিক সমস্যার জন্য প্রারম্ভিক মান হিসাবে ব্যবহার করতে পারেন ।