פאי

מני אה

New member
פאי

שלום אנשים, יש לי שאלה והיא לא בקטע טרולי
כמו שאתם יודעים פאי הוא אין סופי לפחות בייצוג עשרוני. נניח שאתם (ואני לא מתכנת ולא יודע איך) כותבים תוכנה שהיא קו ישר, ציר מספרים, ואומרים למחשב בצד אחד יש 1 בצד השני 10 ומחלקים את הרווחים ליחידות. עכשיו אתם אומרים למחשב תייצג/תראה/תסמן על הקו את פאי. איך המחשב יוכל לעשות זאת? הרי הוא כאילו יצטרך לחשב עד אין סוף....הוא יעשה בפועל בקירוב (לאחר שתתכנתו אותו כך כדי שלא יתקע)?
תודה
 

nocgod

New member
ניסוח מוזר לשאלה שלך...

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

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

אגב פאי הוא לא אינסופי, הוא אי-רציונלי, כלומר לא ניתן לייצוג באמצעות חלוקה של 2 מספרים שלמים, כמוהו קיימים אינסוף, לדוגמא: שורש ריבועי 2, שורש ריבועי 3, מספר אוויליר, ועוד המון (כאמור, אין-סוף מספרים כאלה קיימים)

(סתם לסבן את האוזן, אפשר לחשב את מספרי פיבונאצ'י בזמן קבוע באמצעות שימוש ב phi (יחס הזהב) שגם הוא מספר אי-רציונלי)
 

Royi Namir

New member
למה לא קשור?

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

מני אה

New member
נכון.

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

nocgod

New member
המחשב "יעשה" את מה שתתכנת אותו לעשות

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

מני אה

New member
אוקיי תודה לכולכם.

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

Royi Namir

New member
אני יכול להבין את הקושי בהבנה


איך דיוק אין סופי יכול להיות מיוצג במסך....
אבל צא שניה מעולם המחשבים ותחשוב על שוק קניות
אתה שם קילו עגבניות , המוכר שם את זה על המישקל והוא מראה לו 1 קילו.
אתה חושב שזה באמת קילו ?
אין מצב
ואם נכנסים בחזרה למחשבים - אז זה רחוק מאד מקילו אמיתי.
חיכוך , מיקום בכדור הארץ , טמפרטורה - כולם משפיעים על הדיוק.
ולכן גם כשהוא רואה 1.000 זה תכלס 1.000456464 במקרה הטוב .
כך שחייבים לשים גבולות
אפילו המחשב עצמו שם גבולות במספר דצימלי על ידי גבול סופי של מנטיסה.
ועכשיו הכל ניהיה יותר פשוט
עכשיו כשתצטרך לשים 3.1415 - אתה תחלק את זה ל 10 שנתות בשביל ה 3
ועוד 10 שנתות בשביל ה 1
ועוד 10 שנתות בשביל ה 4
ועוד 10 שנתות בשביל ה1
ועוד 10 שנתות בשביל ה 5
וכאן צריכה להישאל השאלה
האם האמת אני צריך את זה כל כך מדוייק ?
האם יקרה משהו אם אני ארארה את זה בתמקום ה 3.1 ? ולא 3.1415?

הכל עניין של דרישה.
בתוכנה כמו MATEMATICA - זה כן חשוב.
במשחקים לדוגמא - זה ממש לא חשוב.
ב JAVASCRIPT לדוגמא - גם אם תתכוון לזה - זה לא ייצא
תנסה ב JS לעשות
0.1+0.2==0.3
התשובה היא לא
וגם ב #C
ברגע שזה FLOAT או DOUBLE - זה גם לא יהיה TRUE.
הסיבה בקצרה : המספרים מיוצגים ב בסיס 2 במקום בבסיס עשרוני
האובייקט היחידי שמיוצג בבסיס 10 זה DECIMAL
( אין את זה ב JS).

מקווה שיותר מובן.
 
אם כבר מתמטיקה..

הייצוג העשרוני של שליש הוא אינסופי
זה לא הופך את שליש להיות אי-רציונלי.
כנ"ל לגבי שישית, תשיעית וכו'.
 

nocgod

New member
גם הוא לא אינסופי

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

מתוך הלינק שנתת, השורה הראשונה:
"במתמטיקה, שבר מחזורי הוא ביטוי אינסופי..."
כלומר לא נוכל לייצג בשיטת הכתיבה העשרונית את שליש, כי אז נצטרך לכתוב אינסוף פעמים את הספרה 3 מימין לנקודה.
&nbsp
החידוד שרציתי להוסיף הוא שייצוג עשרוני אינסופי אינו קובע אם מספר הוא רציונלי או לא. מדבריך השתמע, לפחות עבורי, שייצוג עשרוני אינסופי משמעותו מספר אי-רציונלי.
&nbsp
מכיוון שזה פורום דוט נט, אני מציע שנמשיך במסרים את הפולמוס (אם עדיין קיים), כי נראה לי שהנושא הולך ומתרחק מנושא הפורום :)
&nbsp
 

nocgod

New member
אין פולמוס

לא יודע איך השתמע מדברי שייצוג עשרוני מחזורי הופך את המספר לאי-רציונלי, כתבתי את ההגדרה למספר אי-רציונלי גם בהודעה הראשונה.
ובויקיפדיה בעברית (לא שמתי לב ששמתי בעברית האמת) אני חושב שהניסוח לא מדוייק כי ההגדרה היא למספר שהספרה(או הרצף) אחרי הנקודה העשרונית חוזר אינסוף פעמים, לא שהמספר אינסופי. ייתרה מזה, הייצוג של מספר מחזורי הוא מאוד סופי. נהוג לכתוב מספר כזה עד סוף החלק המחזורי הראשון ואז לסמן בקו עילי את החלק שחוזר על עצמו עד בלי סוף. ככה שלכתוב שליש בסימון עשרוני מאוד פשוט 0.3 עם קו מעל לספרה 3.
The decimal representation of a number is said to be repeating if it becomes periodic (repeating its values at regular intervals) and the infinitely-repeated portion is not zero
http://dictionary.reference.com/browse/repeating-decimal
יותר מזה צירוף של המילים מספר ו אינסוף הוא לא נכון, מאחר ואינסוף אינו מספר אלא ביטוי שמתאר כמות בלתי מוגבלת, לעומת זאת מספר הוא ביטוי שבא לתאר כמות סופית (גם אם המספר עצום ואי אפשר לתאר אותו, הוא ערך סופי)

בקיצור עזוב אותי הגדרות מתמטיות :)
 
למעלה