שאלה בקשר לדיוק החישוב של המעבד

inferno3

New member
שאלה בקשר לדיוק החישוב של המעבד

ניתן לי תרגיל כלשהו בתכנות,האוניברסיטה נתנה לנו גם טסטרים כדי לבדוק אם התוכנית עובדת,ובנוסף היא גם נתנה את הפלט שלה לטסטר. כשאני בודק את התוכנית שלי,יש פלט מסויים שלא יוצא בדיוק אותו דבר כמו של האוניברסיטה ולכן הטסטר מודיע שיש לי שגיאה, עכשיו מדובר על מספרים מאוד מאוד קטנים. לדוגמא לאוניברסיטה יצא:0.015674384938 ולי יצא: 0.015167447573 (זה לא בדיוק מה שיצא לי אבל זה ממש ממחיש את מה שקורה). אני די בטוח שהחישוב שלי נכון,אבל עדיין התוצאה אינה אותה תוצאה,והדבר היחידי שעלה לי בראש זה בגלל המעבד או משהו בסגנון,אני עשיתי את התוכנית מהבית ולא מהמחשב של האוניברסיטה. תודה רבה מראש על העזרה.
 

shooshXX

New member
איפה הקוד?

אם אתה משתמש ב float במקום ב double זה יכול להסביר את זה.
 

inferno3

New member
תגובה

לא נראה לי שתוכל להבין משהו,אלא אם אני אפרסם את כל הקוד,שהוא די ארוך(1000 שורות)ולא נראה שאתה רוצה את זה :) פשוט אני רק רוצה להבין למה עד 6 ספרות בערך זה יוצא אותו דבר ,אבל לאחר מכן זה שונה. דרך אגב אני דווקא השתמשתי בדאבל.
 

shooshXX

New member
חשבון

float שומר 7 ספרות משמעותיות, במקרה שלך ספרה אחת לפני הנקודה ו6 אחרי הנקודה double שומר 15 ספרות. תעשה את החשבון לבד.
 

shooshXX

New member
אי שם מעבר לקשת בענן...

http://msdn2.microsoft.com/en-us/library/s3f49ktz.aspx טרול.
 

DNile

New member
לא, לא טרול,

פשוט מישהו שיודע יותר ממך, או מבין יותר ממך. שב ותקרא מאמר אחד רציני על איך בכלל עובד Floating point (IEEE 7545), (תחפש בגוגל, בהנחה שאתה יודע להשתמש) ואז תחזור לכאן ותפלוט שטויות על סמך ציטוט של הMSDN שבכלל לא הבנת.
 

shooshXX

New member
בטח התכוונת

ל IEEE 754 http://stevehollasch.com/cgindex/coding/ieeefloat.html לא ממש הבנתי למה אתה מתייחס. ה Mantissa של Single Precision כלומר float היא 23 ביט, כלומר 8388608 ערכים, כלומר, בערך 7 ספרות עשרוניות. אלא אם פספסתי משהו. אם אתה לא מסוגל לדיון תרבותי בנושא אני מציע שלא תגיב.
 

DNile

New member
אני לא מסוגל לדיון תרבותי?

אתה זה שקראת לי טרול. היחס אליך יהיה בהתאם. אין לי שום כוונות לשבת ולהסביר לך. שב ותקרא עוד כמה מאמרים, עד שתבין מה ההבדל בין mantissa לבין "ספרות אחרי הנקודה". עד אז - תשתוק לגבי דברים שאתה לא מבין בהם. טרול.
 

shooshXX

New member
אתה יכול לסמוך על זה

שאני יודע את ההבדל הציטוט המקורי: "float שומר 7 ספרות משמעותיות, במקרה שלך ספרה אחת לפני הנקודה ו6 אחרי הנקודה" ה Mantissa היא ה"7 ספרות משמעותיות" ובמקרה הספיצי המדובר שים לב שהוא מדבר על טעות בספרה השביעית המשמעותית: 0.0151674384938 (במקור 0.015674384938 אבל כנראה זו היתה טעות של המחבר) לעומת 0.015167447573 הטעות היחידה שלי היתה לחשוב בטעות שיש לו ספרה משמעותית אחת לפני הנקודה.
 

DNile

New member
אתה יודע מה היה במספר לפני כל

החישובים שהוא ערך? אתה יודע אם בהתחלה משמאל לנקודה במספר שלו היה 12312412(מה שגורם למספר לאבד דיוק מצד ימין), ואז הוא החסיר את החלק השלם של המספר(מה שלא מחזיר לו דיוק בצד ימין)? גם אם הצלחת להבין מה אומר Mantissa, אתה עדיין מפגין פה חוסר ידע / חוסר הבנה גדולים לגבי איך מתפקדים מספרי נקודה-צפה, ואיך מתבצעים חישובים עליהם.
 

shooshXX

New member
בניגוד אליך

מעולם לא טענתי שאני יודע מה הבעיה רק הצעתי מה שנראה לי הסבר סביר לבעיה בהסתמך על הראיות המוגבלות שהוצגו. מלבד הטעות שכבר התייחסתי אליה שנוגעת לספרה אחת לפני הנקודה, אני אשמח לראות איפה בדיוק הפגנתי חוסר ידע / חוסר הבנה גדולים לגבי איך מתפקדים מספרי נקודה צפה.
 

DNile

New member
../images/Emo7.gif

אם היה לך קצת נסיון בעבודה עם מספרי נ"צ, לא היית קופץ ישר למסקנה ש"אולי אתה עובד עם float במקום double".
 

shooshXX

New member
אחלה

אני אדאג לשלוח לך קורות חיים כשאני אחפש עבודה. או שלא.
 

DNile

New member
רק תדאג לצרף גם את הכינוי שלך בתפוז

כדי שאני אדע אם מי יש לי עסק.
 

itaisass

New member
חברה מה קורה לכם תרגעו אני חושב

שלשניכם יש ידע רב אז תפסיקו לריב ותבזבזו את האנרגיה על אנשים שצריכים עזרה באמת תודה ויום טוב
 

DNile

New member
.............

,,,,,,,,,,,,,,,,,,,,,,, !!!!!!!!!! ????????? קח, תשתמש בהם בצורה נבונה.
 
למעלה