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

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

تفاوت دقت اعداد حقیقی در ماشین‌های مختلف

0 امتیاز
459 نمایش

کد C++ نوشته شده‌ی زیر قابل حمله به این معنی که اگه ببریمش روی هر ماشینی که کامپایلر C++ داره، کامپایل می‌شه و کد قابل اجرا روی اون ماشین رو تولید می‌کنه.

#include<iostream>
int main()
{
    float f;
    cin>>f;
    while(f/2.0 > 0) f = f/2.0;
    return 0;
}

حالا سوال اینجاست که با توجه به دقت عدد اعشاری روی ماشین‌های مختلف مقادیر مختلفی که روی ماشین‌های مختلف به دست می‌آد فرق داره یا نه این دقت به مقادیر به دست اومده ربطی نداره؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده سه شنبه ۱۳ فروردین ۱۳۹۲ در C++ توسط prodo  
بازتگ شده پنجشنبه ۱۷ مرداد ۱۳۹۲ توسط prodo

1 پاسخ

0 امتیاز

از اونجایی که عدد اعشاری در C++ یع نوع داده‌ی مقداری (value type) هست، دقت عدد اعشاری مثل بقیه‌ی خصوصیاتش بستگی به پیاده‌سازی عدد اعشاری در پردازنده‌ی مورد استفاده داره.

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

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده چهارشنبه ۱۵ خرداد ۱۳۹۲ توسط prodo