ডাবল কেন M


157

যে কেউ Double.MIN_VALUEডাবলস নিতে পারে এমন ন্যূনতম মানটি কেন হয় না সে সম্পর্কে কিছু আলোকপাত করতে পারে? এটি একটি ইতিবাচক মান এবং একটি ডাবল অবশ্যই নেতিবাচক হতে পারে।

আমি বুঝতে পারছি কেন এটা একটি দরকারী সংখ্যা, কিন্তু এটি একটি খুব unintuitive নাম বলে মনে হয়, বিশেষত যখন তুলনায় Integer.MIN_VALUE। এটিকে Double.SMALLEST_POSITIVEবা এর MIN_INCREMENTমতো কল করার ক্ষেত্রে স্পষ্ট শব্দার্থবিজ্ঞান হবে।

এছাড়াও, ন্যূনতম মানটি যা ডাবলস নিতে পারে? এটা কি -Double.MAX_VALUE? ডক্সটি বলে মনে হচ্ছে না।


1
প্রতিক্রিয়া জন্য ধন্যবাদ! পরিসর এবং নির্ভুলতার মধ্যে পার্থক্যটি বোঝায়। আমি এখনও নামটি বেশ অদ্ভুত এবং বেমানান মনে করি, তবে এটি কার্যক্ষম।
মো-সেফ

1
আমি অনুমান করছি, কারণ এটা একই জিনিয়াস এমন একজন পদ্ধতি নামক বইটি লিখেছেন writeBytesযা লাগে String
ট্রেজকাজ

মূলত, আপনি ঠিক বলেছেন, এটি খারাপ শব্দার্থক
Alvaro

উত্তর:


180

আইইইই 754 ফর্ম্যাটে একটি বিট সাইন এবং বাকি বিটগুলির দৈর্ঘ্যের প্রতিনিধিত্বের জন্য সংরক্ষিত আছে। এর অর্থ এটি অরিগো প্রায় "প্রতিসম" হয় (পূর্ণসংখ্যার মানগুলির বিপরীতে, যার আরও একটি নেতিবাচক মান রয়েছে)। সুতরাং সাইন-বিট পরিবর্তিত হওয়ার সাথে ন্যূনতম মানটি সর্বাধিক মানের সমান, সুতরাং হ্যাঁ , -Double.MAX_VALUEআপনি যেটির সাথে প্রতিনিধিত্ব করতে পারবেন এটি সম্ভবতম সংখ্যার আসল সংখ্যা double

আমি অনুমান Double.MAX_VALUEহিসেবে দেখা উচিত সর্বাধিক মাত্রার , যে ক্ষেত্রে এটা আসলে কেবল লিখতে জ্ঞান করে তোলে -Double.MAX_VALUE। এটি Double.MIN_VALUEন্যূনতম ধনাত্মক মান কেন তাও ব্যাখ্যা করে (যেহেতু এটি সর্বনিম্ন সম্ভাব্য মাত্রার প্রতিনিধিত্ব করে)।

তবে অবশ্যই, আমি সম্মত হই যে নামকরণটি কিছুটা বিভ্রান্তিকর। অর্থের সাথে অভ্যস্ত হওয়া Integer.MIN_VALUE, আমি যখন পড়েছিলাম তখন Double.MIN_VALUEএটির মধ্যে আমি সবচেয়ে আশ্চর্য হয়েছি যে এটি সবচেয়ে ক্ষুদ্রতম পরম মানের যা উপস্থাপিত হতে পারে। সম্ভবত তারা ভেবেছিলেন যে এটি নূন্যতম সম্ভাব্য মূল্যের প্রতিনিধিত্ব করা ধ্রুবক ছিল কারণ এটি কেবলমাত্র -দূরে MAX_VALUE:-)

(দ্রষ্টব্য, এর বাইরেও Double.NEGATIVE_INFINITYআমি এটিকে উপেক্ষা করছি, কারণ এটি একটি "বিশেষ কেস" হিসাবে দেখা উচিত এবং বাস্তবে কোনও প্রকৃত সংখ্যাকে উপস্থাপন করে না))

এখানে বিষয় সম্পর্কে একটি ভাল পাঠ্য।


3
এর জন্য ধন্যবাদ. আমি কিছু পরিসংখ্যান বিশ্লেষণ কোড পোর্টিং করছিলাম এবং অন্ধভাবে জাভা অনুবাদ করছিলাম সি # তে। আমি কিছু নম্বর-ইনফিনিটি বা এনএএন-তে বেরিয়ে এসে লক্ষ্য করেছি এবং অ্যালগরিদমটি ঘনিষ্ঠভাবে দেখেছি। আমি বুঝতে পেরেছি যে ডাবল। MIN_VALUE প্রসঙ্গে কোনও অর্থবোধ করেনি এবং অনুসন্ধান করেছেন। এই পোস্টটি জাভা ডক্সের আগে উঠে আসে। এটি আসলে দ্বিগুণ কি এর জন্য একটি বিভ্রান্তিকর নাম psপিসিলন। কোনও বড় কথা নয়, এটি ঠিক করতে এক মিনিটেরও বেশি সময় নিল তবে অবাক করা অবাক।
এড এস

"ক্ষুদ্রতম পরম মান যা উপস্থাপন করা যায়" এর নামকরণ করা উচিত নয় 'এপসিলন'?
ডেভ কজিনিউ

@ সাহুয়াগিন, নির্দিষ্ট কিছু নামকরণ করা আসলেই "অনুমিত" নয়। এপসিলন হ'ল একটি গ্রীক অক্ষর যা সাধারণত গণিত / পদার্থবিজ্ঞানে স্বল্প পরিমাণে ধনাত্মক পরিমাণের প্রতিনিধিত্ব করে। যান বেছে নেওয়া হয়েছে SmallestNonzeroFloat64উদাহরণস্বরূপ।
আইয়ুব

12

এই ধ্রুবকের সাইন দিয়ে কিছু করার নেই। আপনি যদি দ্বিগুণটিকে তিনটি অংশের সম্মিলিত হিসাবে বিবেচনা করেন তবে এটি আরও বেশি অর্থবোধ করে: সাইন, এক্সপোন্টেন্ট এবং মান্টিসা। ডাবল।এম.এক্স.এল.এল.এলু আসলে মান্টিসা সবচেয়ে ক্ষুদ্রতম মানটি ধরে নিতে পারে যখন শূন্যে ফ্লাশ হওয়ার আগে এক্সপোশনালটি ন্যূনতম মান হয়। তেমনি MAX_VALUE ম্যান্টিসার সবচেয়ে বড় মান হিসাবে ধরা যেতে পারে যখন অনন্তরে ফ্লাশ হওয়ার আগে এক্সপোশনাল সর্বাধিক মান হয়।

এই দুটির আরও বর্ণনামূলক নাম হতে পারে লার্জ অ্যাবসুলিউট (ভার্বোসিতির জন্য অ-শূন্য যোগ করুন) এবং ক্ষুদ্রতম পরম মান (ভার্বোসিতির জন্য অ-অসীম যোগ করুন)।

পরীক্ষা করে দেখুন আইইইই 754 (1985) বিস্তারিত জানার জন্য মান। একটি সংশোধিত (২০০৮) সংস্করণ রয়েছে, তবে এটি কেবলমাত্র আরও ফর্ম্যাটগুলির সাথে পরিচয় করে যা এমনকি জাভা দ্বারা সমর্থিত নয় (কঠোরভাবে বলা জাভা এমনকি অন্যান্য উচ্চ স্তরের ভাষার মতো আইইইই 754 1985 এর কিছু বাধ্যতামূলক বৈশিষ্ট্যগুলির সমর্থন সমর্থন করে না)।


4

আমি ধরে নিচ্ছি যে বিভ্রান্তিকর নামগুলি সিতে ফিরে পাওয়া যাবে , যা FLT_MINসবচেয়ে ক্ষুদ্রতম ধনাত্মক সংখ্যা হিসাবে সংজ্ঞায়িত ।

জাভা-র মতো, যেখানে আপনাকে ব্যবহার করতে হবে -Double.MAX_VALUE, আপনাকে -FLT_MAXসিতে সবচেয়ে ছোট ভাসা পেতে ব্যবহার করতে হবে


3

একটি ডাবলের সর্বনিম্ন মান হ'ল এ Double.NEGATIVE_INFINITYকারণেই Double.MIN_VALUEএটি সত্যিকারের সর্বনিম্ন নয় Double

ডাবলগুলি যেমন ভাসমান পয়েন্ট সংখ্যা হয়, আপনি কেবলমাত্র বৃহত্তম সংখ্যা (নিম্ন নির্ভুলতার সাথে) বা নিকটতম সংখ্যা 0 (দুর্দান্ত নির্ভুলতার সাথে) রাখতে পারবেন।

আপনি যদি সত্যই অনন্ত নয় এমন ডাবলের জন্য সর্বনিম্ন মান চান তবে আপনি ব্যবহার করতে পারেন -Double.MAX_VALUE


1
এই ধারণার অনুসরণ করে, ডাবল ডাবলের জন্য সর্বাধিক মান? MAX_VALUE বা ডাবল।
mo-seph

Double.MIN_VALUEসমান হতে পারে Double.NEGATIVE_INFINITY
স্টার ব্লু

@ স্টারব্লু, না @ মো-সেফ, Double.POSITIVE_INFINITY+ ∞> সবকিছু এবং —∞ <সবকিছু
কলিন হেবার্ট

@ কলিন হবার্ট,> = এবং <= সুনির্দিষ্ট হতে হবে ;-)
আইয়ুব

আপনি সম্ভবত আমাকে ভুল বুঝেছেন। উন্নত বিশ্বে Double.MIN_VALUEসমান হবে Double.NEGATIVE_INFINITY, কারণ এরপরে এটি MIN_VALUEপূর্ণসংখ্যার ধরণের সাথে সামঞ্জস্য হয় । আমি সর্বাধিকের সাথে কম্পিউটিংয়ের জন্য যে কোনও পরিবর্তনশীল সূচনা করতে পারি MIN_VALUEএবং এটি সঠিক হবে correct Double.MIN_VALUEআমরা এখন একটি ভাল নাম হবে। (এবং অ্যানালগ্যালি এর জন্য MAX_VALUE।)
স্টারব্লিউ

2

ফ্লোটিং পয়েন্ট সংখ্যার কারণে স্পষ্টতা গুরুত্বপূর্ণ হিসাবে কোন হয় সঠিক পরিসীমা

/**
 * A constant holding the smallest positive nonzero value of type
 * <code>double</code>, 2<sup>-1074</sup>. It is equal to the
 * hexadecimal floating-point literal
 * <code>0x0.0000000000001P-1022</code> and also equal to
 * <code>Double.longBitsToDouble(0x1L)</code>.
 */

তবে আমি সম্মত হই যে এর সম্ভবত আরও ভাল কিছু নামকরণ করা উচিত ছিল :)


ঠিক আছে, তবে তারপরে কেন ডাবল.ম্যাক্স_ভ্যালু হবে তা বোধগম্য? এটি পরিষ্কারভাবে সংজ্ঞায়িত বলে মনে হচ্ছে।
mo-seph

কারণ এটির সর্বাধিক সুনির্দিষ্ট মান (অসীম নয়), এটির চিহ্নটির জন্য অ্যাকাউন্টিং নয়।
জন গার্ডনার

0

যেমন এটি নথিতে বলা হয়েছে ,

Double.MIN_VALUE একটি ধ্রুবক ক্ষুদ্রতম অধিষ্ঠিত হয় ইতিবাচক (- 1074), ডবল ধরনের অশূন্য মান 2 ^।

এখানে কৌশলটি আমরা একটি ভাসমান পয়েন্ট নম্বর উপস্থাপনা সম্পর্কে কথা বলছি। ডাবল ডেটা টাইপ একটি ডাবল-স্পষ্টতা 64-বিট আইইইই 754 ভাসমান পয়েন্ট। ভাসমান পয়েন্টগুলি সহজেই 1,000,000,000,000 থেকে 0.0000000000000001 পর্যন্ত সংখ্যার প্রতিনিধিত্ব করে এবং স্কেলের উভয় প্রান্তে নির্ভুলতা (অঙ্কের সংখ্যা) সর্বাধিকতর করার সময়। (আরও পড়ুন জন্য এই )

অংশক, সবসময় একটি ধনাত্মক সংখ্যা , ফ্লোটিং পয়েন্ট সংখ্যা এতগুলি অর্থপূর্ণ অঙ্ক ঝুলিতে। উদ্দীপকটি মূলাঙ্কের ধনাত্মক বা নেতিবাচক শক্তি নির্দেশ করে যে ম্যান্টিসা এবং চিহ্নটি দ্বারা গুণিত হওয়া উচিত। চার উপাদান হিসাবে একত্রিত করা হয় অনুসরণ ফ্লোটিং পয়েন্ট মান জন্য।

এখানে চিত্র বর্ণনা লিখুন

ভাবুন যে মানচিত্রটি প্রতিনিধিত্ব করতে পারে এমন ন্যূনতম মান হ'ল MIN_VALUE। একটি ভাসমান পয়েন্ট উপস্থাপনের সর্বনিম্ন মান হিসাবে এটি ব্যবহার করে প্রতিনিধিত্ব করা যায় এমন সর্বনিম্ন মাত্রা। (যদিও এই বিভ্রান্তি এড়াতে আরও ভাল নাম ব্যবহার করা যেতে পারে)

123> 10> 1> 0.12> 0.012> 0.0000123> 0.000000001> 0.0000000000000001


নীচে কেবল এফওয়াইআই রয়েছে।

ডাবল-স্পষ্টতা ভাসমান-পয়েন্ট 2 ^ -1074 থেকে 2 ^ 1023 এর মধ্যে দুটির 2,098 শক্তি উপস্থাপন করতে পারে। দুটির অস্বীকৃত শক্তি হ'ল 2 ^ -1074 থেকে 2 ^ -1023; দুটির স্বাভাবিককরণের ক্ষমতাগুলি হ'ল 2 ^ -1022 থেকে 2 ^ 1023 এর মধ্যে। পড়ুন এই এবং এই


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