এখানে আপনার মুশকিল চাবিকাঠি রয়েছে: 10
এর পণ্য 2
এবং 5
। ঠিক বেস 10 দশমিক ট যে * 1/2 কোন সংখ্যা উপস্থাপন করতে পারেন এন * 1/5 মিটার যেখানে k
, n
এবং m
পূর্ণসংখ্যা।
বিকল্পভাবে বাক্যযুক্ত - যদি n
1 / n এর সংখ্যায় এমন কোনও উপাদান থাকে যা বেসের উপাদানগুলির অংশ না হয় তবে সংখ্যাটি বাইনারি / দশমিক / এর যে কোনও প্রকারের বিস্তারে কোনও নির্দিষ্ট সংখ্যায় হুবহু উপস্থাপন করতে সক্ষম হবে না সংখ্যা - এটি একটি পুনরাবৃত্তি অংশ থাকবে। উদাহরণস্বরূপ 1/15 = 0.0666666666 .... কারণ 3 (15 = 3 * 5) 10 এর ফ্যাক্টর নয়।
সুতরাং, বেস 2 তে সঠিকভাবে (কে * 1/2 এন ) উপস্থাপন করতে সক্ষম এমন যে কোনও কিছুকে বেস 10 তে যথাযথভাবে উপস্থাপন করা যেতে পারে।
এর বাইরেও, আপনি সংখ্যাটি উপস্থাপন করতে কতগুলি সংখ্যা / বিট ব্যবহার করছেন তা নিয়ে সমস্যা রয়েছে। কিছু সংখ্যা রয়েছে যা কিছু বেসে হুবহু উপস্থাপন করতে সক্ষম হয়, তবে এটি করতে কয়েকটি সংখ্যা / বিটগুলির চেয়ে বেশি লাগে।
বাইনারিতে, 1/10 নম্বর যা সুবিধাজনকভাবে দশমিক 0.1 হয় এমন একটি সংখ্যা হিসাবে প্রতিনিধিত্ব করতে সক্ষম হয় না যা বাইনারিগুলিতে একটি নির্দিষ্ট সংখ্যক বিটগুলিতে প্রতিনিধিত্ব করা যায়। পরিবর্তে, সংখ্যাটি 0.00011001100110011 ... 2 (0011 অংশ চিরতরে পুনরাবৃত্তি সহ ) is
1 নম্বর পড়তে দেয় 2 /1010 2 একটি বিট আরো ঘনিষ্ঠভাবে।
____
0,00011
+ + ---------
1010 | 1,00000
0
-
1 0
0
----
1 00 --------- +
0 |
----- |
1 000 |
0 |
------ | পুনরাবৃত্তি
1 0000 | বাধা
1010 |
------ |
1100 |
1010 |
---- |
100 ---- +
আপনি 1/3 এর জন্য দীর্ঘ বিভাগ করার চেষ্টা করার সময় আপনি ঠিক একই ধরণের জিনিসটি পান।
1/10, যখন ফ্যাক্টরড হয় 1 / (2 1 * 5 1 )। বেস 10 (বা 10 এর কোনও একাধিক) এর জন্য, এই সংখ্যাটি সমাপ্ত হয় এবং এটি নিয়মিত সংখ্যা হিসাবে পরিচিত । দশমিক সম্প্রসারণ যা পুনরাবৃত্তি হয় তা পুনরাবৃত্তি দশমিক হিসাবে পরিচিত , এবং যে সংখ্যাগুলি পুনরাবৃত্তি না করে চিরতরে চলে যায় তা অযৌক্তিক সংখ্যা।
এর পেছনে গণিত মধ্যে delves ফার্মার ছোট্ট উপপাদ্যের ... এবং একবার আপনি বলার অপেক্ষা রাখে না ফার্মার বা উপপাদ্য, এটি একটি হয়ে শুরু Math.SE প্রশ্ন ।
এমন সংখ্যা কি আছে যা বেস 10 তে উপস্থাপনযোগ্য নয় তবে বেস 2 তে প্রতিনিধিত্ব করা যায়?
উত্তরটি 'না'।
সুতরাং, এই মুহুর্তে আমাদের সকলকে পরিষ্কার হওয়া উচিত যে যুক্তিযুক্ত সংখ্যার প্রতিটি নির্দিষ্ট দৈর্ঘ্যের বাইনারি সম্প্রসারণকে একটি নির্দিষ্ট দৈর্ঘ্যের দশমিক সম্প্রসারণ হিসাবে উপস্থাপন করা যায়।
সি # তে দশমিকের দিকে আরও ঘনিষ্ঠভাবে নজর দেওয়া যাক যা .NET এর দশমিক ভাসমান বিন্দুতে নিয়ে যায় এবং লেখককে দেওয়া হয়, আমি কীভাবে এটি কাজ করে তা গ্রহণ করব।
দশমিক প্রকারের অন্যান্য ভাসমান পয়েন্ট সংখ্যাগুলির মতো একই উপাদান রয়েছে: একটি ম্যান্টিসা, একটি উদ্দীপক এবং একটি চিহ্ন। যথারীতি, সাইনটি কেবলমাত্র একক বিট, তবে সেখানে ম্যান্টিসার 96 its বিট এবং খাঁজকারীর 5 বিট রয়েছে। তবে, সমস্ত অভিজাত সংমিশ্রণগুলি বৈধ নয়। কেবল 0-28 কাজের মান দেয় এবং এগুলি কার্যকরভাবে সমস্ত নেতিবাচক হয়: সংখ্যার মানটি । এর অর্থ এই ধরণের সর্বাধিক এবং সর্বনিম্ন মানগুলি হ'ল +/- (2 96 -1), এবং নিখুঁত পরিমাণের দিক থেকে ক্ষুদ্রতম অ-শূন্য সংখ্যা 10 -28 ।sign * mantissa / 10exponent
আমি এখনই উল্লেখ করব যে এই বাস্তবায়নের কারণে এমন double
ধরণের সংখ্যা রয়েছে যা প্রতিনিধিত্ব করতে পারে না decimal
- যারা সীমার বাইরে নয়। Double.Epsilon
হয় 4.94065645841247e-324
একটি প্রতিনিধিত্ব যা করা যাবে না decimal
একটি করতে পারেন, কিন্তু double
।
যাইহোক, দশমিক যে পরিসীমাটি প্রতিনিধিত্ব করতে পারে তার মধ্যে এটি অন্যান্য নেটিভ ধরণের তুলনায় যথাযথতার বেশি বিটস রয়েছে এবং ত্রুটি ছাড়াই তাদের উপস্থাপন করতে পারে।
চারপাশে ভাসমান আরও কিছু প্রকার রয়েছে। সি # তে একটি বিগইন্টিজার রয়েছে যা নির্বিচারে বড় পূর্ণসংখ্যাকে উপস্থাপন করতে পারে। সেখানে জাভার কোন সমতূল্য BigDecimal (যা সংখ্যার 2 জন অবধি এর দশমিক সংখ্যা নিয়ে উপস্থাপন করতে পারেন 32 - যা একটি বৃহদাকার পরিসীমা সংখ্যা বিশিষ্ট) ঠিক । যাইহোক, যদি আপনি কিছুটা ঘুরে দেখেন তবে আপনি হাত ঘোরানো বাস্তবায়নগুলি খুঁজে পেতে পারেন।
কিছু ভাষা রয়েছে যাগুলির সাথে যুক্তিযুক্ত ডেটা টাইপ রয়েছে যা আপনাকে সঠিকভাবে যুক্তি উপস্থাপন করতে দেয় (যাতে 1/3 আসলে 1/3 হয়)।
Specifcally C # এবং ভাসা বা মূলদ পছন্দমত জন্য, আমি থেকে জন স্কিট যাও মুলতবি করব .NET মধ্যে ডেসিমাল ভাসমান পাঁইট :
বেশিরভাগ ব্যবসায়িক অ্যাপ্লিকেশনগুলি সম্ভবত ভাসমান বা ডাবল না করে দশমিক ব্যবহার করা উচিত। আমার থাম্বের নিয়মটি হ'ল মুদ্রার মতো মনুষ্যসৃষ্ট মানগুলি সাধারণত দশমিক ভাসমান পয়েন্টের সাথে উপস্থাপন করা হয়: উদাহরণস্বরূপ, ঠিক ১.২৫ ডলার ধারণাটি সম্পূর্ণ যুক্তিযুক্ত reasonable দৈর্ঘ্য এবং ওজন হিসাবে প্রাকৃতিক বিশ্বের মানগুলির জন্য, বাইনারি ভাসমান পয়েন্টের ধরণগুলি আরও বেশি অর্থবোধ করে। যদিও কোনও তাত্ত্বিক "ঠিক ১.২৫ মিটার" এটি বাস্তবে কখনও ঘটতে পারে না: আপনি অবশ্যই যথাযথ দৈর্ঘ্য পরিমাপ করতে সক্ষম হবেন না এবং এগুলি পরমাণু স্তরেও থাকার সম্ভাবনা কম। আমরা জড়িত একটি নির্দিষ্ট সহনশীলতা থাকার অভ্যস্ত।