اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تاریخچه‌ی ویرایش برای ارسال #1836

چهارشنبه ۱۹ تیر ۱۳۹۲ ارسال شده توسط prodo

با توجه به این که در `C++` از `IEEE754` استفاده می‌شه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.

دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اون‌جا که تعداد ارقام توان برای اعداد اعشاری در بازه‌های مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازه‌های مختلف تفاوتی نداره.
دوشنبه ۱۴ مرداد ۱۳۹۲ ویرایش شده توسط prodo

با توجه به این که در `C++` از `IEEE754` استفاده می‌شه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.

دقت <strike>دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اون‌جا که تعداد ارقام توان برای اعداد اعشاری در بازه‌های مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازه‌های مختلف تفاوتی نداره. </strike>

به طور کلی دقت اعداد اعشاری در بازه‌های کوچک‌تر بیشتر و در بازه‌های بزرگ‌تر کمتر هست. فرض کنیم یک عدد به صورت ممیز شناور ذخیره شده دقت به صورت زیر محاسبه می‌شه

precision = 2^{p-s+1}
که `s` تعداد ارقام بامعنی در اون نوع داده‌ی ممیز شناور و `p` توان به دست اومده قبل از تاثیر آفست هست.
یکشنبه ۱۹ آبان ۱۳۹۲ ویرایش شده توسط prodo

با توجه به این که در `C++` از `IEEE754` استفاده می‌شه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.

<strike>دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اون‌جا که تعداد ارقام توان برای اعداد اعشاری در بازه‌های مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازه‌های مختلف تفاوتی نداره. </strike>

به طور کلی دقت اعداد اعشاری در بازه‌های کوچک‌تر بیشتر و در بازه‌های بزرگ‌تر کمتر هست. فرض کنیم یک عدد به صورت ممیز شناور ذخیره شده دقت به صورت زیر محاسبه می‌شه

precision = 2^{p-s+1}
که `s` تعداد ارقام بامعنی در اون نوع داده‌ی ممیز شناور و `p` توان به دست اومده قبل از تاثیر آفست هست.

در روش ذخیره‌سازی ممیز شناور، اعداد با `n` رقم اعشار در نزدیکی صفر به هم نزدیک‌تر هستند تا اعداد با `n` رقم اعشار در نزدیکی یک و اعداد با `n` رقم اعشار در نزدیکی یک به هم نزدیک‌تر هستند تا اعداد با `n` رقم اعشار در نزدیکی دو. بنابراین

**قاعده‌ی کلی**: در ممیز شناور هرچه اعداد بزرگ‌تر می‌شوند (در صورتی که از نظر ریاضی دقت آن‌ها ثابت باشد) از نظر پیاده‌سازی IEEE754 دقت آن‌ها کمتر می‌شود.

**مثال**: عدد `1.123412341234` از نظر ریاضی دقتی برابر `1234.123412341234` دارد اما از نظر پیاده‌سازی ممیز شناور دقت عدد بزرگ‌تر کمتر خواهد بود.