آزمایشگاه آزاد؛ بدون نیاز به ورود
۰٫۱ در رایانه چهطور ذخیره میشه؟
عددهای دهدهی برای ما آشنا هستن، اما رایانه مقدارها رو با بیتهای دودویی نگه میداره. بعضی کسرها در دودویی پایان نمیگیرن و در قالب ۳۲بیتی به نزدیکترین مقدار قابل ذخیره گرد میشن.
آزمایش رو شروع کنبا ورودی ۰٫۱ شروع کن. خطای مطلق رو کنار مقدار ذخیرهشده بخون؛ کارت درصد خطا ممکنه برای این خطای خیلی کوچک ۰٪ نشون بده.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
ورودی ۰٫۱ رو بررسی کن
عدد ورودی رو روی ۰٫۱ بذار و اجرا رو بزن؛ بیتهای علامت، نما و مانتیسا رو نگاه کن.
حدست چیه؟ مقدار ذخیرهشده دقیقاً ۰٫۱ میمونه یا کمی باهاش فرق میکنه؟
توضیح نتیجه رو ببین
این مدل ۰٫۱ رو به حدود ۰٫۱۰۰۰۰۰۰۰۱۵ گرد میکنه و خطای مطلق رو حدود ۰٫۰۰۰۰۰۰۰۰۱۵ نشان میده. درصد خطای محاسبهشده هم کوچیکتر از چیزییه که قالب کارت درصد با دقت فعلی نمایش بده؛ برای همین آن کارت ۰٪ دیده میشه.
۰٫۲ رو با ۰٫۱ بسنج
ورودی رو از ۰٫۱ به ۰٫۲ تغییر بده و اجرا کن؛ مقدار ذخیرهشده و خطای مطلق رو با اجرای قبلی مقایسه کن.
حدست چیه؟ چون ورودی دو برابر شد، آیا خطای مطلق هم دقیقاً دو برابر میشه؟
توضیح نتیجه رو ببین
مقدار ذخیرهشده به حدود ۰٫۲۰۰۰۰۰۰۰۳ و خطای مطلق به حدود ۰٫۰۰۰۰۰۰۰۰۳ میرسه؛ در این دو نمونه، خطای مطلق تقریباً دو برابر شده. این نسبت برای هر عددی ثابت نیست و کارت درصد خطا هنوز ۰٪ گرد میشه.
ورودی ۰٫۳ رو جداگانه ذخیره کن
عدد ورودی رو روی ۰٫۳ بذار و اجرا کن. مقدار ذخیرهشده رو با خود ورودی مقایسه کن؛ این صفحه دو ورودی رو با هم جمع نمیکنه.
حدست چیه؟ آیا ۰٫۳ هم دقیقاً در قالب ۳۲بیتی جا میگیره؟
توضیح نتیجه رو ببین
خیر؛ مقدار ذخیرهشدهی این مدل حدود ۰٫۳۰۰۰۰۰۰۱۱۹ و خطای مطلق حدود ۰٫۰۰۰۰۰۰۰۱۱۹ است. این اجرا فقط نمایشِ ورودی ۰٫۳ رو بررسی میکنه؛ محاسبهی ۰٫۱ + ۰٫۲ در این ویجت وجود نداره.
پشت این حرکت چه خبره؟
بعضی کسرهای دهدهی در دودویی تکرار میشن
0.1_10 = 0.0001100110011..._2
کسر ۰٫۱ در مبنای ده تکه، اما در مبنای دو رشتهای تکراری داره. چون نمایش ۳۲بیتی جا برای همهی بیتهای تکراری نداره، نزدیکترین الگوی قابل ذخیره انتخاب میشه.
۳۲ بیت میان سه بخش تقسیم میشن
32 = 1 + 8 + 23
در قالب ممیز شناور تکدقت، یک بیت برای علامته، هشت بیت برای نما و ۲۳ بیت برای بخش کسری ذخیره میشه. برای عددهای نرمال، یک رقم آغازینِ ۱ هم بهطور ضمنی در دقت معنا دارد و جداگانه ذخیره نمیشه.
خطای مطلق با درصد خطا فرق داره
e = |x - x_32|; e_rel = e/|x|
خطای مطلق فاصلهی مقدار ورودی و مقدار ذخیرهشده است. خطای نسبی این فاصله رو نسبت به اندازهی ورودی میسنجه. در ۰٫۱، درصد خطا خیلی کوچیکه؛ قالب کارت درصدِ این ویجت اون رو به صفر گرد میکنه، اما خطای مطلق صفر نیست.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
اگه ۰٫۱ دقیق ذخیره نمیشه، چرا رایانه همچنان میتونه باهاش حساب کنه؟
برای بیشتر محاسبهها لازم نیست هر کسر دهدهی دقیقاً در دودویی جا بشه؛ سیستم مقدار نزدیک و قابل نمایش رو نگه میداره. در این مدل، ۰٫۱ به ۰٫۱۰۰۰۰۰۰۰۱۵ گرد شده و اختلافش حدود یکونیم میلیاردمه. این صفحه فقط گردکردن یک ورودی رو نشان میده، نه جمع دو عدد.
سؤالهای رایج
چرا ۰٫۱ در نمایش دودویی دقیق پایان نمیگیره؟
چون ۰٫۱ برابر یکدهمه و یکدهم به کسر دودوییِ پایانپذیر تبدیل نمیشه؛ بیتها ادامه پیدا میکنن. قالب ۳۲بیتی فقط تعداد محدودی از اونها رو ذخیره میکنه و مقدار رو گرد میکنه.
مقدار ذخیرهشده یعنی رایانه اشتباه حساب کرده؟
نه؛ این اختلاف نتیجهی تقریب در یک قالب محدود است. در بسیاری از محاسبهها خطا خیلی کوچک میمونه، اما اگر لازم باشه باید دقت و روش عددی مناسب رو انتخاب کرد.
این شبیهساز جمع ۰٫۱ و ۰٫۲ رو حساب میکنه؟
نه؛ ورودیاش فقط یک عدده و همون رو به قالب ۳۲بیتی تبدیل میکنه. میتونی ۰٫۱، ۰٫۲ و ۰٫۳ رو جدا جدا بررسی کنی، اما این سه اجرا یک عملیات جمع نیستن.
چرا درصد خطا صفره وقتی خطای مطلق صفر نیست؟
درصد خطا خیلی کوچیکه و کارت درصد در این ویجت اعشار کافی برای نشاندادنش نداره؛ مقدارش به ۰٪ گرد میشه. مقدار ذخیرهشده و کارت خطای مطلق رو هم مقایسه کن.
همهی رایانهها دقیقاً همین قالب ۳۲بیتی رو دارن؟
نه؛ این صفحه مشخصاً یک قالب ۳۲بیتی رو نمایش میده. قالبها و تعداد بیتهای مورد استفاده در محاسبات میتونن فرق کنن، پس نباید نتیجهی همین نمونه رو به همهی برنامهها تعمیم داد.