এমন সংখ্যা কি আছে যা বেস 10 তে উপস্থাপনযোগ্য নয় তবে বেস 2 তে প্রতিনিধিত্ব করা যায়?


42

C#দশটিতে বেসের সঠিক প্রতিনিধিত্বের জন্য সংখ্যার জন্য ব্যবহৃত decimalটাইপটি রয়েছে উদাহরণস্বরূপ, 0.1বেস 2 (উদাহরণস্বরূপ ) তে উপস্থাপন করা যাবে না floatএবং doubleএই ধরণের যে চলকগুলিতে সংরক্ষণ করা হয় তা সর্বদা একটি আনুমানিক হবে।

আমি ভাবছিলাম যে বিপরীত ঘটনাটিও সম্ভব ছিল কিনা। 10 নম্বর বেসে উপস্থাপনযোগ্য নয় তবে বেস 2 তে প্রতিনিধিত্ব করা যেতে পারে এমন সংখ্যাগুলি রয়েছে (এই ক্ষেত্রে আমি এগুলি হ্যান্ডেল করার floatপরিবর্তে এর পরিবর্তে একটি ব্যবহার করতে চাই decimal)?


14
প্রশ্নের +1, তবে এখানে কি সি # ট্যাগটি সত্যই কার্যকর? অন্যান্য ভাষায় দশমিক প্রকারও রয়েছে।
প্যাট্রিক এম

1
@ ম্যাক্স: একটি অনুশীলন হিসাবে, আমি আপনাকে একটি বেস 2 সংখ্যাটি হাত দ্বারা বেস 10 এ রূপান্তর করার কল্পনা করার পরামর্শ দিচ্ছি। উদাহরণস্বরূপ, এর মান গণনা করতে 0.11_b2, লিখুন 0.5 + 0.5 * 0.5। এমন কোনও পদক্ষেপ আছে যা ব্যর্থ হতে পারে বা পুনরাবৃত্ত দশমিকের ফলাফল হতে পারে? ব্যক্তিগতভাবে, আমি দেখতে পাচ্ছি যে এই অনুশীলনটি বেস 2 নম্বর সম্পর্কে অন্তর্দৃষ্টি দিয়ে একটি দুর্দান্ত কাজ করে। আমি মনে করি যে কেউ আরও এক ধাপ এগিয়ে যেতে পারে এবং নির্মাণের মাধ্যমে এই অনুশীলনকে একটি প্রমাণে পরিণত করতে পারে।
ব্রায়ান

আহ, তবে আপনি ভুল 1-1010
জাভেয়ার জে

3
@ র‌্যামাউন্ডে মেমরির সীমাবদ্ধতা দেওয়া, বাইনারি 0.0999999....998..হুবহু উপস্থাপন করতে পারে তবে পুরো সংখ্যাটি নয় 0.1- নিকটতম হুন্ড্রিথের সাথে গোল করে দেওয়ার মতো অনুমানগুলি 0.100একটি বাস্তবায়নের উদ্বেগ যা আপনাকে সমস্ত অঙ্ক না দেখানো এবং পরিবর্তে এটি গোল করে জড়িত।
ইজকাটা

1
ঠিক আছে, কোনও এফপি এনকোডিং প্রক্রিয়া নিয়ে আসা সম্ভব যা '0.1' কে ঠিক উপস্থাপন করতে দেয়। এ জাতীয় এনকোডিং কেবলমাত্র এফপি নম্বর ব্যাপ্তির সেটগুলির চেয়ে বেশি পরিবর্তিত হয় এবং এটি উপস্থাপন করা যায় না।
মার্টিন জেমস

উত্তর:


104

এখানে আপনার মুশকিল চাবিকাঠি রয়েছে: 10এর পণ্য 2এবং 5। ঠিক বেস 10 দশমিক ট যে * 1/2 কোন সংখ্যা উপস্থাপন করতে পারেন এন * 1/5 মিটার যেখানে k, nএবং mপূর্ণসংখ্যা।

বিকল্পভাবে বাক্যযুক্ত - যদি n1 / 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 -28sign * mantissa / 10exponent

আমি এখনই উল্লেখ করব যে এই বাস্তবায়নের কারণে এমন doubleধরণের সংখ্যা রয়েছে যা প্রতিনিধিত্ব করতে পারে না decimal- যারা সীমার বাইরে নয়। Double.Epsilonহয় 4.94065645841247e-324একটি প্রতিনিধিত্ব যা করা যাবে না decimalএকটি করতে পারেন, কিন্তু double

যাইহোক, দশমিক যে পরিসীমাটি প্রতিনিধিত্ব করতে পারে তার মধ্যে এটি অন্যান্য নেটিভ ধরণের তুলনায় যথাযথতার বেশি বিটস রয়েছে এবং ত্রুটি ছাড়াই তাদের উপস্থাপন করতে পারে।

চারপাশে ভাসমান আরও কিছু প্রকার রয়েছে। সি # তে একটি বিগইন্টিজার রয়েছে যা নির্বিচারে বড় পূর্ণসংখ্যাকে উপস্থাপন করতে পারে। সেখানে জাভার কোন সমতূল্য BigDecimal (যা সংখ্যার 2 জন অবধি এর দশমিক সংখ্যা নিয়ে উপস্থাপন করতে পারেন 32 - যা একটি বৃহদাকার পরিসীমা সংখ্যা বিশিষ্ট) ঠিক । যাইহোক, যদি আপনি কিছুটা ঘুরে দেখেন তবে আপনি হাত ঘোরানো বাস্তবায়নগুলি খুঁজে পেতে পারেন।

কিছু ভাষা রয়েছে যাগুলির সাথে যুক্তিযুক্ত ডেটা টাইপ রয়েছে যা আপনাকে সঠিকভাবে যুক্তি উপস্থাপন করতে দেয় (যাতে 1/3 আসলে 1/3 হয়)।


Specifcally C # এবং ভাসা বা মূলদ পছন্দমত জন্য, আমি থেকে জন স্কিট যাও মুলতবি করব .NET মধ্যে ডেসিমাল ভাসমান পাঁইট :

বেশিরভাগ ব্যবসায়িক অ্যাপ্লিকেশনগুলি সম্ভবত ভাসমান বা ডাবল না করে দশমিক ব্যবহার করা উচিত। আমার থাম্বের নিয়মটি হ'ল মুদ্রার মতো মনুষ্যসৃষ্ট মানগুলি সাধারণত দশমিক ভাসমান পয়েন্টের সাথে উপস্থাপন করা হয়: উদাহরণস্বরূপ, ঠিক ১.২৫ ডলার ধারণাটি সম্পূর্ণ যুক্তিযুক্ত reasonable দৈর্ঘ্য এবং ওজন হিসাবে প্রাকৃতিক বিশ্বের মানগুলির জন্য, বাইনারি ভাসমান পয়েন্টের ধরণগুলি আরও বেশি অর্থবোধ করে। যদিও কোনও তাত্ত্বিক "ঠিক ১.২৫ মিটার" এটি বাস্তবে কখনও ঘটতে পারে না: আপনি অবশ্যই যথাযথ দৈর্ঘ্য পরিমাপ করতে সক্ষম হবেন না এবং এগুলি পরমাণু স্তরেও থাকার সম্ভাবনা কম। আমরা জড়িত একটি নির্দিষ্ট সহনশীলতা থাকার অভ্যস্ত।


একটি স্পষ্ট এবং সংক্ষিপ্ত গাণিতিক ব্যাখ্যার জন্য +1। এবং শিরোনামে উত্থাপিত প্রশ্নের আরও সাধারণ সংস্করণের উত্তর দেওয়ার জন্য, বেস 10 তে প্রতিনিধিত্বযোগ্য নয় এমন একটি সংখ্যার উদাহরণ 1/3।
ডোভাল

@ দোভাল আমার সন্দেহ হয় যে আমার যুক্তি বা ব্যাখ্যাতে এমন কোনও গণ্ডগোল রয়েছে যে আরও গণিতমুখী ব্যক্তি নির্দেশ করতে পারে ... তবে আমি মনে করি আমি যদি সঠিক ঘটনা অবলম্বন করি তবে আমি সঠিক পথে রয়েছি।

এই ক্ষেত্রে "তুলনামূলকভাবে প্রধান" এর অর্থ কেবল "একটি উপাদান নয়", তাই না? আমি গাmat় কিছু গাণিতিক সম্পর্ক আছে কি?
প্যাট্রিক এম

1
আহা, যাতে আমি এটি বুঝতে পারি n = 15এবং তুলনামূলকভাবে প্রধানb = 10 নন ("1 ব্যতীত কোনও সাধারণ ইতিবাচক কারণগুলি (বিভাজনকারীদের ভাগ করুন না)) কারণ তারা একটি উপাদান হিসাবে 5 ভাগ করে। মূলটি হ'ল 15 (5 এবং 3) এর সমস্ত কারণ 10 এর কারণও নয় are (পাশাপাশি: এমন কোনও সংখ্যাকে বোঝানোর জন্য কোনও শব্দ রয়েছে যা সমস্ত সাধারণ কারণগুলি ভাগ করে না বা ভাগ করে না?) আমার মনে হয় এটি খুব সুন্দরভাবে রয়েছে আপনার সমীকরণটি মুড়ে ফেলেছেন তবে সত্যই আমার মাথাটি এটির চারপাশে জড়িয়ে রাখতে, আমাকে একটি 3 ডি প্লট দেখতে হবে। নির্বিশেষে, আপনার কাছে +1 প্রাপ্য। k, n, m
প্যাট্রিক এম

1
@ পেট্রিকএম: "পাশাপাশি: এমন একটি শব্দ রয়েছে যা সংখ্যাকে নির্দেশ করে যা সমস্ত সাধারণ কারণগুলি ভাগ করে না বা ভাগ করে না?": কোনও পূর্ণসংখ্যা নিজেই একটি উপাদান, সুতরাং যদি মি এর সমস্ত উপাদানগুলি n এর গুণক হয় , তবে এটি তুচ্ছভাবে অনুসরণ করে যে m n এর একটি ফ্যাক্টর । এটির জন্য একটি শব্দ, যেমন আপনি স্পষ্টভাবে জানেন, এটি ফ্যাক্টর । আরেকটি বিভাজক
রুখ 20

6

একবার আপনি গ্রহণযোগ্য মানগুলির সীমার বাইরে গেলে উত্তরটি হ্যাঁ। এটি বলেছিল, পরিসরের অভ্যন্তরের যে কোনও কিছুতে একটি প্রতিনিধিত্ব থাকবে। সি # দশমিক রেফারেন্স নির্দিষ্টকরণে বর্ণিত না হলেও অযৌক্তিক সংখ্যাগুলি হুবহু উপস্থাপন করা যায় না (যেমন, ই 1 , পাই, 2 এর বর্গমূল ইত্যাদি) root

দশমিক কীওয়ার্ডটি 128-বিট ডেটা টাইপ বোঝায়। ভাসমান-পয়েন্টের ধরণের তুলনায় দশমিক ধরণের একটি বৃহত্তর নির্ভুলতা এবং একটি ছোট পরিসীমা রয়েছে যা এটি আর্থিক এবং আর্থিক গণনার জন্য উপযুক্ত করে তোলে। দশমিক প্রকারের জন্য আনুমানিক পরিসর এবং যথার্থতা নিম্নলিখিত সারণীতে প্রদর্শিত হবে।

যথার্থতা: 28-29 উল্লেখযোগ্য সংখ্যা

1 মাইকেলটি আপনাকে আর একটি অযৌক্তিক সংখ্যা মনে করিয়ে দেওয়ার জন্য ধন্যবাদ।


2
@ ম্যাগাস অযৌক্তিক সংখ্যাটি বিবেচনা করুন e( ২.71১ ...)। প্রাকৃতিক লগ - ln (x) হ'ল লগ বেস e সুতরাং, অযৌক্তিক বেসগুলি বিদ্যমান এবং দরকারী are বেস পাইয়ের বিশেষ উপযোগিতা, আমি নিশ্চিত নই - তবে এর অর্থ এটি কোথাও ব্যবহৃত হয় না।

6
@ ম্যাক্স আপনি গণিত প্রশ্নে আরও বেশি করে বিপথে যাচ্ছেন। আপনি যদি দেখতে পাচ্ছেন যে কোনও সংখ্যা বেস 10 এ অযৌক্তিক হয় তবে এটি অন্যান্য বেসগুলিতে অযৌক্তিক? আরও একটি সংখ্যা তত্ত্ব প্রশ্নের জন্য একটি দরকারী পঠন এবং একটি সূচনা পয়েন্ট হতে।

2
1/3 অযৌক্তিক নয়।
আদম জুকারম্যান

2
ওপিতে বেস 10 (দশ) সম্পর্কে জিজ্ঞাসা করা হয়েছিল। যে কোনও কিছুর একটি সংখ্যা সিস্টেম ভিত্তি তৈরি করা আপনাকে 10 হিসাবে যে কোনও কিছু প্রকাশ করতে দেয়। উইকিপিডিয়া নিবন্ধের উপর ভিত্তি করে , অযৌক্তিক সংখ্যাটিকে বেস হিসাবে ব্যবহার করা এটি যুক্তিযুক্ত নয়। যৌক্তিক সংখ্যাগুলি সংখ্যা এবং ডিনোমিনেটর উভয়ের জন্য পূর্ণসংখ্যার হিসাবে প্রকাশ করা যেতে পারে, দশমিকের মধ্যে সংখ্যাগুলি পুনরাবৃত্তি করে, বা দশমিকের মধ্যে সংখ্যার সীমাবদ্ধকরণ হয়।
অ্যাডাম জুকারম্যান

5
@ ফ্রাস্ট্রেটড উইথফর্মস ডিজাইনার ইরিশনালিটির বেসগুলিতে যা করার কিছুই নেই। ঠিক আছে, এটি একটি অতিমাত্রায় কাজ, তবে এটি অযৌক্তিকতার সাথে বিভিন্ন ঘাঁটিতে সংখ্যার প্রতিনিধিত্বের জন্য নিদর্শন রয়েছে (যেমন এটি সীমাহীন অ-পুনরাবৃত্ত সংখ্যা রয়েছে কিনা), অন্যভাবে নয়। উপরের সাথে লিঙ্কিত গণিতের প্রশ্নটি পড়ুন: গণিত.স্ট্যাকেক্সেঞ্জার.কম

1

একটি বেস-টু ভাসমান-পয়েন্ট টাইপ একই মানের একটি বেস-দশ প্রকার যা করতে পারে না এমন অনেকগুলি মানকে অবিকলভাবে উপস্থাপন করতে সক্ষম হবে । কিছু আকারের বেস -২ প্রকারের দ্বারা যথাযথভাবে উপস্থাপনযোগ্য যে কোনও মান বেস-টেন পর্যাপ্ত আকারের হুবহু উপস্থাপনযোগ্য। একটি বাইনারি ভাসমান-পয়েন্ট সংখ্যাটির সমস্ত মান উপস্থাপনের জন্য খাঁটি-বেস-দশ প্রকারের জন্য প্রয়োজনীয় আকার বাইনারি ধরণের ক্ষতিকারক ব্যাপ্তির উপর নির্ভর করবে; একটি জন্য বিট শত শত float, অথবা একটি জন্য হাজার হাজার double

বলা হয়ে থাকে যে, Decimalপ্রকারটি এত বড় যে এটি কোনও "সর্বজনীন" প্রকার হিসাবে অন্য কোনও সংখ্যার আদিম মান ধরে রাখতে সক্ষম এবং অন্য কিছু অতিরিক্ত বৈশিষ্ট্য সরবরাহ করতে সক্ষম হয়ে থাকতে পারে (অন্য কিছু না হলে, একটি বিট ব্যবহার করুন) সঞ্চিত মান একটি রূপান্তরিত করার ফলাফল কিনা তা চিহ্নিত করতে doubleএবং যদি সেই বিটটি সেট করা থাকে তবে প্রশ্নটিতে মানটি ধরে রাখতে 64 বিট ব্যবহার করুন)। মাইক্রোসফ্ট অবশ্য তা করতে রাজি হয়নি। ফলস্বরূপ, একটি রূপান্তর doubleকরতে Decimal, বড় মানের জন্য সম্পূর্ণরূপে ব্যর্থ হবে কারণ হবে ছোট মান নিকটতম 1E-28 বৃত্তাকার করা হবে। আরও, এমনকি গতিশীল পরিসীমা মধ্যেdecimal, রূপান্তর পদ্ধতিটি "রাউন্ড ট্রিপ" করবে না। উদাহরণস্বরূপ, 1.0 / 3.0 কে ডাবল হিসাবে মূল্যায়ন করলে 0.33333333333333333148 পাওয়া যাবে তবে দশমিককে রূপান্তর করলে 0.33333333333333333 মি ফল পাওয়া যাবে এবং সেইটিকে দ্বিগুণে রূপান্তর করলে 0.3333333333333329818 পাওয়া যাবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.