אלגוריתם דטרמיניסטי – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
מ ←‏הגדרה פורמלית: תקלדה, replaced: נסטית ← ניסטית
שורה 6:
 
==הגדרה פורמלית==
באופן פורמלי אלגוריתם דטרמינסטי יכול להיות מוגדר במונחי [[מכונת מצבים]]: מצב מתאר מה תעשה מכונה בזמן מסוים. מכונת המצבים עוברת בין המצבים. מיד לאחר מתן ה[[קלט]] המכונה נמצאת במצב ההתחלתי שלה (הידוע גם כמצב התחלה). במכונה דטרמיניסטית המצב הנוכחי והקלט קובעים מה יהיה המצב הבא אליו תעבור המכונה (כלומר סדר הפעולות בו תעבור המכונה קבוע מראש). חשוב לציין שמכונה יכולה להיות דטרמיניסטית ועדיין לא לעצור לעולם, התנאי היחיד להיותה של המכונה דטרמינסטיתדטרמיניסטית היא שנוכל לדעת בכל שלב היכן תהיה המכונה.
 
כל ה[[מחשב]]ים המודרניים הם מחשבים דטרמיניסטיים, כלומר ניתן להריץ עליהם רק תוכנות המהוות יצוג של אלגוריתמים דטרמיניסטיים. בפרט, לא ניתן לחולל [[מספרים אקראיים]] באמצעות תוכנת מחשב. המספרים בהם משתמשים במחשב, הם למעשה מספרים [[מספר אקראי#מספר פסבדו אקראי|פסאודו-אקראיים]] המתקבלים באמצעות הפעלת פונקציה דטרמיניסטית על מספר התחלתי אקראי המכונה Seed. מספרים אלה נחשבים אקראיים לכל שימוש מעשי אך הם למעשה סדרה דטרמיניסטית. כדי להבטיח קבלת סדרה פסאודו-אקראית שונה בכל הרצה של התוכנית, על ה-Seed שבו היא משתמשת להגיע ממקור חיצוני לה שישתנה בין הרצות שונות - לרוב משתמשים בשעון של המחשב, או במידע על נתון "אקראי" כדוגמת הזזות העכבר של המשתמש. בנוסף לכך למחשב יכולה להיות גישה למספרים אקראיים "אמיתיים" על ידי חיבור להתקן מדידה פיזיקלי המודד תהליך אקראי (כמו התפרקות [[רדיואקטיבי]]ת).