محاسبات کامپیوتری [ ویرایش ]

اکثر ماشین‌حساب‌ها، مانند تگزاس اینسترومنتز TI-86 ، زمانی که کاربر یا برنامه‌ای در حال اجرا تلاش می‌کند بر صفر تقسیم کند، اجرا را متوقف می‌کند و یک پیام خطا نشان می‌دهد.

تقسیم بر صفر در برنامه ماشین حساب اندروید 2.2.1 نماد بی نهایت را نشان می دهد.

استاندارد ممیز شناور IEEE که تقریباً توسط تمام واحدهای ممیز شناور مدرن پشتیبانی می‌شود ، مشخص می‌کند که هر عملیات حسابی ممیز شناور ، از جمله تقسیم بر صفر، یک نتیجه کاملاً تعریف شده دارد. استاندارد از صفر علامت دار ، و همچنین بی نهایت و NaN ( نه یک عدد ) پشتیبانی می کند. دو صفر وجود دارد: +0 ( صفر مثبت ) و −0 ( صفر منفی ) که هر گونه ابهامی را هنگام تقسیم برطرف می کند. در محاسبات IEEE 754 ، ÷ +0 بی نهایت مثبت است وقتی a مثبت است، بی نهایت منفی وقتی a است.منفی است و NaN زمانی که a = ± 0 باشد. در عوض، علائم بی نهایت با تقسیم بر 0 تغییر می کند.

توجیه این تعریف حفظ علامت نتیجه در صورت ریزش حسابی است. [11] به عنوان مثال، در محاسبات تک دقیق 1/( x /2)، که در آن x = 2± 149 ، محاسبات x /2 زیر جریان می‌یابد و 0± را با علامت تطبیق x تولید می‌کند ، و نتیجه ±∞ خواهد بود. با علامت تطبیق x . علامت با نتیجه دقیق ± 2 150 مطابقت دارد، اما بزرگی نتیجه دقیق برای نمایش بیش از حد بزرگ است، بنابراین از بی نهایت برای نشان دادن سرریز استفاده می شود.

تقسیم عدد صحیح بر صفر معمولاً متفاوت از ممیز شناور است زیرا هیچ نمایش عدد صحیحی برای نتیجه وجود ندارد. برخی از پردازنده‌ها در صورت تلاش برای تقسیم یک عدد صحیح بر صفر، استثنا ایجاد می‌کنند، اگرچه برخی دیگر به سادگی ادامه می‌دهند و نتیجه نادرستی برای تقسیم ایجاد می‌کنند. نتیجه به نحوه اجرای تقسیم بستگی دارد و می تواند صفر یا گاهی اوقات بزرگترین عدد صحیح ممکن باشد.

به دلیل نتایج جبری نادرست تخصیص هر مقدار به تقسیم بر صفر، بسیاری از زبان‌های برنامه‌نویسی رایانه (از جمله زبان‌هایی که توسط ماشین‌حساب‌ها استفاده می‌شوند ) به صراحت اجرای عملیات را ممنوع می‌کنند و ممکن است برنامه‌ای را که آن را انجام می‌دهد به‌طور پیش از موعد متوقف کنند، و گاهی اوقات «تقسیم بر صفر» را گزارش می‌کنند. "خطا در این موارد، اگر رفتار خاصی برای تقسیم بر صفر مورد نظر باشد، شرط باید صریحاً آزمایش شود (مثلاً با استفاده از دستور if ). برخی از برنامه ها (به ویژه آنهایی که از محاسبات نقطه ثابت استفاده می کننددر جایی که هیچ سخت افزار اختصاصی ممیز شناور در دسترس نیست) از رفتاری مشابه استاندارد IEEE استفاده می کند و از اعداد مثبت و منفی بزرگ برای تقریب بی نهایت استفاده می کند. در برخی از زبان های برنامه نویسی، تلاش برای تقسیم بر صفر منجر به رفتار نامشخص می شود . زبان برنامه نویسی گرافیکی Scratch 2.0 و 3.0 که در بسیاری از مدارس استفاده می شود، بسته به علامت سود، Infinity یا -Infinity را برمی گرداند.

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

اکثر ماشین‌حساب‌ها یا یک خطا برمی‌گردانند یا بیان می‌کنند که 1/0 تعریف نشده است. با این حال، برخی از ماشین حساب های نموداری TI و HP (1/0) 2 تا ∞ را ارزیابی می کنند.

مایکروسافت Math و MathematicaComplexInfinity با 1/0 بازگشته اند. Maple و SageMath یک پیغام خطا برای 1/0 و infinity برای 1/0.0 برمی‌گردانند (0.0 به این سیستم‌ها می‌گوید که از محاسبات ممیز شناور به جای محاسبات جبری استفاده کنند).

برخی از ماشین‌حساب‌های مدرن در موارد خاص، تقسیم بر صفر را امکان‌پذیر می‌کنند، جایی که برای دانش‌آموزان مفید خواهد بود و احتمالاً ریاضیدانان در زمینه آن درک می‌کنند. برخی از ماشین‌حساب‌ها، ماشین‌حساب آنلاین Desmos یکی از نمونه‌های آن است که به آرکتتانژانت (1/0) اجازه می‌دهد. معمولاً به دانش‌آموزان آموزش داده می‌شود که تابع هم‌تانژانت معکوس، آرکتانژانت ، باید با گرفتن مماس متقابل محاسبه شود، و بنابراین یک ماشین‌حساب ممکن است اجازه دهد تا تانژانت (1/0)، خروجی را بدهد.�2{\tfrac {\pi }{2}}که مقدار صحیح قوس مماس 0 است. توجیه ریاضی این است که حد x به صفر می رسد مماس قوس 1/x است.�2{\tfrac {\pi }{2}}.

حوادث تاریخی [ ویرایش ]

  • در 21 سپتامبر 1997، یک خطای تقسیم بر صفر در "مدیر پایگاه داده از راه دور" در کشتی USS Yorktown (CG-48) تمام ماشین های موجود در شبکه را از بین برد و باعث از کار افتادن سیستم پیشران کشتی شد. [12] [13]

همچنین ببینید [ ویرایش ]

https://en.wikipedia.org/wiki/Division_by_zero