שאלה הקשורה בייצוג מספר

electricity86

New member
שאלה הקשורה בייצוג מספר

נתון מספר (sin(n*Pi , כאשר PI מוצג במס' ספרות מוגבל, ו-n שווה ... , 1000, 100 , 10 . מדוע החל מ-n (סופי) מסויים, למשל 1000 , המחשב כבר לא יציג את התוצאה אפס (כפי שאמור להציג תיאורטית). ויני, ממה שאמרת לי על מספר באופן כללי, ניתן להסיק כי אם n היה שווה ל - ... 16 , 8 , 4 , 2 אז התוצאה הייתה תמיד 0, שזה מובן כי במקרה זה המנטיסה לא משתנה אלא רק האקספוננט. איני מבין מה קורה למנטיסה כאשר מכפילים את PI ב-10, מדוע שתאבד במנטיסה ספרת דיוק? תודה רבה.
 

johnny d

New member
ok

lets keep it simple, screw computers... לצורך העניין נניח שיש לנו מחשב תיאותי שמחזיק 5 ספרות משמעותיות ועובד בבסיס 10. PI = 3.1415 בדיוק ! (במחשב התיאורטי הזה) עכשיו אתה מכפיל את PI במספר בעל יותר מספרה אחת ששונה מאפס, נניח 15 (שים לב שבמחשב אמיתי המספר עשר הוא למעשה 1010 בבינארית) אז התוצאה אמורה להיות 47.1225 אבל שים לב שיש כאן 6 ספרות ובכדי לשמור את המספר בזכרון משתמשים רק בחמישה משמעותיות אז התוצאה שתתקבל ביצוג של מספר שיכול להישמר בזכרון תהיה 47.122. עכשיו בוא נחלק את המספר ב-15 בעזרת אותו המחשב ונקבל: zzz 47.122 / 5 = 3.141466666... zzz שוב ישנם יותר ספרות ממה שניתן ליצג ולכן המחשב יתחשב אך ורק בחמישה המשמעותיות ונקבל כתוצאה 3.1414 כמובן שהמחשב יכול לעגל ולא לקצץ, אבל אז סה"כ נצמצם את שגיאת החישב ובמצתבר נקבל סטיה גדולה כרצונינו. בנוגע לסינוס של מספר כפול PI במחשב אמיתי שים לב ש: 1. מיליון בבינארית הוא: 11110100001001000000, לאחר כפל במספר כזה יקוצצו 13 ספרות ! 2. סינוס מחשבים ע"י טור מקלורן, מספר הפעולות האלמנטריות שמפעילים גדול מאוד ולכן השגיאה מצתברת לסדר גודל גדול מספיק בכדי להשפיע על כמה ספרות משמעתיות. (במקרה של מרחק מ-0 כל ספרה משמעותית :)
 
למעלה