اعداد ممیز شناور دودویی
Binary Floating Pointاعداد ممیز شناور دودویی یک الگوریتم از دسته ریاضیات است. این الگوریتم ریاضی یک خاصیت، فرمول یا recurrence را به یک فرایند محاسباتی مشخص تبدیل میکند.
اول این مفهوم را در ذهن نگه دار
اعداد ممیز شناور دودویی یک الگوریتم از دسته ریاضیات است. این الگوریتم ریاضی یک خاصیت، فرمول یا recurrence را به یک فرایند محاسباتی مشخص تبدیل میکند.
چطور کار میکند؟ ساده و مرحلهای
برای فهم اعداد ممیز شناور دودویی ابتدا invariant و stateای را پیدا کن که در هر مرحله تغییر میکند.
پیچیدگی معمول این موضوع Varies by implementation / input constraints است؛ آن را از روی loop، recursion، عملیات ساختمان داده و constraintهای ورودی تحلیل کن، نه فقط از حفظ.
الگوریتم را به شکل تصمیمهای پشت سر هم بخوان
خاصیت یا رابطه ریاضی را واضح بگو.
محدوده اعداد و representation را مشخص کن.
رابطه را به computation تبدیل و precision/overflow را بررسی کن.
یک ورودی خیلی کوچک را دستی اجرا کن و بعد از هر عملیات مهم state را بنویس. برای اعداد ممیز شناور دودویی هدف این است که invariant را ببینی، نه اینکه کد را حفظ کنی.
Varies by implementation / input constraints
این Complexity را حفظی نگو. اول مشخص کن مربوط به کدام عملیات یا بعد ورودی است؛ بعد هزینه را از روی loopها، عمق recursion، عملیات ساختمان داده و فرضهای preprocessing نتیجه بگیر.
موارد مناسب
- وقتی خاصیت ریاضی میتواند brute force را حذف کند از آن استفاده کن.
کجا معمولاً اشتباه میکنیم؟
- نادیده گرفتن precision ممیز شناور یا دامنه integer.
- استفاده از فرمول خارج از فرضهای معتبرش.
مدل یک پاسخ حرفهای
برای توضیح حرفهای اعداد ممیز شناور دودویی در مصاحبه، مسئلهای که حل میکند، invariant، state یا ساختمان داده اصلی، پیچیدگی Varies by implementation / input constraints و شرایطی که باعث میشود روش دیگری انتخاب کنی را بگو.
اعداد ممیز شناور دودویی چه مسئلهای را حل میکند؟
اعداد ممیز شناور دودویی یک الگوریتم از دسته ریاضیات است. این الگوریتم ریاضی یک خاصیت، فرمول یا recurrence را به یک فرایند محاسباتی مشخص تبدیل میکند.
درباره Complexity چه چیزی باید بگویم؟
پیچیدگی معمول اینجا Varies by implementation / input constraints است، اما جواب کامل باید این هزینه را به representation، constraint ورودی و عملیات غالب وصل کند.
رایجترین اشتباه چیست؟
نادیده گرفتن precision ممیز شناور یا دامنه integer.