বৃহত্তম সংখ্যার যা একটি ডাবল মধ্যে সঞ্চয় করা যেতে পারে


উত্তর:


506

নির্ভুলতা হারানো ছাড়াই সবচেয়ে বড় / বৃহত্তম পূর্ণসংখ্যা যা ডাবল হিসাবে সংরক্ষণ করা যেতে পারে এটি দ্বিগুণের বৃহত্তম সম্ভাব্য মানের সমান। এটি, DBL_MAXবা আনুমানিক 1.8 × 10 308 (যদি আপনার ডাবলটি আইইইই 754 64-বিট ডাবল হয়)। এটি একটি পূর্ণসংখ্যা এটি ঠিক উপস্থাপন করা হয়। আপনি আরো কি করতে চান?

এগিয়ে যান, আমাকে জিজ্ঞাসা করুন বৃহত্তম পূর্ণসংখ্যাটি কী, যেমন এটি এবং সমস্ত ছোট পূর্ণসংখ্যার নির্ভুলতা হারানো ছাড়াই আইইইই 64৪-বিট ডাবলসে সংরক্ষণ করা যেতে পারে। একটি আইইইই 64-বিট ডাবলটিতে ম্যান্টিসার 52 বিট রয়েছে, তাই আমি মনে করি এটি 2 53 :

  • 2 53 + 1 সংরক্ষণ করা যায় না, কারণ শুরুতে 1 এবং শেষে 1 এর মধ্যে অনেকগুলি শূন্য থাকে।
  • 2 চেয়ে কম কিছু 53 52 বিট স্পষ্টভাবে অংশক সঞ্চিত সঙ্গে, সংরক্ষণ করা যেতে পারে, এবং তারপর কার্যকরী এক্সপোনেন্ট আপনি অন্য একটি দান।
  • 2 53 স্পষ্টত সংরক্ষণ করা যেতে পারে, যেহেতু এটি 2 একটি ছোট শক্তি।

বা এটি দেখার অন্য কোনও উপায়: একবার পক্ষপাতদুষ্টকে ঘুরিয়ে নিয়ে যাওয়া, এবং চিহ্নটির চিহ্নটিকে প্রশ্নের অপ্রাসঙ্গিক হিসাবে উপেক্ষা করার পরে, দ্বিগুণ দ্বারা সঞ্চিত মান 2 এর পাওয়ার, এবং 52-বিট পূর্ণসংখ্য 2 দিয়ে গুণিত হয় সূচক - 52 । সুতরাং 52২ এর সাথে আপনি সমস্ত মান 2 2 52 থেকে 2 53  - 1 পর্যন্ত সংরক্ষণ করতে পারেন তারপরে 53 টির পরে আপনি পরবর্তী নম্বরটি 2 53 এর পরে 2 53 + 1 × 2 রাখতে পারবেন 52 - 53 । সুতরাং নির্ভুলতা হ্রাস প্রথমে 2 53 + 1 এর সাথে ঘটে ।


126
+1 উত্তম চাকরির বিষয়টি লক্ষ্য করে যে প্রশ্নটির অর্থ আসলে জিজ্ঞাসাবাদী কী করতে চেয়েছিলেন এবং উভয় উত্তর সরবরাহ করে ("প্রযুক্তিগতভাবে সঠিক" এবং "সম্ভবত প্রত্যাশিত") বোঝায় না।
পাস্কেল কুয়াক

62
বা "তাদের সম্পর্কে অশান্তি" এবং "তাদের সাহায্য করার চেষ্টা করা" যেমন আমি তাদের কল করি :-)
স্টিভ জেসোপ

8
আমি টনি পোনিকে প্রণাম করলাম, অন্য কেউ নেই।
স্টিভ জেসোপ

11
আপনার অর্থ "সমস্ত ছোট ছোট পূর্ণসংখ্যার" নয়, আপনি সমান বা তার চেয়ে কম মাত্রার সমস্ত পূর্ণসংখ্যার অর্থ। কারণ 2 ^ 53 এর নীচে অনেকগুলি নেতিবাচক পূর্ণসংখ্যা রয়েছে এবং ডাবলকে ঠিক উপস্থাপন করা যায় না।
দক্ষিণী আতিথেয়তা

13
আমি ছোট বলতে চাইছি, এবং আমি যখন ছোট বলি তখন ঠিক এইটাই বোঝায় :-) -1,000,000 1 এর চেয়ে কম তবে এটি ছোট নয়।
স্টিভ জেসপ 13

77

9007199254740992 (এটি 9,007,199,254,740,992) কোনও গ্যারান্টি ছাড়াই :)

কার্যক্রম

#include <math.h>
#include <stdio.h>

int main(void) {
  double dbl = 0; /* I started with 9007199254000000, a little less than 2^53 */
  while (dbl + 1 != dbl) dbl++;
  printf("%.0f\n", dbl - 1);
  printf("%.0f\n", dbl);
  printf("%.0f\n", dbl + 1);
  return 0;
}

ফলাফল

9007199254740991
9007199254740992
9007199254740992

7
ধরে নিচ্ছি এটি 'নিকট' হবে তবে এটি 2 ^ N এর চেয়ে কম হবে, তারপরে একটি দ্রুত পরীক্ষা হবে double dbl = 1; while (dbl + 1 != dbl) dbl *= 2; while (dbl == --dbl);যা একই ফলাফল দেয়
সেফ

4
@ সেফ কি ...? কোন? while (dbl == --dbl)চিরকালের জন্য লুপ করা বা না একেবারে না। :) (এই ক্ষেত্রে, একেবারেই নয়, যেহেতু এটি 2 ^ এন)। আপনাকে নীচের থেকে এটির কাছে যেতে হবে। এটি প্রকৃতপক্ষে প্রত্যাশিত ফলাফলের চেয়েও কম ফলাফল তৈরি করবে (যেহেতু এক চেকটি যখন লুপ হ্রাস dbl)। এবং এটি কার্যকর করার আদেশের উপর নির্ভর করে, যদি বাম পাশের মূল্যায়ন করার আগে বা পরে হ্রাস করা হয় (যা আমি জানি যতক্ষণ অপরিজ্ঞাত)। যদি এটি পূর্ব হয় তবে এটি সর্বদা সত্য এবং চিরতরে লুপ হয়ে যাবে।
ফলস্ট্রো

10
হতে পারে যে 2 ^ 53 = 9,007,199,254,740,992 কোথাও নির্দেশ করুন।
Xonatron

1
এটি নিয়ে তর্ক করা শক্ত! দুর্দান্ত পরীক্ষা
ম্যাটএম

ব্যবহার করে একটি দুর্বলতা while (dbl + 1 != dbl) dbl++;যে dbl + 1 != dblব্যবহার মূল্যায়ন পারে long doubleগণিত - বিবেচনা FLT_EVAL_METHOD == 2। এটি একটি অসীম লুপে শেষ হতে পারে।
chux - মনিকা পুনরায় ইনস্টল করুন

25

উইকিপিডিয়ায় আইইইই 754 এর লিঙ্কের সাথে একই প্রসঙ্গে বলতে হবে :

একটি সাধারণ কম্পিউটার সিস্টেমে, একটি 'ডাবল নির্ভুলতা' (-৪-বিট) বাইনারি ভাসমান-পয়েন্ট সংখ্যাটির 53 টি বিট (যার মধ্যে একটি অন্তর্ভুক্ত) এর সহগ থাকে, 11 বিটের এক্সপোজন এবং একটি চিহ্ন বিট।

2 ^ 53 মাত্র 9 * 10 ^ 15 এর উপরে।


@ স্টিভ জেসোপ কমবেশি, এটিই আমি বলছি। আমি এমন হার্ডওয়্যার সিস্টেমেও মুখোমুখি হয়েছি যার একটি এফপিইউ নেই যা এখনও আইইইই-কমপ্লায়েন্ট হওয়া দরকার, যাতে 8 মাস পরে এখানে ফিরে এসে যদি একই তথ্যের প্রয়োজন হয় তবে "সাধারণ সিস্টেম" জিনিসগুলি আমাকে সত্যিই সহায়তা না করে আমার 68 কে-ভিত্তিক মাইক্রোকন্ট্রোলার (ধরে নিচ্ছি এটিতে কোনও এফপিইউ নেই ... আমি মনে করতে পারি না)।
সান জ্যাকিন্টো 18

14
@ সান জ্যাকিন্টো - "এটি অকেজো" অযথা কঠোর। উত্তরটি বেশ কার্যকর, ঠিক তেমন কার্যকর নয় যদি এটিতে এমন মন্তব্য অন্তর্ভুক্ত করা হত যে সাধারণ কম্পিউটার সিস্টেমগুলি সত্যই আইইইই 754 পুনরায় প্রচার করতে পারে।
স্টিফেন সি স্টিল 18

@ স্টেফেন সি স্টিল, আসলে আপনি সঠিক। আমার দৃশ্যের অধীনে, পরবর্তী সময়ে এটিতে ফিরে এসে আইইইই সর্বাধিক সন্ধানের জন্য, একটি 'সাধারণ সিস্টেম' কী তা অসম্ভব অস্পষ্ট, তবে এই অভিযোগের উত্তরে এখনও যোগ্যতা রয়েছে।
সান জ্যাকিন্টো 18

20

সবচেয়ে বড় পূর্ণসংখ্যা যা আইইইই 754 ডাবল (bit৪-বিট) তে উপস্থাপিত হতে পারে টাইপটি যে ধরণের প্রতিনিধিত্ব করতে পারে তার বৃহত্তম মানটির সমান, যেহেতু সেই মানটিই একটি পূর্ণসংখ্যা।

এটি এমনভাবে উপস্থাপিত হয় 0x7FEFFFFFFFFFFFFFযা গঠিত:

  • 1 (negativeণাত্মক) এর পরিবর্তে সাইন বিট 0 (ধনাত্মক)
  • 0x7FE(2046 যা পক্ষপাত বিয়োগের পরে 1023 প্রতিনিধিত্ব করে) সর্বাধিক ব্যয়কারী ( 0x7FF2047 যা একটি NaNবা অনন্ত নির্দেশ করে )।
  • সর্বাধিক মান্টিসা 0xFFFFFFFFFFFFFযা 52 বিট সমস্ত 1।

বাইনারি ভাষায় মানটি অন্তর্নিহিত 1 এবং ম্যান্টিসা থেকে আরও 52 জন অনুসরণ করে, তারপরে ব্যয়কারী থেকে 971 জিরো (1023 - 52 = 971)।

সঠিক দশমিক মান হ'ল:

179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368

এটি প্রায় 1.8 x 10 308


এটির মধ্যে সবচেয়ে বড় মানটি যা এটির সাথে শূন্যের প্রতিনিধিত্বযোগ্য সমস্ত মানের সাথে প্রতিনিধিত্ব করতে পারে?
অ্যারন ফ্রেঙ্ক

@ অ্যারোনফ্রেঙ্ক প্রশ্নটি প্রতিনিয়ত প্রতিনিধিত্ব সম্পর্কে জিজ্ঞাসা করেনি, তবে সেই ভিন্ন প্রশ্নের উত্তর এখানে অন্যান্য বেশিরভাগ উত্তরের অন্তর্ভুক্ত করা হয়েছে, বা এমনকি ভুলভাবে প্রকৃত উত্তর হিসাবে দেওয়া হয়েছে। এটি 2⁵³ (53 টির শক্তিতে)।
সাইমন বিবার

8

আপনাকে ম্যান্টিসার আকারটি দেখতে হবে। একটি আইইইই 754 64 বিট ভাসমান পয়েন্ট সংখ্যা (যার মধ্যে 52 বিট, প্লাস 1 সূচিত) সঠিকভাবে 2 ^ 53 এর চেয়ে কম বা সমান এর নিখুঁত মান সহ পূর্ণসংখ্যার প্রতিনিধিত্ব করতে পারে।


8
এটি ঠিক 2 ^ 53 এরও প্রতিনিধিত্ব করতে পারে :-)
স্টিভ জেসোপ

6

2
এই উত্তরটি উদ্ধৃতি দিয়ে আরও ভাল হবে।
সান জ্যাকিন্টো 18

2
@ কার্ল ভাল, যদি পূর্ণসংখ্যার বাম দিকের বাইরে শূন্য থাকে তবে তা অবশ্যই সঞ্চিত থাকে।
উইলহেল্ম

4
@all আপনি downvoters: 1,7976931348623157 × 10 ^ 308 হয় একটি সঠিক পূর্ণসংখ্যা। আপনার কি সবাইকে প্রতিকারের গণিতের ক্লাসে অংশ নেওয়া দরকার বা কিছু আছে ??
ড্যান ছাঁচনির্মাণ

6
আমরা আশাবাদী নিমজ্জিত উত্তরটির আলোচনায় এখানে শব্দার্থবিদ্যায় নেমেছি। সত্য, এই সংখ্যাটি হুবহু উপস্থাপন করা যেতে পারে এবং এর মাধ্যমে প্রশ্নের চিঠিটি পূরণ করে। তবে আমরা সকলেই জানি এটি নিকটবর্তী মিসসের সমুদ্রের যথার্থতার একটি ক্ষুদ্র দ্বীপ, এবং আমাদের মধ্যে বেশিরভাগই সঠিকভাবে প্রশ্নটি ব্যাখ্যা করেছিল যার অর্থ হল "সবচেয়ে বড় সংখ্যা যার বাইরে নির্ভুলতা ড্রেনে নেমে যায়।" আহ, কমপ্সসি হুবহু বিজ্ঞান বলে কি অবাক হয় না? :)
কার্ল স্মট্রিক্জ

2
@ ড্যানমোল্ডিংং 1.7976931348623157 × 10 ^ 308 একটি নির্ভুল পূর্ণসংখ্যা, তবে আমি নিশ্চিত যে এই নির্দিষ্ট পূর্ণসংখ্যটি ঠিক দ্বিগুণে সংরক্ষণ করা যায় না।
পাস্কেল কুয়াক

2

DECIMAL_DIGএর থেকে <float.h>কমপক্ষে একটি যুক্তিসঙ্গত অনুমান দেওয়া উচিত। যেহেতু দশমিক সংখ্যা নিয়ে কাজ করে এবং এটি সত্যিই বাইনারিতে সঞ্চিত হয়, আপনি সম্ভবত নির্ভুলতা না হারিয়ে কিছুটা বড় কিছু সঞ্চয় করতে পারেন তবে ঠিক কতটা বলা শক্ত। আমি মনে করি আপনার এটিকে নির্ধারণ করতে সক্ষম হওয়া উচিত FLT_RADIXএবং DBL_MANT_DIGতবে আমি নিশ্চিত না যে আমি ফলাফলটি পুরোপুরি বিশ্বাস করব।


এটি প্রশ্নের উত্তর দেয় না। কোনও লেখকের সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন leave
মাইকেলচিরিকো

@ মিশেলচিরিকো: এটি তার জিজ্ঞাসা করতে চেয়েছিলেন এমন প্রশ্নের উত্তর দেয়, যেমনটি উত্তরটি লেখার সময় উপস্থিত ছিল। প্রশ্নের সম্পাদনার ইতিহাস দেখতে, প্রশ্নের নীচে "জুন 19 '14 এ 11:40 এ" লিঙ্কটি ক্লিক করুন।
জেরি কফিন

আপনার উত্তরটি একটি মন্তব্যের মতো পড়েছে কারণ মনে হচ্ছে যে এটির যে আত্মবিশ্বাস / কর্তৃত্বের অভাব রয়েছে তার উত্তর ("কমপক্ষে একটি যুক্তিসঙ্গত দেওয়া উচিত ..." "ঠিক কতটা ... বলা মুশকিল" "আমি মনে করি ... ")। জিজ্ঞাসা করা প্রশ্ন বা উত্তর সম্পর্কে আমার কোনও দক্ষতা নেই, তাই আমি ভুল হতে পারি; কেবলমাত্র আমার দুটি সেন্ট দেওয়া যা আমাকে এখানে পর্যালোচনা সারিতে পাঠানো হয়েছিল (যার অর্থ অন্যান্য ব্যবহারকারীরা আপনার উত্তরটিকে পতাকাঙ্কিত করেছে)।
মাইকেলচিরিকো

1
@ মিশেলচিরিকো: তাদের ভাল থাকতে পারে - আপনি কেবল সেই বিষয় থেকে দূরে আছেন যিনি বিষয় সম্পর্কে অজ্ঞ থাকেন; যা আপনাকে অস্বাভাবিক করে তোলে তা হ'ল আপনি এটি সম্পর্কে অজ্ঞ nt সি-তে ভাসমান পয়েন্ট সংখ্যাটির যথার্থতা সম্পর্কে বেশিরভাগ উত্তরগুলি কেবল ভুল হয়ে যায়। উদাহরণস্বরূপ, তাদের মধ্যে অনেকগুলি (বেশিরভাগ) মিথ্যা অনুমানের উপর ভিত্তি করে যে কোনও doubleনির্দিষ্ট আইইইই টাইপের সাথে সরাসরি সম্পর্কিত, তবে এটির প্রয়োজন হয় না, এবং যখন এই উত্তরটি লেখা হয়েছিল তখন প্রশ্নটি কোনও নির্দিষ্ট আইইইই টাইপের উল্লেখ করেনি।
জেরি কফিন 0

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