You are on page 1of 63

‫קומבינטוריקה למדעי המחשב ־ הרצאות‬

‫גדי אלכסנדרוביץ'‬

‫תוכן עניינים‬
‫‪2‬‬ ‫מבוא ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪1‬‬

‫‪3‬‬ ‫קומבינטוריקה אנומרטיבית‬ ‫‪I‬‬


‫‪3‬‬ ‫עקרונות ספירה בסיסיים ‪. . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪2‬‬
‫‪3‬‬ ‫עקרון החיבור ועקרון הכפל ‪. . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪2.1‬‬
‫‪5‬‬ ‫תמורות )סידור בשורה( ‪. . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪2.2‬‬
‫‪6‬‬ ‫חליפות )בחירה ללא חזרות ועם חשיבות לסדר( ‪. . . . . . . . . .‬‬ ‫‪2.3‬‬
‫‪6‬‬ ‫צירופים )בחירה ללא חזרות וללא חשיבות לסדר( ‪. . . . . . . . .‬‬ ‫‪2.4‬‬
‫‪7‬‬ ‫סידור בשורה עם עצמים זהים ‪. . . . . . . . . . . . . . . . . . .‬‬ ‫‪2.5‬‬
‫‪7‬‬ ‫בחירה עם חזרות ועם חשיבות לסדר ‪. . . . . . . . . . . . . . . .‬‬ ‫‪2.6‬‬
‫‪7‬‬ ‫בחירה עם חזרות וללא חשיבות לסדר ‪. . . . . . . . . . . . . . .‬‬ ‫‪2.7‬‬
‫‪8‬‬ ‫סיכום ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪2.8‬‬
‫‪9‬‬ ‫עקרון שובך היונים ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪3‬‬
‫‪12‬‬ ‫הבינום של ניוטון ומשולש פסקל ‪. . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪4‬‬
‫‪14‬‬ ‫אינדוקציה ורקורסיה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪5‬‬
‫‪14‬‬ ‫אינדוקציה מתמטית ‪. . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪5.1‬‬
‫‪18‬‬ ‫רקורסיה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪5.2‬‬
‫‪19‬‬ ‫כלל ההכלה וההפרדה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪6‬‬
‫‪22‬‬ ‫חלוקות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪7‬‬
‫‪24‬‬ ‫פונקציות יוצרות ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪8‬‬
‫‪24‬‬ ‫מבוא ודוגמאות ראשונות ‪. . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪8.1‬‬
‫‪25‬‬ ‫פעולות על פונקציות יוצרות ‪. . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪8.2‬‬
‫‪30‬‬ ‫פתרון נוסחאות נסיגה ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪9‬‬
‫‪30‬‬ ‫דוגמא ראשונה‪ :‬נוסחת נסיגה עם צעד אחד אחורה ‪. . . . . . . .‬‬ ‫‪9.1‬‬
‫‪30‬‬ ‫הבעיה ‪. . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪9.1.1‬‬
‫‪31‬‬ ‫שיטת ההצבה הנשנית ‪. . . . . . . . . . . . . . . . . .‬‬ ‫‪9.1.2‬‬
‫‪31‬‬ ‫שיטת המשוואה האופיינית ‪. . . . . . . . . . . . . . .‬‬ ‫‪9.1.3‬‬
‫‪32‬‬ ‫שימוש בפונקציות יוצרות ‪. . . . . . . . . . . . . . . .‬‬ ‫‪9.1.4‬‬
‫‪32‬‬ ‫דוגמא שניה‪ :‬נוסחת נסיגה עם שני צעדים אחורה ‪. . . . . . . . .‬‬ ‫‪9.2‬‬
‫‪32‬‬ ‫שיטת המשוואה האופיינית ‪. . . . . . . . . . . . . . .‬‬ ‫‪9.2.1‬‬
‫‪34‬‬ ‫שימוש כללי בשיטת המשוואה האופיינית ‪. . . . . . . .‬‬ ‫‪9.2.2‬‬
‫‪35‬‬ ‫נוסחאות נסיגה ופונקציות יוצרות רציונליות ‪. . . . . . . . . . . .‬‬ ‫‪9.3‬‬

‫‪1‬‬
‫‪37‬‬ ‫‪ II‬מבוא לתורת הגרפים‬
‫‪37‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫גרפים ־ הגדרה ודוגמאות ‪. . . .‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪10‬‬
‫‪40‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫מסלולים אוילריים ‪. . . . . . . .‬‬‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪11‬‬
‫‪42‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫גרפי דה־ברויין ‪. . . . . . . . .‬‬‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪12‬‬
‫‪44‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬
‫עצים ‪. . . . . . . . . . . . . .‬‬‫‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ ‫‪13‬‬
‫‪44‬‬ ‫הגדרה ואפיונים בסיסיים ‪. . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪13.1‬‬
‫‪46‬‬ ‫משפט קיילי לספירת עצים ‪. . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪13.2‬‬
‫‪48‬‬ ‫עצים מכוונים ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪13.3‬‬
‫‪49‬‬ ‫עצים פורשים ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪13.4‬‬
‫‪49‬‬ ‫הגדרה וקיום ‪. . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪13.4.1‬‬
‫‪50‬‬ ‫ספירת עצים פורשים ־ משפט קירכהוף לגרפים מכוונים‬ ‫‪13.4.2‬‬
‫‪53‬‬ ‫ספירת עצים פורשים ־ משפט קירכהוף לגרפים לא מכוונים‬ ‫‪13.4.3‬‬
‫‪54‬‬ ‫מספרי קטלן ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪14‬‬
‫‪55‬‬ ‫מסלולי שריג ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪14.1‬‬
‫‪55‬‬ ‫סוגריים מאוזנים ומילות דיק ‪. . . . . . . . . . . . . . . . . . . .‬‬ ‫‪14.2‬‬
‫‪57‬‬ ‫עצים בינאריים ‪. . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪14.3‬‬
‫‪58‬‬ ‫שילושים של מצולע קמור ‪. . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪14.4‬‬
‫‪59‬‬ ‫ספירת מסלולים בגרף ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪15‬‬
‫‪59‬‬ ‫מבוא ‪. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪15.1‬‬
‫‪60‬‬ ‫הוכחת הטענה הכללית ‪. . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪15.2‬‬
‫‪61‬‬ ‫שימוש‪ :‬פונקציות יוצרות ונוסחאות נסיגה ‪. . . . . . . . . . . . . .‬‬ ‫‪15.3‬‬
‫‪62‬‬ ‫חזרה אל הדוגמא ‪. . . . . . . . . . . . . . . . . . . . . . . . . .‬‬ ‫‪15.4‬‬

‫מבוא‬ ‫‪1‬‬
‫קומבינטוריקה היא התחום במתמטיקה שעוסק באובייקטים סופיים‪ ,‬וכפי שניתן לנחש‬
‫מההגדרה העמומה הזו מדובר על תחום רחב ביותר שגבולותיו לא פשוטים להגדרה‪ .‬בקורס‬
‫הזה נעסוק בשני תחומים עיקריים‪ :‬בעיות ספירה )קומבינטוריקה אנומרטיבית(‪ ,‬ומבוא‬
‫לתורת הגרפים‪.‬‬
‫בעיות ספירה הן בעיות מהצורה הבאה‪ :‬בהינתן הגדרה כלשהי של קבוצה סופית של‬
‫אובייקטים‪ ,‬כמה אובייקטים יש בקבוצה? לדוגמה‪ ,‬כמה ידיים אפשריות קיימות במשחק‬
‫ברידג'? כמה תוצאות אפשריות יש בלוטו? כמה הרכבי בתים אפשריים קיימים בטורניר‬
‫כדורסל? כמה מצבים אפשריים יש ללוח במשחק שחמט? וכדומה‪.‬‬
‫לרוב השאלות מנוסחות על קבוצת אובייקטים שמוגדרת באמצעות פרמטר ‪ n‬כלשהו‪.‬‬
‫למשל‪ ,‬בכמה דרכים אפשר להציג את המספר ‪ n‬כסכום של מספרים טבעיים קטנים ממנו?‬
‫בכמה דרכים ניתן לחלק מצולע משוכלל בעל ‪ n‬צלעות למשולשים? בכמה דרכים יכול דוור‬
‫מבובל‪/‬מזכירה מבולבלת )תלוי את מי רוצים להעליב( לחלק ‪ n‬מכתבים כך שאף אחד לא‬
‫יגיע ליעדו?‬
‫שאלות כאלו צצות באופן טבעי במדעי המחשב‪ ,‬כשההקשר הנפוץ ביותר הוא ניתוח‬
‫סיבוכיות של אלגוריתמים‪ ,‬שם הקומבינטוריקה נחוצה הן בכדי להבין את מספר צעדי‬
‫הריצה שהאלגוריתם מבצע והן את גודל מרחב הקלטים שאיתו הוא מנסה להתמודד‪ .‬הקשר‬
‫חשוב אחר הוא בעיות הסתברותיות ואלגוריתמים הסתברותיים; הבנה של ההסתברות של‬
‫מאורע מסויים דורשת לרוב ניתוח קומבינטורי של כמות התוצאות האפשריות בכלל )למשל‪,‬‬
‫ידיעת ההסתברות לזכיה בלוטו דורשת הבנה של כמות התוצאות האפשריות בלוטו(‪.‬‬

‫‪2‬‬
‫הפתרון הטוב ביותר לבעיה קומבינטורית הוא כמובן מספר מדויק‪ ,‬ובמקרה של בעיה‬
‫שתלויה בפרמטר ‪ ,n‬נוסחה פשוטה שתלויה ב־‪ n‬־ למשל‪ ,‬מספר תתי־הקבוצות של קבוצה‬
‫מגודל ‪ n‬הוא בדיוק ‪ .2n‬בקורס זה תיווצר `אשליה` שרבות הבעיות שניתן למצוא להן‬
‫נוסחה מדוייקת שכזו‪ ,‬שכן רבות מהבעיות שנציג בקורס אכן יהיו כאלו; בעולם האמיתי‬
‫נוסחה סגורה שכזו היא נדירה בהרבה‪ ,‬ולעתים קרובות גם איננה מועילה במיוחד‪ .‬עיקר‬
‫העניין הוא בסדר הגודל של הפתרון; קירוב אסימפטוטי כלשהו אליו‪ .‬מכיוון שאנו עוסקים‬
‫במבוא בלבד‪ ,‬בקורס זה לא ניגע בכלל בעניינים אלו‪ ,‬שהם לב לבה של הקומבינטוריקה‬
‫האנומרטיבית‪.‬‬
‫עבור בעיות שלא קל למצוא להן פתרון סגור פשוט באמצעות שיקולים אלמנטריים נלמד‬
‫מקצת מהכלים החזקים יותר שמאפשרים התמודדות עם הבעיה ־ עקרון ההכלה וההפרדה‪,‬‬
‫נוסחאות נסיגה ופתרונן ופונקציות יוצרות‪ .‬כמו כן נדבר על הבינום של ניוטון‪ ,‬משולש פסקל‬
‫ועקרון שובך היונים‪ ,‬שהם מושגים מתמטיים בסיסיים הקשורים לספירה שהדרך הטובה‬
‫ביותר להבינם הוא במסגרת הקומבינטוריקה‪.‬‬
‫תורת הגרפים עוסקת באובייקט שהוא אולי המרכזי במדעי המחשב ־ אוסף של איברים‬
‫)`צמתים`( שחלקם מחוברים אלו לאלו )על ידי `קשתות`(‪ .‬גרפים ממדלים אינספור בעיות‬
‫ומושגים במדעי המחשב ־ החל ברשתות חברתיות ותרשימי זרימה של תוכנותת עבור במעגלים‬
‫בוליאניים וקוונטיים וכלה במפות של מערכת כבישים‪ .‬לא מעט מהאלגוריתמים הבסיסיים‬
‫במדעי המחשב מנוסחים על גרפים‪ ,‬ובהתאם לכך אנו רוצים להכיר כאן את ההגדרות‬
‫הפורמליות והתכונות הבסיסיות שמערבות גרפים‪ ,‬אם כי כמעט ולא נעסוק כאן באלגוריתמים‬
‫על גרפים‪ .‬בחלק זה של הקורס הגישה תהיה מעט פורמלית ומדויקת יותר מאשר בחלקו‬
‫הראשון של הקורס; ננצל את הפשטות היחסית של החומר שבו אנו עוסקים כדי להמחיש‬
‫את שיטות הלימוד הנפוצה במתמטיקה של ”הגדרה־משפט־הוכחה“‪.‬‬

‫‪I‬‬ ‫חלק‬
‫קומבינטוריקה אנומרטיבית‬
‫עקרונות ספירה בסיסיים‬ ‫‪2‬‬
‫בפרק זה נציג את `כלי העבודה` הבסיסיים של קומבינטוריקה אנומרטיבית ־ העקרונות‬
‫המנחים שמשמשים אותנו בפתרון כמעט כל בעיה קומבינטורית‪ ,‬ופתרונות של כמה בעיות‬
‫יסודיות שמשתמשים בהן לרוב בתור אבן הבניין לפתרון בעיות מורכבות יותר‪.‬‬
‫בלשון מתמטית פורמלית‪ ,‬בעיית ספירה קומבינטורית היא זו‪ :‬נתונה קבוצה סופית ‪A‬‬
‫ואנו מעוניינים למצוא מהו |‪ |A‬־ מספר האיברים ב־‪.A‬‬

‫עקרון החיבור ועקרון הכפל‬ ‫‪2.1‬‬


‫דוגמא במשחק לוח הזוי כלשהו השחקן יכול בתורו או להטיל קוביה רגילה או להטיל‬
‫מטבע‪ .‬כמה תוצאות אפשריות ישנן?‬
‫במקרה זה ישנן ‪ 6‬תוצאות אפשריות להטלת הקוביה‪ ,‬ו־‪ 2‬תוצאות אפשריות להטלת‬
‫המטבע‪ ,‬ולכן בסך הכל יש ‪ 6 + 2 = 8‬תוצאות אפשריות‪.‬‬

‫דוגמא כמה מהלכי פתיחה חוקיים יש לשחקן בכלים הלבנים במשחק השחמט?‬
‫במקרה זה כל רגלי של הלבן יכול לנוע צעד או שני צעדים קדימה‪ ,‬וכל אחד מהפרשים‬
‫יכול לנוע אחד משני צעדים אפשריים קדימה‪ .‬בסך הכל יש ‪ 8 + 8 + 2 + 2 = 20‬מהלכי‬

‫‪3‬‬
‫פתיחה אפשריים‪.‬‬

‫הכללה מה העקרון המשותף לדוגמאות שלעיל? בכל המקרים ביצענו בחירה מתוך כמה‬
‫`סוגי` אפשרויות שונים‪ ,‬כשהבחירה היא מסוג או ־ או שמזיזים רגלי צעד אחד )‪ 8‬אפשרויות(‬
‫או שמזיזים רגלי שני צעדים )‪ 8‬אפשרויות(‪ ,‬או שמזיזים את הפרש הימני )‪ 2‬אפשרויות( או‬
‫שמזיזים את הפרש השמאלי )‪ 2‬אפשרויות(‪ .‬זהו מקרה פרטי של עקרון החיבור‪:‬‬

‫טענה ‪) 2.1‬עקרון החיבור( אם קיימות ‪ n1‬אפשרויות לבצע בחירה מסוג אחד ו־ ‪ n2‬אפשרויות‬
‫לבצע בחירה מסוג שני‪ ,‬אז קיימות ‪ n1 + n2‬אפשרויות לבצע בחירה מסוג אחד או מהסוג‬
‫השני‪.‬‬
‫בניסוח מתמטי פורמלי‪ ,‬אם ‪ A, B‬הן שתי קבוצות זרות אז |‪|A ∪ B| = |A| + |B‬‬

‫דוגמא סטודנט צריך לקחת בסמסטר קורס ספורט אחד מבין שחמט וברידג' )מעשה שהיה‬
‫באמת בטכניון(‪ ,‬וקורס מדעי אחד מבין פיזיקה וכימיה‪ .‬כמה אפשרויות בחירה יש לו?‬
‫לסטודנט יש ‪ 2‬בחירות לקורס ספורט ו־‪ 2‬בחירות לקורס מדעי וכל זוג אפשרי של בחירות‬
‫הוא חוקי‪ .‬ישנן אם כן ‪ 4‬אפשרויות‪:‬‬
‫‪ .1‬שחמט‪ ,‬פיזיקה‬
‫‪ .2‬שחמט‪ ,‬כימיה‬
‫‪ .3‬ברידג'‪ ,‬פיזיקה‬

‫‪ .4‬ברידג'‪ ,‬כימיה‬
‫כלומר‪ ,‬לכל אחת מהאפשרויות לבחירה הראשונה‪ ,‬בן זוגה יכול להיות כל אחת מהאפשרויות‬
‫בבחירה השניה‪.‬‬

‫דוגמא במונופול בכל סיבוב מוטלות שתי קוביות‪ .‬כמה תוצאות אפשריות ישנן?‬
‫לכל אחת מהקוביות יש ‪ 6‬תוצאות אפשריות‪ ,‬ואנחנו מתעניינים בכל הזוגות של תוצאה‬
‫של קוביה אחת ותוצאה של הקוביה השניה‪ ,‬כך שבסך הכל יש לנו ‪ 36‬זוגות אפשריים מהצורה‬
‫)‪ (i, j‬כאשר ‪.1 ≤ i, j ≤ 6‬‬

‫הכללה מה העקרון המשותף לדוגמאות שלעיל? בכל המקרים ביצענו בחירה דו שלבית‪.‬‬
‫הבחירה היא מסוג `וגם` ־ יש לבחור גם קורס ספורט וגם קורס מדעי‪ .‬זהו מקרה פרטי של‬
‫עקרון הכפל‪:‬‬

‫טענה ‪) 2.2‬עקרון הכפל( אם קיימות ‪ n1‬אפשרויות לבצע בחירה מסוג אחד ו־ ‪ n2‬אפשרויות‬
‫לבצע בחירה מסוג שני‪ ,‬אז קיימות ‪ n1 · n2‬אפשרויות לבצע בחירה מסוג אחד וגם בחירה‬
‫מהסוג השני‪.‬‬
‫בניסוח מתמטי פורמלי‪ ,‬אם ‪ A, B‬הן שתי קבוצות )לא בהכרח זרות( אז = |‪|A × B‬‬
‫|‪ A × B) |A| · |B‬הוא אוסף כל הזוגות של איבר מ־‪ A‬ואיבר מ־‪.(B‬‬

‫‪4‬‬
‫תמורות )סידור בשורה(‬ ‫‪2.2‬‬
‫בכמה דרכים ניתן לסדר ‪ n‬ילדים בשורה?‬
‫זהו שימוש ישיר בעקרון הכפל‪ .‬נפתור את הבעיה בשתי גישות שונות על מנת להמחיש‬
‫שניתן להגיע לתוצאה מכמה נקודות מבט שונות )מה שרק מחזק את האמונה שלנו בנכונות‬
‫התוצאה‪ ,‬כמובן(‪.‬‬
‫• בגישה הראשונה נניח שאנו עוברים אחד אחד על הילדים ולכל ילד בוחרים לו מקום‬
‫בשורה מבין אלו שעדיין פנויים )אנו מניחים מראש שהשורה מחולקת ל־‪` n‬תאים`(‪.‬‬
‫עבור הילד הראשון יש ‪ n‬בחירות‪ ,‬עבור השני יש רק ‪ n − 1‬בחירות )כי מקום אחד‬
‫כבר תפוס(‪ ,‬עבור השלישי ‪ n − 2‬בחירות וכן הלאה עד לילד האחרון שיש לו בדיוק‬
‫בחירה אחת‪.‬‬
‫• בגישה השניה נניח שאנו עוברים אחד אחד על המקומות בשורה ולכל אחד מהם‬
‫בוחרים איזה ילד יהיה בו‪ .‬גם כאן יש ‪ n‬בחירות לילד הראשון‪ n − 1 ,‬בחירות לילד‬
‫השני )כי כבר סידרנו את אחד הילדים בשורה ולא ניתן לבחור בו שוב(‪ ,‬וכן הלאה‬
‫עד למקום האחרון שבו יכול להיות רק ילד אחד בלבד ־ זה שנשאר‪.‬‬
‫• בגישה השלישית נבנה את השורה ילד אחרי ילד מבלי להניח שהשורה מחולקת מראש‬
‫לתאים‪ ,‬כשבכל פעם אנו שואלים את עצמנו להיכן אפשר להכניס את הילד הבא בתור‪.‬‬
‫יש בחירה ‪ 1‬לילד הראשון )כי כרגע השורה ריקה(‪ 2 ,‬בחירות לילד השני )משמאל או‬
‫מימין לילד הקיים(‪ 3 ,‬בחירות עבור השלישי )משמאל לזוג הקיים‪ ,‬מימין לו או באמצע(‬
‫וכן הלאה עד ‪ n‬בחירות לילד האחרון‪.‬‬
‫בכל המקרים קיבלנו את אותה התוצאה‪ .1 · 2 · 3 · · · n :‬בגלל השימושיות הרבה של הפעולה‬
‫הזו במתמטיקה יש לה שם וסימון מיוחד‪) n! = 1 · 2 · · · n :‬קרי `‪ n‬עצרת`(‪.‬‬
‫את !‪ n‬ניתן להגדיר גם באופן רקורסיבי שהוא מועיל לעתים‪:‬‬
‫• ‪0! = 1‬‬
‫• !)‪ n! = n · (n − 1‬לכל ‪.n ≥ 1‬‬

‫הערה ‪ 2.3‬אין ל־!‪ n‬נוסחה פשוטה‪ ,‬אך יש לה קירוב מצויין‪ ,‬שהופך ‪n‬‬
‫לשימושי מאוד√כאשר‬
‫עוסקים בקומבינטוריקה בחיפוש אחרי סדרי גודל בלבד‪ :‬נוסחת סטירלינג‪n! ≈ 2πn ne ,‬‬
‫שמנת שני צדדי המשוואה שואפת ל־‪ 1‬כאשר ‪ n‬שואף לאינסוף‪,‬‬
‫הפורמלית היא √‬
‫‪n‬‬ ‫)המשמעות‬
‫‪ .(n!/ 2πn ne‬בקורס הזה לא נזדקק לנוסחת סטירלינג אך מומלץ‬ ‫דהיינו ‪→ 1‬‬
‫∞→‪n‬‬
‫להיות מודעים לקיומה‪.‬‬

‫דוגמא בכמה דרכים ניתן לסדר ‪ n‬ילדים בשורה אם ידוע שאליס ובוב חברים ורוצים להיות‬
‫זה ליד זו?‬
‫כמקודם‪ ,‬נפתור במספר דרכים‪:‬‬
‫• נסדר את כל הילדים בשורה למעט אליס‪ (n − 1)! :‬אפשרויות‪ .‬כעת אליס יכולה‬
‫להיות משמאל או מימין לבוב‪ ,‬ולכן סך הכל יש !)‪ 2 (n − 1‬אפשרויות‪.‬‬
‫• `נדביק` יחד את אליס ובוב ונחשוב עליהם בתור ילד אחד )בוליס?(‪ .‬נסדר את ‪n − 1‬‬
‫הילדים )הילדים הרגילים ו`בוליס`( בשורה ונקבל !)‪ (n − 1‬אפשרויות‪ .‬כעת‪ ,‬יש שתי‬
‫אפשרויות לסידור הפנימי של `בוליס` )בוב מימין ואליס משמאל או בוב משמאל‬
‫ואליס מימין( ולכן מעקרון הכפל נקבל !)‪ 2 (n − 1‬אפשרויות‪.‬‬

‫‪5‬‬
‫דוגמא אליס ובוב רבו‪ .‬בכמה דרכים ניתן לסדר את ‪ n‬הילדים בשורה כך שאליס אינה‬
‫ליד בוב?‬
‫• נסדר את כל הילדים בשורה למעט אליס ־ !)‪ (n − 1‬אפשרויות‪ .‬כעת אליס יכולה‬
‫להיות בכל מקום למעט ימין או שמאל בוב‪ ,‬ולכן יש לה ‪ n − 2‬אפשרויות ומעקרון‬
‫הכפל נקבל !)‪.(n − 2) (n − 1‬‬

‫• `עקרון החיסור`‪ :‬מספר אפשרויות הסידור בשורה של הילדים הוא !‪ ,n‬וראינו כבר כי‬
‫בדיוק ב־!)‪ 2 (n − 1‬מתוך האפשרויות הללו אליס היא ליד בוב‪ .‬אז מה שנותר הוא‬

‫!)‪n! − 2 (n − 1‬‬ ‫!)‪= n (n − 1)! − 2 (n − 1)! = (n − 2) (n − 1‬‬

‫אפשרויות‪.‬‬

‫חליפות )בחירה ללא חזרות ועם חשיבות לסדר(‬ ‫‪2.3‬‬


‫יש ספסל עם ‪ 5‬מקומות ו־‪ 20‬ילדים‪ .‬בכמה דרכים אפשר לסדר ‪ 5‬מבין הילדים על‬ ‫דוגמא‬
‫הספסל?‬
‫• יש ‪ 20‬בחירות של ילד למקום הראשון‪ 19 ,‬למקום השני וכן הלאה עד ‪ 16‬למקום‬
‫!‪20‬‬
‫!‪. 15‬‬ ‫החמישי‪ .20 · 19 · 18 · 17 · 16 :‬על פי ההגדרה קל לראות שזה שווה ל־‬
‫• `עקרון החילוק` ־ נסדר את ‪ 20‬הילדים בשורה ־ !‪ 20‬אפשרויות‪ .‬כעת ניקח את חמשת‬
‫הראשונים ונשים על הספסל בסדר שלהם בשורה‪ .‬בצורה זו יש לנו ספירות כפולות‬
‫־ כל סידור של ילדים על הספסל מתאים בדיוק ל־!‪ 15‬מבין אפשרויות הסידור‬
‫של הילדים בשורה ־ מספר הסידורים הפנימיים של ‪ 15‬הילדים שאינם במקומות‬
‫הראשונים‪ .‬גישה זו קשה יותר להבנה מהגישה הראשונה אך חזקה בהרבה ומסבירה‬
‫!‪20‬‬
‫!‪. 15‬‬ ‫ישירות את התוצאה‬

‫הכללה הדוגמה שלעיל היא מקרה פרטי של הבעיה הבאה‪ :‬בכמה דרכים ניתן לבחור ‪k‬‬
‫מתוך ‪ n‬אובייקטים )‪ (k ≤ n‬כאשר יש חשיבות לסדר שבו נבחרים האיברים?‬
‫!‪n‬‬
‫!)‪. (n−k‬‬ ‫כפי שראינו בדוגמה‪ ,‬הפתרון הכללי הוא )‪= n · (n − 1) · · · (n − k + 1‬‬
‫!‪n‬‬
‫!)‪ .P (n, k) = Pnk = (n−k‬אזהרה! יש עוד‬ ‫לצורך פשטות משתמשים לעתים בסימון‬
‫שלל צורות כתיבה מוזרות לסימון )דוגמת ‪ Pkn‬או ‪ (n Pk‬והדרך הבטוחה ביותר להימנע‬
‫מבלבול היא פשוט לא להשתמש בו כלל‪.‬‬

‫צירופים )בחירה ללא חזרות וללא חשיבות לסדר(‬ ‫‪2.4‬‬


‫בכמה דרכים ניתן לבחור ‪ k‬מתוך ‪ n‬אובייקטים כאשר אין חשיבות לסדר שבו נבחרים‬
‫האיברים?‬
‫נסמן ב־ ‪ Cnk‬את המספר הזה‪ .‬אז ‪ Cnk · k! = Pnk‬על פי עיקרון הכפל ־ קודם בוחרים‬
‫‪ k‬איברים בלי חשיבות לסדר ) ‪ Cnk‬אפשרויות( ואז בוחרים אחד מ־!‪ k‬הסידורים האפשריים‬
‫שלהם‪ .‬מספר זה שווה למספר האפשרויות לבחור את האיברים כאשר מלכתחילה מתחשבים‬
‫בסדר‪.‬‬
‫‪Pk‬‬ ‫!‪n‬‬
‫!)‪.Cnk = k!n = k!(n−k‬‬ ‫מכאן ש־‬
‫!)‪ . nk = k!(n−k‬בסימון זה נשתמש מכאן‬
‫!‪n‬‬
‫‬
‫סימון אחר ומקובל בהרבה ל־ ‪ Cnk‬הוא זה‪:‬‬
‫ואילך‪.‬‬

‫‪6‬‬
‫סידור בשורה עם עצמים זהים‬ ‫‪2.5‬‬
‫כדורים מצבע אחד‪ k2 ,‬כדורים מצבע אחר וכן הלאה עד ‪ kt‬כדורים מצבע ‪.t‬‬ ‫נתונים ‪Pt k1‬‬
‫נסמן ‪ .n = i=1 ki‬בכמה דרכים ניתן לסדר את הכדורים בשורה?‬
‫דרך הפתרון היא לחשוב על כל הכדורים כשונים אלו מאלו‪ ,‬לסדר אותם בשורה )!‪n‬‬
‫אפשרויות( ואז לכל צבע לחלק במספר הסידורים הפנימיים של אותו הצבע )! ‪ ki‬לכל ‪.(i‬‬
‫מקבלים‪. k1 !k2n!!···kt ! :‬‬
‫צירופים הם מקרה פרטי כאשר ‪) t = 2‬אפשר לחשוב על כך כאילו בוחרים את המקומות‬
‫לכדורים מהצבע הראשון‪ ,‬ואז המקומות עבור הצבע השני נקבעים מאליהם(‪.‬‬
‫אפשר לחשוב על ! ‪ k1 !k2n!!···kt‬בתור הכללה של צירופים‪ :‬מספר האפשרויות לבחור ‪k1‬‬
‫מתוך ‪ n‬אובייקטים עבור קבוצה אחת‪ k2 ,‬עבור קבוצה שניה וכן הלאה‪ ,‬כאשר אין חשיבות‬
‫לסדר הבחירה‪.‬‬
‫לעתים משתמשים בסימון ! ‪. k1 ,k2n,...,kt = k1 !k2n!!···kt‬‬
‫‬

‫בחירה עם חזרות ועם חשיבות לסדר‬ ‫‪2.6‬‬


‫דוגמא בכמה דרכים ניתן לבנות מספר בן ‪ 5‬ספרות בעזרת הספרות ‪ 1,2,3‬בלבד?‬
‫יש לנו ‪ 3‬אפשרויות בחירה לספרה הראשונה‪ 3 ,‬לספרה השניה וכן הלאה‪ .‬על פי עקרון‬
‫הכפל נקבל ‪.3 · 3 · 3 · 3 · 3 = 35‬‬
‫בדוגמה זו יש חשיבות לסדר הבחירה )‪ 13‬איננו אותו מספר כמו ‪ (31‬ויש חזרות ־ ניתן‬
‫לבחור את אותה ספרה יותר מפעם אחת‪ .‬המקרה הכללי מטופל באותו האופן‪:‬‬

‫טענה ‪ 2.4‬מספר האפשרויות לבחור ‪ k‬מתוך ‪ n‬אובייקטים עם חזרות ועם חשיבות לסדר‬
‫הוא ‪.nk‬‬
‫שימו לב כי כאן לא נדרש ש־‪.k ≤ n‬‬

‫בחירה עם חזרות וללא חשיבות לסדר‬ ‫‪2.7‬‬


‫דוגמא כמה סדרות מונוטוניות לא יורדות באורך ‪ k‬קיימות מעל ‪?1, 2, . . . n‬‬
‫דוגמה לסדרה מונוטונית לא יורדת שכזו עבור ‪.(1, 3, 3, 3, 5, 7) :k = 6, n = 7‬‬
‫הבחנה‪ a1 , a2 , . . . , ak :‬היא סדרה מונוטונית לא יורדת מעל ‪ 1, 2, . . . n‬אם ורק אם‬
‫)‪ a1 + 0, a2 + 1, . . . , ak + (k − 1‬היא סדרה מונוטונית עולה מעל )‪.1, 2, . . . , n + (k − 1‬‬
‫סדרות מונוטוניות עולות קל בהרבה לספור מבחינה רעיונית‪ :‬בוחרים את ‪ k‬המספרים‬
‫בסדרה ללא חשיבות לסדר‪ ,‬והסדרה כבר נקבעת מעצמה על פיהם‪.‬‬ ‫שישתתפו‬
‫‪. n+k−1‬‬
‫‬
‫‪k‬‬ ‫קיבלנו‬ ‫לכן‬
‫זוהי דוגמא לבחירה עם חזרות )ניתן לבחור את אותו מספר כמה פעמים( וללא חשיבות‬
‫לסדר )הסידור של המספרים בסדרה נקבע באופן יחיד(‪.‬‬

‫דוגמא מה מספר הדרכים להכנסת ‪ k‬כדורים זהים ל־‪ n‬תאים שונים?‬


‫נוח לחשוב על התהליך באופן הפוך ־ ‪ k‬הכדורים מסודרים בשורה‪ ,‬ויש לבנות סביבם‬
‫`מחיצות` כדי ליצור ‪ n‬תאים‪ ,‬כך שצריך ‪ n − 1‬מחיצות‪.‬‬
‫ניתן לתאר באופן סכמטי באמצעות סדרה‪ 010011 :‬כאשר ‪ 0‬מייצג כדור ו־‪ 1‬מייצג‬
‫מחיצה‪ .‬כאן יש שלושה תאים‪ :‬בשמאלי יש כדור אחד‪ ,‬באמצעי שניים ובימני אפס‪.‬‬
‫הבינאריות עם ‪ k‬אפסים ו־‪ n−1‬אחדים‪ .‬כל שנדרש‬ ‫אם כן‪ ,‬המספר הוא מספר הסדרות ‬
‫‪ n+k−1‬אפשרויות‪.‬‬
‫‪k‬‬ ‫הוא לבחור את מיקום האפסים כך שיש‬

‫‪7‬‬
‫גם כאן הייתה בחירה עם חזרות )ניתן להכניס כדור לאותו תא פעמים רבות( וללא‬
‫חשיבות לסדר )הכדורים זהים ולכן לא חשוב אם קודם מכניסים אחד לתא ‪ 1‬ואז לתא ‪ 2‬או‬
‫הפוך ־ בסוף בשני התאים יהיה כדור בודד(‪.‬‬

‫דוגמא כמה פתרונות במספרים שלמים אי שליליים יש למשוואה ‪?x1 + x2 + · · · + xn = k‬‬


‫הם התאים‪,‬‬
‫קל לראות שיש התאמה חח`ע ועל בין הבעיה הזו לבעיה הקודמת‪ :‬המשתנים ‬
‫‪. n+k−1‬‬
‫‪k‬‬ ‫וערכו של כל משתנה הוא מספר הכדורים שהוכנסו אליו ולכן גם כאן הפתרון הוא‬

‫סיכום‬ ‫‪2.8‬‬
‫• סידור ‪ n‬עצמים בשורה‪n! :‬‬
‫• סידור ‪ n‬עצמים בשורה כאשר הם מחולקים למחלקות זהות בגדלים ‪:k1 , . . . , kt‬‬
‫!‪n‬‬
‫! ‪k1 !...kt‬‬

‫• בחירות של ‪ k‬מתוך ‪:n‬‬

‫סדר\חזרות‬ ‫חשוב‬ ‫לא חשוב‬


‫בלי‬ ‫!‪n‬‬
‫!)‪Pnk = (n−k‬‬ ‫‪Cnk = nk‬‬
‫‪CCnk = n+k−1‬‬
‫‬
‫עם‬ ‫‪P Pnk = nk‬‬ ‫‪k‬‬

‫עוד כמה תרגילים ופתרונם‪:‬‬

‫דוגמא כמה `ידיים` שונות של ‪ 5‬קלפים בפוקר ניתן לקבל?‬


‫‪52‬‬ ‫!‪52‬‬
‫‬
‫‪5‬‬ ‫=‬ ‫!‪5!47‬‬ ‫זוהי בחירה של ‪ 5‬קלפים מתוך ‪ 52‬ללא חשיבות לסדר וללא חזרה ולכן‬

‫דוגמא כמה אפשרויות למילוי טופס טוטו קיימות?‬


‫כאן ישנם ‪ 16‬טורים שבכל אחד מסמנים ‪ 1‬או ‪ 2‬או ‪ ,X‬כלומר בחירה עם חשיבות לסדר‬
‫ועם חזרות של ‪ 16‬מ־‪ ,3‬ולכן ‪.316 = 43, 046, 721‬‬

‫דוגמא מה ההסתברות לזכות בלוטו הישראלי‪ ,‬שבו ממלאים ‪ 6‬מ־‪ 37‬מספרים ועוד ‪ 1‬מ־‪7‬‬
‫`מספרים חזקים`?‬
‫כאן יש לנו שתי בחירות ללאחשיבות לסדר וללא חזרות ואנו מפעילים עליהן את עקרון‬
‫‪ 7 · 37‬ולכן סיכויי הזכייה הם ‪.1 : 16, 273, 488‬‬
‫הכפל ומקבלים ‪6 = 16, 273, 488‬‬

‫דוגמא `וקטור בינארי` מאורך ‪ n‬הוא פשוט סדרה של ‪ n‬ערכים שהם ‪ 0‬או ‪.1‬‬
‫ברור כי יש ‪ 2n‬וקטורים בינאריים מאורך ‪) n‬בחירה עם חזרות מתוך }‪ {0, 1‬ועם חשיבות‬
‫לסדר כי וקטור הוא סדרה(‪.‬‬
‫כמה וקטורים בינאריים קיימים שבהם יש לפחות מופע אחד של ‪?1‬‬
‫פתרון נפוץ ושגוי לשאלות מסוג זה הוא כדלהלן‪ :‬נבחר אחד מ־‪ n‬המקומות בתור‬
‫המקום שבו יופיע ה־‪ 1‬שאנחנו `מחוייבים` לו‪ ,‬ואז נבחר בחופשיות את הכניסות עבור שאר‬
‫המקומות‪ ,‬ונקבל ‪ n · 2n−1‬אפשרויות‪.‬‬
‫דרך לזהות את השגיאה היא לבדוק את הפתרון עבור ערכים קטנים‪ :‬עבור ‪ n = 2‬נקבל‬
‫מהנוסחה כי ישנם ‪ 2 · 21 = 4‬וקטורים בינאריים מתאימים‪ ,‬אבל קל לראות כי קיימים רק‬
‫שלושה‪ .11, 01, 10 :‬ביצענו ספירה כפולה‪.‬‬
‫הספירה הכפולה ספרה את הוקטור ‪ 11‬פעמיים‪ :‬פעם אחת נבחר ‪ 1‬להיות במקום הראשון‬
‫בשלב הראשון‪ ,‬ובשלב השני נבחר שבמקום השני יופיע גם כן אחד; בפעם האחרת נבחר ‪1‬‬

‫‪8‬‬
‫להיות דווקא במקום השני‪ ,‬ואילו ה־‪ 1‬שבמקום הראשון נבחר אחר כך‪ .‬הדבר אינו נוגד את‬
‫עקרון הכפל שכן עקרון הכפל דורש שכל זוג בחירות יוביל לתוצאה שונה ‪ ,1‬ואילו כאן יש שני‬
‫זוגות בחירות שונים אפשריים שמובילים לאותו האובייקט בדיוק‪.‬‬
‫הדרך הנכונה לפתור את התרגיל הזה היא באמצעות עקרון החיסור‪ :‬ישנו רק וקטור‬
‫בודד מאורך ‪ n‬שלא מכיל ‪1‬־ים )הוקטור שכולו אפסים( ולכן יש ‪ 2n − 1‬וקטורים מאורך‬
‫‪ n‬שמכילים ‪ 1‬לפחות פעם אחת )כי על פי עקרון החיבור‪ ,‬מספר הוקטורים הכולל ‪ 2n‬שווה‬
‫לסכום של מספר הוקטורים שלא מכילים ‪1‬־ים ומספר הוקטורים שמכילים ‪ 1‬אחד לפחות(‪.‬‬

‫דוגמא כמה פתרונות בשלמים יש למשוואה ‪ x1 + x2 + x3 + x4 + x5 = 30‬אם דורשים‬


‫כי ‪?xi ≥ 1‬‬
‫כאן אנחנו רוצים להשתמש בתוצאה המוכרת של בחירות בלי חשיבות לסדר ועם חזרות‪,‬‬
‫אבל שם התוצאה תקפה עבור ‪.xi ≥ 0‬‬
‫הרעיון האינטואיטיבי ־ מחלקים ‪ 30‬כדורים לחמישה תאים תחת האילוץ שאין תא ריק‪,‬‬
‫אז קודם כל נשים כדור אחד בכל תא ואז נחלק את ‪ 25‬הכדורים הנותרים באופן חופשי‪.‬‬
‫בפועל‪ :‬נשתמש בתעלול ונגדיר משתנים חדשים ‪ yi‬כך ש־‪ .xi = yi + 1‬נציב במשוואה‬
‫המקורית ונקבל‪:‬‬
‫‪(y1 + 1) + (y2 + 1) + (y3 + 1) + (y4 + 1) + (y5 + 1) = 30‬‬
‫ובניסוח שקול‪:‬‬
‫‪.yi ≥ 0 ,y1 + y2 + y3 + y4 + y5 = 25‬‬
‫‪. 5+25−1‬‬
‫‪25‬‬ ‫‪= 29‬‬‫ולכן הפתרון הוא ‪25‬‬

‫דוגמא יהא ‪ Fq‬שדה סופי עם ‪ q‬איברים‪ .‬כמה מטריצות הפיכות ‪ 2 × 2‬מעל ‪ Fq‬קיימות?‬
‫עבור מטריצות ‪ ,2 × 2‬מטריצה היא הפיכה אם ורק אם אף שורה איננה כפל בסקלר של‬
‫השורה השניה‪ .‬עבור השורה הראשונה כל שורה אפשרית פרט לשורה שכולה אפסים היא‬
‫לגיטמית‪ ,‬ומכיוון שיש ‪ q‬ערכים אפשריים לכל כניסה‪ ,‬מעקרון הכפל יש ‪ q 2‬שורות אפשריות‪,‬‬
‫ולאחר חיסור שורת האפסים נקבל ‪ q 2 − 1‬אפשרויות‪.‬‬
‫כעת‪ ,‬בהינתן השורה הראשונה כל אחת מ־ ‪ q 2‬השורות אפשריות עבור השורה השניה פרט‬
‫לאלו שהן כפל בסקלר של השורה הראשונה‪ .‬קיימים ‪ q‬סקלרים ואותה שורה לא מתקבלת‬
‫שיש ‪ q 2 − q‬שורות לגיטימיות בסך הכל‪.‬‬
‫שונים‪ ,‬כך ‬
‫על ידי כפל בשני סקלרים ‬
‫מעקרון הכפל נקבל שיש ‪ q 2 − 1 q 2 − q‬מטריצות הפיכות מהסוג הנדרש‪.‬‬

‫עקרון שובך היונים‬ ‫‪3‬‬


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

‫טענה ‪) 3.1‬עקרון שובך היונים(‪ :‬אם ב־‪ n‬שובכים ישנן ‪ n + 1‬יונים‪ ,‬אז קיים שובך שבו יש‬
‫‪m‬‬ ‫לפחות שתי יונים‪.‬‬
‫‪n‬‬ ‫לפחות‬ ‫יש‬ ‫שבו‬ ‫שובך‬ ‫קיים‬ ‫אז‬ ‫יונים‪,‬‬ ‫‪m‬‬ ‫ישנן‬ ‫שובכים‬ ‫ב־‪n‬‬ ‫אם‬ ‫יותר‪:‬‬ ‫ניסוח כללי‬
‫יונים‪.‬‬
‫הוכחת הטענה היא בשלילה ־ אם בכל שובך יש לכל היותר יונה אחת‪ ,‬אז יש בכולם יחד לא‬
‫יותר מ־‪ n‬יונים‪ .‬באופן דומה מוכחת הטענה הכללית‪.‬‬
‫נפתח בדוגמאות פשוטות‪:‬‬
‫‪1‬עקרון הכפל סופר כמה זוגות של בחירות ישנם; השימוש שלנו בעיקרון הכפל מניח במובלע שהאובייקטים‬
‫שאותם אנחנו סופרים נוצרים על ידי זוגות הבחירות הללו כך שכל אובייקט נוצר בידי זוג אחד בדיוק‪.‬‬

‫‪9‬‬
‫דוגמא קיימים בעולם שני אנשים לא קרחים בעלי בדיוק אותה כמות שערות על הראש‪ .‬זה‬
‫נובע מכך שמספר השערות על הראש נמדד במאות אלפים‪ ,‬בעוד שבעולם ישנם מיליארדי‬
‫אנשים ־ האנשים הם היונים‪ ,‬מספרי השערות האפשריים הם השובכים‪.‬‬

‫דוגמא בחדר עם ‪ 366‬אנשים קיימים שני אנשים בעלי אותו יום הולדת )אם מתעלמים‬
‫מחריגים כמו ה־‪ 29‬בפברואר( ‪.2‬‬

‫דוגמא בקורס עם למעלה מ־‪ 100‬סטודנטים מובטח שיהיו שני סטודנטים שיקבלו את אותו‬
‫הציון )אם כולם ניגשים לבחינה‪(...‬‬

‫דוגמא לא קיים כיווץ משמר מידע שמקטין כל קובץ‪ :‬לכל ‪ n‬יש ‪ 2n‬קבצים מאורך ‪ n‬ביטים‬
‫ו־‪ 1 + 2 + 4 + · · · + 2n−1 = 2n − 1‬קבצים מאורך לכל היותר ‪ n − 1‬ביטים ולכן מעקרון‬
‫שובך היונים כל כיווץ שמקטין כל קובץ בן ‪ n‬ביטים חייב לגרום להתנגשות בין שני קבצים‬
‫)ולכן המידע לא משומר במלואו ־ לא ניתן לשחזר כל קובץ מהכיווץ שלו(‪ .‬טיעון קצת יותר‬
‫מחוכם מוכיח שאם הכיווץ מקטין ולו קובץ בודד‪ ,‬הוא חייב להגדיל קובץ אחר כלשהו‪.‬‬
‫נעבור כעת לדוגמאות מורכבות יותר‪.‬‬

‫דוגמא נתון משולש שווה צלעות עם צלע באורך ‪ .1‬יש להוכיח כי לכל ‪ 5‬נקודות במשולש‬
‫יש שתיים במרחק קטן או שווה ל־ ‪. 12‬‬
‫‪1‬‬
‫הפתרון‪ :‬מחלקים את המשולש ל־‪ 4‬משולשים שווי צלעות שאורך צלעם ‪: 2‬‬

‫המרחק בין שתי נקודות בתוך כל משולש הוא לא‬


‫יותר מ־ ‪ , 12‬ועל פי עקרון שובך היונים יש שתי נקודות באותו משולש )הנקודות הן היונים‪,‬‬
‫המשולשים הם השובכים(‪.‬‬

‫דוגמא שישה אנשים נפגשו במסיבה וחלקם לחצו ידיים אחד לשני‪ .‬יש להוכיח כי יש‬
‫שלישייה של אנשים כך שכל חבריה או לחצו את ידיהם של כל חבריהם לשלישייה‪ ,‬או לחצו‬
‫את ידו של אף חבר בשלישייה‪.‬‬
‫בניסוח גאומטרי‪ ,‬נתבונן במצולע משוכלל בן ‪ 6‬קודקודים כך שכל האלכסונים האפשריים‬
‫נמתחו בו )כלומר‪ ,‬כל קודקוד מחובר בקו לכל קודקוד אחר(‪ .‬נצבע כל אחד מהקווים באדום‬
‫או כחול; יש להוכיח כי קיים משולש מונוכרומטי )שכל צלעותיו צבועות באותו הצבע(‪.‬‬
‫‪2‬פרדוקס יום ההולדת בתורת ההסתברות מראה שכבר אם ישנם ‪ 23‬אנשים בחדר וימי ההולדת שלהם מתפלגים‬
‫באופן אחיד‪ ,‬ההסתברות לשני אנשים בעלי אותו יום הולדת גדולה מחצי‪.‬‬

‫‪10‬‬
‫הפתרון‪ :‬נתבונן על אדם מס' ‪ .1‬ישנם ‪ 5‬קטעים‬
‫שמחברים אותו עם שאר האנשים‪ ,‬ומעקרון שובך היונים המוכלל יש שלושה הצבועים באותו‬
‫הצבע )הקווים הם היונים‪ ,‬הצבעים הם השובכים(‪ .‬נניח בלי הגבלת הכלליות שהצבע הזה‬
‫היה אדום נתבונן על שלושת האנשים המחוברים לקווים הללו‪ .‬אם קיים ביניהם זוג שהקו‬
‫שמחבר אותו הוא בצבע אדום‪ ,‬אז ביחד עם אדם מס' ‪ 1‬קיבלנו את השלישייה שלנו; ואם‬
‫לא קיים ביניהם זוג כזה אז כל שלושת האנשים הללו מחוברים אלו לאלו עם קווים כחולים‪,‬‬
‫ושוב קיבלנו את השלישייה שלנו‪.‬‬
‫בהערת אגב נציין שתוצאה זו היא מקרה פרטי של משפט כללי בקומבינטוריקה הנקרא‬
‫משפט רמזי‪ ,‬ובתורו מהווה בסיס לתחום בקומבינטוריקה הנקרא תורת רמזי‪ .‬לא נציג את‬
‫המשפט בקורס‪.‬‬

‫דוגמא בכל קבוצה של ‪ 12‬מספרים טבעיים דו ספרתיים קיימים שניים אשר הפרשם הוא‬
‫מספר בעל שתי ספרות זהות‪.‬‬
‫הפתרון‪ :‬השאריות האפשריות בחלוקה ב־‪ 11‬של המספרים יהיו השובכים‪ ,‬והמספרים‬
‫יהיו היונים‪ .‬בהכרח יש שני מספרים בעלי אותה שארית בחלוקה ב־‪ 11‬ולכן הפרשם יתחלק‬
‫ב־‪ ,11‬ומכיוון שהוא מספר דו ספרתי הוא יהיה בעל שתי ספרות זהות‪.‬‬

‫דוגמא הייצוג העשרוני של כל מספר רציונלי הוא מחזורי‪.‬‬


‫כדי למצוא את הייצוג העשרוני של מספר רציונלי ‪) ab‬עם ‪ (a < b‬מבצעים חילוק ארוך;‬
‫ניתן לתאר זאת כחזרה אינסופית על הצעדים הבאים‪:‬‬

‫‪a ← 10 · a .1‬‬
‫‪a‬‬
‫‪ .2‬פלוט את ‪. b‬‬
‫‪.a ← a%b .3‬‬
‫האלגוריתם עצמו הוא אינסופי‪ ,‬אבל יש רק מספר סופי של ערכים ש־‪ a‬יכול לקבל בשלב ‪3‬‬
‫)הערכים בין ‪ 0‬ו־‪ (b − 1‬ומכאן שהחל משלב מסויים האלגוריתם יחל לחזור על עצמו‪ ,‬שכן‬
‫ערכו של ‪ a‬בשלב מסויים קובע באופן יחיד את כל המשך האלגוריתם ‪.3‬‬
‫‪3‬רעיון זה‪ ,‬לפיו ריצה אינסופית של אלגוריתם שיכול להיות רק במספר סופי של `מצבים`‪ ,‬תחיל חזרות משלב‬
‫מסויים הוא שימושי ביותר ובא לידי ביטוי‪ ,‬למשל‪ ,‬בלמת הניפוח בקורס באוטומטים ושפות פורמליות‪ ,‬ופתרון של‬
‫וריאנטים מוגבלים של בעיית העצירה בקורס בתורת החישוביות‪.‬‬

‫‪11‬‬
‫הבינום של ניוטון ומשולש פסקל‬ ‫‪4‬‬
‫‪2‬‬
‫בבית הספר לומדים את נוסחת הכפל המקוצר ‪.(a + b) = a2 + 2ab + b2‬‬
‫‪3‬‬
‫הנוסחה ‪ (a + b) = a3 + 3a2 b + 3ab2 + b3‬גם היא מוצגת בבית הספר אבל ככל‬
‫הנראה זכורה פחות‪.‬‬
‫נראה כעת כיצד מגיעים לנוסחאות אלו וכיצד שיטה זו מטפלת גם במקרה הכללי של‬
‫‪n‬‬
‫)‪.(a + b‬‬
‫ראשית‪ ,‬נשים לב ש־‬
‫‪2‬‬
‫)‪(a + b‬‬ ‫=‬ ‫‪(a + b) (a + b) = aa + ab + ba + bb‬‬
‫‪= a2 + 2ab + b2‬‬

‫ה־‪ 2ab‬נובע מ־‪ ab + ba‬ומכך שכפל הוא קומוטטיבי‪ ,‬כלומר ‪.ab = ba‬‬
‫באופן דומה‪:‬‬

‫‪3‬‬
‫)‪(a + b‬‬ ‫=‬ ‫)‪(a + b) (a + b) (a + b‬‬
‫‪= aaa + aab + aba + abb + baa + bab + bba + bbb‬‬

‫כאן ישנם שמונה מחוברים‪ ,‬שכל אחד מתקבל על ידי בחירה של ‪a‬־ים מחלק מהסוגריים ו־‬
‫‪b‬־ים מהסוגריים הנותרים‪ .‬למשל‪ aba ,‬מתקבל מבחירה של ‪ a‬בסוגריים הראשונים והאחרונים‬
‫ו־‪ b‬באמצעיים‪.‬‬
‫‪n‬‬
‫באופן כללי‪ (a + b) ,‬הוא סכום של מחוברים שכל אחד מהם מתקבל מבחירה של ‪i‬‬
‫פעמים ‪ a‬מחלק מהסוגריים ו־‪ n − i‬פעמים ‪ b‬מהנותרים‪ ,‬וזאת לכל ‪ .0 ≤ i ≤ n‬האיבר‬
‫‪n‬‬ ‫‪i n−i‬‬
‫מספר האפשרויות לבחור את ‪ i‬זוגות הסוגריים‬ ‫פעמים ־ ‬ ‫‪ a b‬יכול להיבחר בדיוק ‪i‬‬
‫‪n‬‬ ‫‪n‬‬
‫‬
‫שמתוכם נבחר ‪) a‬או באופן שקול‪ n−i = i ,‬אפשרויות לבחור את הסוגריים שמהם‬
‫יילקחו ה־‪b‬־ים(‪.‬‬
‫מכאן אנו מגיעים לנוסחה הכללית‪:‬‬
‫‪n‬‬ ‫‪Pn‬‬ ‫‪n‬‬
‫‬
‫טענה ‪) 4.1‬הבינום של ניוטון( ‪ai bn−i‬‬
‫= )‪.(a + b‬‬ ‫‪i=0‬‬ ‫‪i‬‬

‫בשל נוסחה זו המספרים ‪ ni‬מכונים לעתים קרובות מקדמי הבינום‪.‬‬


‫‬

‫יש למקדמי הבינום תיאור גרפי נאה הנקרא משולש פסקל )אף כי לא פסקל המציא‬
‫אותו ־ המשולש היה מוכר כבר בימי הביניים‪ ,‬ופסקל בסך הכל תיאר אותו בספר מתמטיקה‬
‫שכתב(‪:‬‬

‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪3‬‬ ‫‪3‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪4‬‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪5‬‬ ‫‪10‬‬ ‫‪10‬‬ ‫‪5‬‬ ‫‪1‬‬

‫‪12‬‬
‫‪n‬‬ ‫‪n‬‬
‫בשורה ה־‪n‬־ית של המשולש נמצאים המספרים ‪, . . . , nn‬‬
‫‬ ‫‬ ‫‬
‫‪.‬‬ ‫‪0‬‬ ‫‪,‬‬ ‫‪1‬‬
‫נשים לב למספר תכונות של המשולש ולאחר מכן נוכיח אותן‪:‬‬
‫‪ .1‬המשולש סימטרי‪.‬‬
‫‪ .2‬שפת המשולש מורכבת כולה מ־‪1‬־ים‪.‬‬
‫‪ .3‬הכניסות שליד השפה בשורה ה־‪ n‬הן ‪.n‬‬
‫‪ .4‬כל איבר במשולש הוא סכום שני האיברים שמעליו )ובמקרה של איברים בשפה‪ ,‬של‬
‫האיבר היחיד שמעליו(‪.‬‬
‫‪ .5‬סכום השורה ה־‪ n‬הוא ‪) 2n‬נובע בקלות מנוסחת הבינום‪ ,‬כאשר מציבים בה = ‪a = b‬‬
‫‪.(1‬‬
‫‪ .6‬סכום המקומות הזוגיים בשורה ה־‪ n‬במשולש הוא ‪) 2n−1‬ולכן גם סכום המקומות‬
‫האי זוגיים הוא ‪.(2n−1‬‬
‫נוכיח כל תכונה בשתי דרכים ־ אלגברית )כלומר‪ ,‬על ידי מניפולציה של משוואות( וקומבינטורית‬
‫)כלומר‪ ,‬על ידי תיאור בעיית ספירה מתאימה(‪.‬‬
‫‪. ni = n−i‬‬ ‫‪n‬‬
‫‬ ‫‬
‫‪ .1‬זוהי בעצם הטענה‬
‫!)‪. ni = i!(n−i‬‬
‫!‪n‬‬ ‫!‪n‬‬ ‫‪n‬‬
‫‬ ‫‬
‫!‪= (n−i)!i‬‬ ‫‪= n−i‬‬ ‫הוכחה אלגברית‪:‬‬
‫הוכחה קומבינטורית‪ :‬מספר הדרכים לבחור ‪ i‬איברים מתוך ‪ n‬הוא כמו מספר הדרכים‬
‫לבחור אילו ‪ n − i‬איברים מתוך ‪ n‬לא לקחת‪.‬‬
‫‪ .2‬זוהי בעצם הטענה ‪) n0 = nn = 1‬השוויון הראשון נובע מהסימטריה(‪.‬‬
‫‬ ‫‬
‫‪n‬‬ ‫!‪n‬‬ ‫!‪n‬‬
‫‬
‫הוכחה אלגברית‪0 = 0!n! = n! = 1 :‬‬
‫הוכחה קומבינטורית‪ :‬יש רק דרך אחת לבחור ‪ 0‬מ־‪ n‬איברים ־ לא בוחרים אף אחד‪.‬‬
‫‪) n1 = n−1‬שוב‪ ,‬השוויון הראשון נובע מהסימטריה(‪.‬‬ ‫‪n‬‬
‫‬ ‫‬
‫‪ .3‬זוהי בעצם הטענה ‪= n‬‬
‫‪n‬‬
‫‬ ‫!‪n‬‬ ‫!)‪n·(n−1‬‬
‫‪1‬‬ ‫=‬ ‫!)‪1!(n−1‬‬ ‫=‬ ‫הוכחה אלגברית‪(n−1)! = n :‬‬
‫הוכחה קומבינטורית‪ :‬יש ‪ n‬דרכים לבחור איבר בודד מתוך ‪.n‬‬
‫‪) ni = n−1‬שנכונה עבור ‪.(n, i > 0‬‬ ‫‪n−1‬‬
‫‬ ‫‬ ‫‬
‫‪i−1 +‬‬ ‫‪i‬‬ ‫‪ .4‬זוהי בעצם הטענה‬
‫הוכחה אלגברית‪:‬‬
‫‬ ‫ ‬ ‫‬
‫‪n−1‬‬ ‫‪n−1‬‬ ‫!)‪(n − 1‬‬ ‫!)‪(n − 1‬‬
‫‪+‬‬ ‫=‬ ‫‪+‬‬
‫‪i−1‬‬ ‫‪i‬‬ ‫!)‪(i − 1)! (n − i)! i! (n − i − 1‬‬
‫‬ ‫‬
‫‪i‬‬ ‫)‪(n − i‬‬
‫!)‪= (n − 1‬‬ ‫‪+‬‬
‫!)‪i! (n − i)! i! (n − i‬‬
‫ ‬
‫‪n‬‬ ‫!‪n‬‬ ‫‪n‬‬
‫· !)‪= (n − 1‬‬ ‫=‬ ‫=‬
‫!)‪i! (n − i‬‬ ‫!)‪i! (n − i‬‬ ‫‪i‬‬

‫הוכחה קומבינטורית‪ :‬מספר הדרכים לבחור ‪ i‬איברים מתוך ‪ n‬הוא כמספר הדרכים‬
‫לבחור ‪ i − 1‬איברים מתוך ‪ n − 1‬הראשונים ולהוסיף אליהם את האחרון‪ ,‬ועוד מספר‬
‫הדרכים לבחור ‪ i‬איברים מתוך ‪ n − 1‬הראשונים מבלי להוסיף להם את האחרון‬
‫)נובע מעקרון החיבור(‪ .‬זוהי הוכחה פשוטה וקל בהרבה לזכור אותה מאת ההוכחה‬
‫האלגברית‪.‬‬

‫‪13‬‬
‫‪Pn‬‬
‫‪ .5‬זוהי בעצם הטענה ‪. i=0 ni = 2n‬‬
‫‬
‫‪Pn‬‬ ‫‪n‬‬
‫‬ ‫‪Pn‬‬ ‫‪n‬‬
‫‬
‫‪i n−i‬‬
‫= ‪i=0 i‬‬ ‫‪i=0 i 1 1‬‬ ‫הוכחה אלגברית‪ :‬מהבינום של ניוטון עולה ש־=‬
‫‪n‬‬
‫‪.(1 + 1) = 2n‬‬
‫‪n‬‬
‫‬
‫הוכחה קומבינטורית‪ i :‬הוא מספר הוקטורים הבינאריים מאורך ‪ n‬עם בדיוק ‪i‬‬
‫אפסים‪.‬‬
‫‪ 2n‬הוא מספר הוקטורים הבינאריים הכולל מאורך ‪ ,n‬ועל פי עיקרון החיבור הוא‬
‫שווה לסכום מספרם של כל הוקטורים הבינאריים עם בדיוק ‪ i‬אפסים לכל ‪.i‬‬
‫ ‪Pb n2 c n‬‬
‫‪.‬‬ ‫‪ .6‬זוהי בעצם הטענה ‪= 2n−1‬‬
‫‪n‬‬
‫‬ ‫‪n−1‬‬
‫‬ ‫‪n‬‬
‫‬ ‫‪n−1‬‬
‫‪ n−1 i=0 2i‬‬
‫= ‪0‬‬ ‫‪0‬‬ ‫הוכחה אלגברית‪ :‬לכל ‪ i > 0‬ראינו ש־ ‪ , 2i = 2i−1 + 2i‬וכמו כן‬
‫ולכן נקבל‬

‫‪2c‬‬
‫‪bX‬‬
‫‪n‬‬
‫‬ ‫‬ ‫‪ bX‬‬‫ ‪2 c‬‬
‫‪n‬‬
‫ ‬ ‫‬
‫‪n‬‬ ‫‪n−1‬‬ ‫‪n−1‬‬ ‫‪n−1‬‬
‫=‬ ‫‪+‬‬ ‫‪+‬‬ ‫=‬
‫‪i=0‬‬
‫‪2i‬‬ ‫‪0‬‬ ‫‪i=1‬‬
‫‪2i − 1‬‬ ‫‪2i‬‬
‫‬ ‫‪ n−1‬‬
‫ ‪X n − 1‬‬
‫‪n−1‬‬
‫=‬ ‫‪+‬‬ ‫‪= 2n−1‬‬
‫‪0‬‬ ‫‪i=1‬‬
‫‪i‬‬

‫הוכחה קומבינטורית‪ :‬מספר הוקטורים הבינאריים מאורך ‪ n‬שבהם מספר זוגי של‬
‫אפסים שווה למספר הוקטורים הבינאריים מאורך ‪ n‬שבהם מספר אי זוגי של אפסים‪:‬‬
‫התאמה חח`ע ועל ביניהם מתקבל מהפיכת הביט הראשון בוקטור‪ .‬יש סה`כ ‪2n‬‬
‫וקטורים ולכן בדיוק חצי מהם יהיו עם מספר זוגי של אפסים‪ ,‬כלומר ‪.2n−1‬‬

‫אינדוקציה ורקורסיה‬ ‫‪5‬‬


‫אינדוקציה מתמטית‬ ‫‪5.1‬‬
‫אינדוקציה מתמטית היא אחת מטכניקות ההוכחה הבסיסיות והשימושיות ביותר במתמטיקה‪.‬‬
‫אינדוקציה פירושה הסקה מהפרט אל הכלל; במתמטיקה פירושה שדי להוכיח טענה עבור‬
‫`מקרי בסיס` פשוטים ולהראות כיצד ניתן להסיק את נכונות הטענה עבור מקרה מורכב‬
‫ממקרים פשוטים יותר‪ ,‬בכדי להוכיח שהטענה נכונה תמיד‪ .‬ניתן לחשוב על אינדוקציה כעל‬
‫דומינו‪ :‬בסיס האינדוקציה מפיל את האבן הראשונה‪ ,‬וצעד האינדוקציה מראה כיצד כל אבן‬
‫נופלת מפילה את הבאה אחריה‪ .‬התוצאה היא שכל האבנים נופלות‪.‬‬
‫נציג מספר סוגים של אינדוקציה‪:‬‬

‫טענה ‪) 5.1‬אינדוקציה על הטבעיים במשתנה יחיד( אם ‪ A0 , A1 , A2 , . . .‬היא סדרה של‬


‫טענות‪ ,‬כך שמתקיימים שני התנאים הבאים‪:‬‬

‫‪) .1‬בסיס האינדוקציה( ‪ A0‬נכונה‪.‬‬


‫‪) .2‬צעד האינדוקציה( אם ‪ Ai‬נכונה‪ ,‬אז גם ‪ Ai+1‬נכונה‪.‬‬

‫אז כל הטענות ‪ A0 , A1 , A2 , . . .‬נכונות‪.‬‬


‫הוכחה‪ :‬נניח בשלילה כי ‪ 1‬ו־‪ 2‬נכונים אך לא כל הטענות ‪ A1 , A2 , . . .‬נכונות‪ ,‬ויהא ‪ n‬הטבעי‬
‫הקטן ביותר כך ש־ ‪ An‬אינו נכון‪ .‬בשל ‪ 1‬לא ייתכן ש־‪ ,n = 1‬ולכן ‪ An−1‬היא טענה מתוך‬

‫‪14‬‬
‫הסדרה ‪ A1 , A2 , . . .‬ומכיוון ש־‪ n‬היה מינימלי‪ An−1 ,‬כן נכונה ומ־‪ 2‬עולה שגם ‪ An‬נכונה‪,‬‬
‫בסתירה להנחת השלילה‪.‬‬
‫הוכחה זו מסתמכת על כך שלכל תת קבוצה של טבעיים יש איבר מינימלי; תכונה זו מכונה‬
‫`סדר טוב`‪ ,‬ואינדוקציה ניתנת להגדרה בכל קבוצה שיש בה סדר טוב‪ ,‬אך לא נפרט על כך‬
‫בקורס‪.‬‬

‫דוגמא כשהוכחנו שמספר התמורות על ‪ n‬איברים הוא !‪ n‬השתמשנו באופן מובלע באינדוקציה‪.‬‬
‫נוכיח זאת עכשיו באופן מפורש‪.‬‬
‫בסיס‪ :‬מספר האפשרויות לסדר ‪ 0‬איברים בשורה הוא ‪“) 1‬הסידור הריק“(‪.‬‬
‫צעד‪ :‬נניח שמספר האפשרויות לסדר ‪ n‬איברים בשורה הוא !‪ .n‬בהינתן ‪ n + 1‬איברים‪,‬‬
‫נסדר את ‪ n‬הראשונים בשורה ואז יש לנו ‪ n + 1‬מקומות שונים לשים בהם את האיבר הנוסף‬
‫)בתחילת השורה‪ ,‬או אחרי כל אחד מ־‪ n‬האיברים האחרים(‪ .‬לכן מעקרון הכפל‪ ,‬מספר‬
‫האפשרויות הכולל הוא !)‪.n! · (n + 1) = (n + 1‬‬

‫)‪) Sn = n(n+1)(2n+1‬מספר זה שווה‬


‫‪6‬‬ ‫דוגמא בלוח ‪ n × n‬מספר תת־הריבועים הכולל הוא‬
‫ל־ ‪ 12 + 22 + . . . + n2‬אבל זו דרך משעממת יותר לנסח את התוצאה(‪.‬‬

‫נוכיח זאת באינדוקציה על ‪:n‬‬


‫)‪1(1+1)(2+1‬‬
‫= ‪S1‬‬ ‫‪6‬‬ ‫בסיס‪ :‬עבור ‪ n = 1‬קיים ריבוע יחיד בלוח‪ :‬הריבוע ‪ .1 × 1‬ואכן‪= ,‬‬
‫‪. 66 = 1‬‬
‫צעד‪ :‬נניח את נכונות הנוסחה עבור ‪ .n‬ניקח לוח ‪ n × n‬ונרחיב אותו ללוח × )‪(n + 1‬‬
‫)‪) (n + 1‬נדמיין שהוספנו שורה חדשה למעלה ועמודה חדשה מימין(‪ .‬כל ריבוע בלוח החדש‬
‫נופל לאחת משתי קטגוריות‪:‬‬

‫• הריבוע מוכל כולו בלוח ה־‪ n × n‬הישן‪ :‬יש בדיוק ‪ Sn‬ריבועים כאלו‪.‬‬
‫• הריבוע גולש לשורה‪/‬עמודה החדשה‪ :‬במקרה זה‪ ,‬קיימת התאמה חח“ע ועל בין קבוצת‬
‫הקודקודים של הריבועים בלוח הקיים והריבועים החדשים )בהינתן קודקוד‪ ,‬יש דרך‬
‫יחידה להרחיב את הריבוע שאותו קודקוד הוא הפינה השמאלית־תחתונה שלו כך שיגיע‬
‫‪2‬‬
‫אל השורה‪/‬עמודה החדשות(‪ .‬בלוח של ‪ n‬משבצות יש )‪(n + 1)×(n + 1) = (n + 1‬‬
‫קודקודים כאלו‪.‬‬

‫‪15‬‬
‫‪2‬‬
‫קיבלנו ש־ )‪ Sn+1 = Sn +(n + 1‬ומכאן‬
‫נמשיך עם אלגברה והנחת האינדוקציה‪:‬‬

‫‪2‬‬ ‫)‪n (n + 1) (2n + 1‬‬ ‫‪2‬‬


‫= )‪Sn + (n + 1‬‬ ‫)‪+ (n + 1‬‬
‫‪6‬‬ ‫‬
‫‪(n + 1) 2n2 + n + 6n + 6‬‬
‫=‬
‫‪2‬‬ ‫‬
‫‪(n + 1) 2n2 + 7n + 6‬‬
‫=‬
‫‪2‬‬
‫)‪(n + 1) (n + 2) (2n + 3‬‬
‫=‬
‫‪2‬‬

‫וזו בדיוק התוצאה המבוקשת‪.‬‬

‫דוגמא כשל נפוץ בהוכחות באינדוקציה מתואר על ידי ה`הוכחה` הבאה שכל הסוסים בעלי‬
‫אותו הצבע‪ .‬פורמלית‪ ,‬שבכל קבוצה של סוסים‪ ,‬כל הסוסים בעלי אותו צבע‪ .‬האינדוקציה‬
‫היא על גודל הקבוצה ומתחילה מ־‪.1‬‬
‫‪) .1‬בסיס( בקבוצה של סוס בודד כל הסוסים באותו הצבע שכן קיים בה רק סוס בודד‪.‬‬
‫‪) .2‬צעד( בהינתן קבוצה בעלת ‪ n + 1‬סוסים נוציא את אחד הסוסים החוצה וניוותר עם‬
‫‪ n‬סוסים שכולם באותו הצבע‪ .‬כעת נחזיר את הסוס לקבוצה ונוציא סוס אחר ושוב‬
‫נקבל קבוצה שבה כל הסוסים בעלי אותו הצבע‪ ,‬ולכן הסוס שהוצאנו בהתחלה הוא‬
‫בעל אותו צבע כמו היתר‪.‬‬
‫הרמאות ב`הוכחה` הזו היא בכך שצעד האינדוקציה אינו עובד כאשר ‪) n = 1‬יש לשים לב‬
‫כי עבור ‪ n > 1‬הוא עובד‪ ,‬אך זה חסר משמעות(‪.‬‬

‫טענה ‪) 5.2‬אינדוקציה שלמה על הטבעיים במשתנה יחיד( אם ‪ A0 , A1 , A2 , . . .‬היא סדרה‬


‫של טענות‪ ,‬כך שמתקיימים שני התנאים הבאים‪:‬‬

‫‪) .1‬בסיס האינדוקציה( ‪ A0‬נכונה‪.‬‬

‫‪16‬‬
‫‪) .2‬צעד האינדוקציה( אם ‪ A1 , A2 , . . . , Ai‬נכונות כולן‪ ,‬אז גם ‪ Ai+1‬נכונה‪.‬‬

‫אז כל הטענות ‪ A0 , A1 , A2 , . . .‬נכונות‪.‬‬

‫אינדוקציה שלמה נבדלת מאינדוקציה `רגילה` בכך שקל יותר להוכיח את צעד האינדוקציה‬
‫מכיוון שניתן להיעזר בנכונות כל הטענות ‪ A1 , . . . , Ai‬ולא רק ב־ ‪ Ai‬עצמה; עם זאת‪ ,‬לרוב‬
‫אין בה צורך‪.‬‬

‫דוגמא נוכיח שלכל מספר טבעי חיובי קיים פירוק למכפלה של מספרים ראשוניים‪:‬‬
‫בסיס‪ :‬עבור ‪” n = 1‬המכפלה הריקה“ היא הפירוק שאנחנו מחפשים )אפשר גם להתחיל‬
‫את האינדוקציה מ־‪ n = 2‬למי שקונספט המכפלה הריקה מפריע לו בשלב זה(‪.‬‬
‫צעד‪ :‬נניח שלכל מספר טבעי קטן מ־‪ n‬קיים פירוק למכפלה של מספרים ראשוניים‪.‬‬
‫נתבונן ב־‪ .n‬אם הוא עצמו ראשוני‪ ,‬אז ‪ n‬היא המכפלה המבוקשת; אחרת‪ n = a · b ,‬כך‬
‫ש־‪ a, b < n‬שניהם‪ .‬עבור כל אחד מהם קיים פירוק למכפלה של ראשוניים‪ ,‬כך שמכפלת‬
‫שתי המכפלות הללו היא הפירוק המבוקש של ‪.n‬‬
‫בדוגמה הזו האינדוקציה השלמה היא הכרחית‪ ,‬שכן אנחנו לא יכולים להפיק פירוק של‬
‫‪ n‬מתוך פירוק של ‪ n − 1‬־ אנחנו נאלצים ללכת יותר אחורה באינדוקציה‪.‬‬

‫טענה ‪) 5.3‬אינדוקציה דו ממדית( אם ‪ An,m‬היא קבוצה של טענות )‪ n, m ≥ 0‬טבעיים( כך‬


‫שמתקיימים שני התנאים הבאים‪:‬‬

‫‪) .1‬בסיס( ‪ A0,0‬נכונה‪.‬‬

‫‪) .2‬צעד( לכל ‪ m, n ∈ N‬אם ‪ Ai,j‬נכונה לכל ‪ 0 ≤ i ≤ n‬ו־‪ 0 ≤ j ≤ m‬כך ש־‬


‫)‪ ,(i, j) 6= (n, m‬אז גם ‪ An,m‬נכונה‪.‬‬

‫אז כל הטענות ‪ An,m‬נכונות‪.‬‬

‫דוגמא נוכיח באינדוקציה שמספר האפשרויות לבחור ‪ m‬מתוך ‪ n‬איברים עם חשיבות לסדר‬
‫!‪n‬‬
‫!)‪.Pnm = (n−m‬‬ ‫וללא חזרות הוא‬
‫בסיס‪ :‬מספר האפשרויות לבחור ‪ 0‬מתוך ‪ 0‬איברים הוא ‪“) 1‬הבחירה הריקה“(‪ ,‬ואכן‬
‫!‪0‬‬
‫!)‪.P00 = (0−0‬‬ ‫‪= 11 = 1‬‬
‫צעד‪ :‬כדי לבחור ‪ m‬מתוך ‪ n‬איברים עם חשיבות לסדר וללא חזרות אפשר לפרק לשני‬
‫מקרים‪ :‬ראשית‪ ,‬מספר האפשרויות לבחור ‪ m‬מתוך ‪ n − 1‬האיברים הראשונים הוא‪ ,‬על‬
‫‪m‬‬ ‫!)‪(n−1‬‬
‫‪ .Pn−1‬שנית‪ ,‬אם בוחרים את האיבר ה־‪n‬־י זה יכול‬ ‫!)‪= (n−m−1‬‬ ‫פי הנחת האינדוקציה‪,‬‬
‫להיות בכל אחד מ־‪ m‬שלבי הבחירה‪ ,‬כך שיש לנו תהליך של בחירה דו־שלבית‪ :‬ראשית‬
‫בוחרים באיזה שלב ייבחר האיבר ה־‪n‬־י )‪ m‬אפשרויות( ושנית בוחרים את ‪ m − 1‬האיברים‬
‫הנותרים מבין ‪ n − 1‬האיברים הנותרים לבחירה‪ .‬מספר האפשרויות הכולל במקרה זה הוא‬
‫!)‪m(n−1‬‬
‫‪m−1‬‬
‫‪ .mPn−1‬נותר לנו כעת לחבר את שני המקרים השונים‪:‬‬ ‫!))‪= (n−1−(m−1‬‬ ‫!)‪= m(n−1‬‬
‫!)‪(n−m‬‬

‫‬ ‫‬
‫!)‪(n − 1‬‬ ‫!)‪m (n − 1‬‬ ‫‪n−m‬‬ ‫‪m‬‬
‫‪+‬‬ ‫!)‪= (n − 1‬‬ ‫‪+‬‬
‫!)‪(n − m − 1‬‬ ‫!)‪(n − m‬‬ ‫!)‪(n − m)! (n − m‬‬
‫‪n‬‬ ‫!‪n‬‬
‫· !)‪= (n − 1‬‬ ‫=‬
‫!)‪(n − m‬‬ ‫!)‪(n − m‬‬

‫‪17‬‬
‫כמבוקש‪.‬‬
‫‪m−1‬‬ ‫‪m‬‬
‫‪ .Pn−1‬כלומר‪ ,‬הניסוח‬ ‫‪ Pn−1‬ו־‬ ‫נשים לב שבהוכחה האינדוקטיבית הזו נזקקנו לערכים‬
‫של האינדוקציה הדו־ממדית בתור מעין ”אינדוקציה שלמה“ ולא רק טענה מהצורה ”אם‬
‫‪ Pn,m‬נכונה אז גם ‪ Pn+1,m‬ו־ ‪ Pn,m+1‬נכונות“ היה הכרחי כבר עבור הדוגמא הפשוטה הזו‪.‬‬

‫רקורסיה‬ ‫‪5.2‬‬
‫הגדרה רקורסיבית היא הגדרה של סדרה או פונקציה )או אובייקטים כלליים יותר( שבה כל‬
‫ערך מוגדר באמצעות הערכים של קודמיו‪ ,‬פרט אולי למספר ערכים התחלתיים שמוגדרים‬
‫במפורש‪.‬‬
‫נוסחה רקורסיבית היא לעתים קרובות פשוטה יותר מנוסחה סגורה עבור אותה סדרה‬
‫)ולעתים ניתן למצוא נוסחה רקורסיבית אף שאין נוסחה סגורה פשוטה( אך היא יותר קשה‬
‫לחישוב בפועל )שכן כדי לחשב ערך כלשהו באמצעותה יש לחשב קודם כל את הערכים שהוא‬
‫מסתמך עליהם(‪.‬‬
‫נראה מספר דוגמאות לנוסחאות רקורסיביות המגדירות סדרה‪ ,‬ובנוסף גם הנוסחאות‬
‫הסגורות המתאימות‪ .‬בפרט‪ ,‬כל נוסחאות הספירה שתיארנו בפרק ‪ 2‬ניתנות לתיאור‬
‫כנוסחאות רקורסיביות )ואת חלקן גם תיארנו כך מבלי לציין במפורש כי זה מה שאנו‬
‫עושים(‪.‬‬
‫• סדרה חשבונית‪) an = an−1 + d :‬הנוסחה הסגורה‪.(an = a1 + (n − 1) d :‬‬
‫• סדרה הנדסית‪) an = an−1 · q :‬הנוסחה הסגורה‪.(an = a1 · q n−1 :‬‬

‫‪) a0 = h‬בהמשך‬
‫התחלה ‪0, a1 = 1‬‬
‫√‬ ‫‪n‬‬ ‫√ ‬ ‫תנאי‬ ‫• סדרת פיבונאצ'י‪i ,an = an−1 + an−2 :‬‬
‫עם‪n‬‬
‫‪1‬‬ ‫‪1+‬‬ ‫‪5‬‬ ‫‪1−‬‬ ‫‪5‬‬
‫‪.(an = √5‬‬ ‫‪2‬‬ ‫‪−‬‬ ‫‪2‬‬ ‫נראה כיצד מוצאים את הנוסחה הסגורה‪,‬‬

‫• סידורים בשורה‪) Pn = n · Pn−1 :‬נוסחה סגורה‪ ,Pn = n! :‬כפי שכבר ראינו(‪.‬‬


‫‪k−1‬‬
‫‪k‬‬
‫‪ Pnk = Pn−1‬עם תנאי ההתחלה‬ ‫‪+ k · Pn−1‬‬ ‫• בחירה בלי חזרות ועם חשיבות לסדר‪:‬‬
‫‪k‬‬ ‫!‪n‬‬
‫!)‪.(Pn = (n−k‬‬ ‫‪ Pn0 = 1‬לכל ‪) n‬נוסחה סגורה‪:‬‬

‫• בחירה עם חזרות ועם חשיבות לסדר‪ P Pnk = n · P Pnk−1 :‬עם תנאי ההתחלה‬
‫‪) P Pn0 = 1‬נוסחה סגורה‪.(P Pnk = nk :‬‬
‫‪k−1‬‬
‫‪ Cnk = Cn−1‬עם תנאי ההתחלה‬ ‫‪k‬‬
‫‪+ Cn−1‬‬ ‫• בחירה בלי חזרות ובלי חשיבות ‬
‫לסדר‪:‬‬
‫‪ Cn0 = 1‬ו־‪) Cnn = 1‬נוסחה סגורה‪.(Cnk = nk :‬‬
‫‪k−1‬‬
‫‪ CCnk = CCn−1‬עם תנאי ההתחלה‬ ‫‪k‬‬
‫‪+CCn−1‬‬ ‫• בחירה עם חזרות ובלי חשיבות לסדר‪:‬‬
‫‪n+k−1‬‬
‫‪k‬‬
‫‬
‫= ‪.(CCn‬‬ ‫‪k‬‬ ‫‪ Cn0 = 1‬ו־‪) C0k = 1‬נוסחה סגורה‪:‬‬
‫נציג כעת דוגמא מעט יותר מורכבת‪:‬‬

‫דוגמא הפרת סדר על ‪ n‬איברים היא תמורה על המספרים ‪ 1, 2, . . . , n‬שבה לכל ≤ ‪1 ≤ i‬‬
‫‪ ,n‬המספר ה־‪ i‬אינו נמצא במקום ה־‪ .i‬למשל‪ 312 ,‬היא הפרת סדר על ‪ 3‬איברים ואילו ‪321‬‬
‫לא )כי ‪ 2‬נמצא במקום ‪.(2‬‬
‫נסמן ב־ ‪ Dn‬את מספר הפרות הסדר על ‪ n‬איברים‪.‬‬
‫ניתן לחשב את ‪ Dn‬כך‪ :‬עבור ‪ ,1‬יש לנו )‪ (n − 1‬בחירות של מקום עבורו )כי את מקום‬
‫‪ 1‬לא ניתן לבחור בשבילו(‪ .‬לאחר מכן אנו נותרים עם ‪ n − 1‬מספרים שיש לסדר‪ .‬נאמר‬

‫‪18‬‬
‫ששמנו את ‪ 1‬במקום ‪ ,i‬אז יש שתי אפשרויות‪ :‬או ש־‪ i‬יושם במקום ‪ ,1‬או שלא‪ .‬אם הוא‬
‫מושם במקום ‪ ,1‬אז אפשר לשכוח הן מ־‪ 1‬והן מ־‪ i‬ולטפל ב־‪ n − 2‬המספרים הנותרים באופן‬
‫בלתי תלוי‪ ,‬כלומר יש ‪ Dn−2‬הפרות סדר במקרה זה; ואילו אם ‪ i‬אינו מושם במקום מס'‬
‫‪ ,1‬אז אפשר לחשוב על ‪ i‬כאילו הוא עצמו המספר ‪ 1‬ואסור לו להיות במקום ‪ ,1‬וזהו התנאי‬
‫הרגיל של הפרות סדר‪ ,‬ולכן יש לנו ‪ Dn−1‬הפרות סדר במקרה זה‪.‬‬
‫קיבלנו את הנוסחה הרקורסיבית ] ‪ .Dn = (n − 1) [Dn−1 + Dn−2‬בהערת אגב נציין‬
‫סגורה קומבינטורית‪ ,‬אך בהמשך נראה גישה נוספת לטיפול בבעיה זו‬ ‫נוסחה ‬ ‫שלא קיימת‬
‫!‪) Dn = n‬הסוגריים המרובעים מציינים את פונקצית הערך השלם ־‬
‫‬
‫‪e‬‬ ‫ש־‬ ‫נקבל‬ ‫שממנה‬
‫!‪.( n‬‬
‫‪e‬‬ ‫ל־‬ ‫ביותר‬ ‫הקרוב‬ ‫הטבעי‬ ‫המספר‬

‫כלל ההכלה וההפרדה‬ ‫‪6‬‬


‫נתונות שתי קבוצות ‪ A, B‬ואנו מעוניינים לדעת מהו |‪ .|A ∪ B‬אם הקבוצות זרות )ללא‬
‫איברים משותפים( אז |‪ |A ∪ B| = |A| + |B‬־ זהו עקרון החיבור‪ .‬אך מה קורה אם‬
‫הקבוצות אינן זרות‪ ,‬כלומר הקבוצה ‪ A ∩ B‬של האיברים המשותפים לשתיהן אינה ריקה?‬
‫במקרה זה הבעיה ב־|‪ |A| + |B‬הוא שאיברים משותפים ל־‪ A, B‬נספרים פעמיים; פעם‬
‫כאיברי ‪ A‬ופעם כאיברי ‪ .B‬את הטעות הזו ניתן `לתקן` על ידי כך שמחסרים מהסכום‬
‫הכולל את מספר האיברים שנספרו פעמיים‪ ,‬כלומר נקבל את הנוסחה‪:‬‬

‫|‪|A ∪ B| = |A| + |B| − |A ∩ B‬‬

‫נוסחה זו נכונה לכל זוג קבוצות ‪.A, B‬‬


‫נעבור כעת למקרה של שלוש קבוצות‪ .|A ∪ B ∪ C| :‬ניתן היה לקוות שגודל הקבוצה‬
‫יהיה |‪ |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C‬אך זה אינו נכון ומעיד על כך‬
‫שלא ניתן להסתפק בבחינת זוגות של קבוצות בלבד‪ .‬הבעיה היא שאיבר שנמצא בכל שלוש‬
‫הקבוצות ייספר בחיוב שלוש פעמים )עם |‪ (|A| , |B| , |C‬אבל גם לשלילה שלוש פעמים )עם‬
‫|‪ (|A ∩ B| , |A ∩ C| , |B ∩ C‬ולכן בסך הכל יוסיף ‪ 0‬לספירה הכוללת )בזמן שהוא אמור‬
‫להוסיף ‪ .(1‬לכן כדי לתקן אנו מוסיפים עוד פעם אחת את האיברים שבכל שלוש הקבוצות‪,‬‬
‫כלומר מחברים לסכום את |‪ |A ∩ B ∩ C‬ומקבלים את הנוסחה הנכונה‪:‬‬

‫|‪|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C‬‬

‫מכאן אנו מגיעים באופן טבעי למקרה הכללי‪:‬‬

‫משפט ‪) 6.1‬כלל ההכלה וההפרדה( אם ‪ A1 , . . . , An‬הן קבוצות אז‬

‫‪ n‬‬ ‫ ‬
‫ [ ‬ ‫‪X‬‬ ‫‪X‬‬
‫ ‪ Ai‬‬ ‫=‬ ‫‪|Ai | −‬‬ ‫‪|Ai ∩ Aj | +‬‬
‫ ‬ ‫ ‬
‫ ‬ ‫ ‬
‫‪i=1‬‬ ‫‪1≤i≤n‬‬ ‫‪1≤i,j≤n‬‬
‫‪X‬‬ ‫‪n−1‬‬
‫‪+‬‬ ‫)‪|Ai ∩ Aj ∩ Ak | − · · · + (−1‬‬ ‫| ‪|A1 ∩ · · · ∩ An‬‬
‫‪1≤i,j,k≤n‬‬

‫‪19‬‬
‫‪Sn‬‬
‫נספר בדיוק פעם אחת באגף ימין‪ ,‬אחרי‬ ‫הוכחה‪ :‬יש להראות שכל איבר של ‪Ai‬‬
‫‪i=1‬‬
‫שמקזזים ספירות חיוביות ושליליות‪.‬‬
‫נניח שהאיבר מופיע בדיוק ב־‪ t‬מתוך ‪ n‬הקבוצות‪ .‬מספר הפעמים שבהן הוא נספר‬
‫באותו איבר בסכום שבו רצים על חיתוכים של ‪ i‬קבוצות תלוי ב־‪ ;i‬אם ‪ i > t‬אז האיבר אינו‬
‫משתתפת בחיתוך קבוצה שאינה מכילה אותו‪.‬‬ ‫נספר כלל כי בחיתוך של ‪ i‬קבוצות בהכרח ‬
‫לעומת זאת‪ ,‬אם ‪ i ≤ t‬אז הוא מופיע בדיוק ב־ ‪ ti‬מהחיתוכים ־ אלו שבהם משתתפות רק‬
‫‪Pt‬‬ ‫קבוצות שמכילות אותו‪.‬‬
‫‪i−1 t‬‬
‫)‪ , i=1 (−1‬כעת‪ ,‬מהבינום של ניוטון‪:‬‬ ‫‪i‬‬ ‫היא‬ ‫איבר‬ ‫אותו‬ ‫עבור‬ ‫על כן‪ ,‬הספירה‬

‫‪t‬‬ ‫‬ ‫‪t‬‬ ‫‬


‫‪X‬‬ ‫‪i−1‬‬ ‫‪t‬‬ ‫‪X‬‬ ‫‪i‬‬ ‫‪t‬‬
‫)‪(−1‬‬ ‫=‬ ‫‪1−‬‬ ‫)‪(−1‬‬
‫‪i=1‬‬
‫‪i‬‬ ‫‪i=0‬‬
‫‪i‬‬
‫‪t‬‬
‫=‬ ‫‪1 − (1 − 1) = 1‬‬

‫כנדרש‪.‬‬
‫לרוב השימוש שלנו לעקרון ההכלה וההפרדה הוא כזה‪ :‬נתון `עולם` בן ‪ n‬איברים‪ ,‬ומספר‬
‫קבוצות ‪ A1 , . . . , Ak‬שאבריהן נלקחים מתוך העולם ואנו חושבים עליהן כעל `תכונות רעות`‬
‫מטרתנו היא למצוא את כמות האיברים שאינם מקיימים אף תכונה‬ ‫שהאיברים יכולים לקיים‪ T.‬‬
‫‪ k‬‬
‫רעה‪ ,‬כלומר את ‪ . i=1 Ai‬מעקרון ההכלה וההפרדה נקבל‪:‬‬
‫ ‬

‫‪ k‬‬ ‫ ‬ ‫‪ k‬‬ ‫ ‬
‫ \ ‬ ‫ [ ‬ ‫‪X‬‬ ‫‪n‬‬
‫= ‪ Ai‬‬ ‫‪n − Ai = n −‬‬ ‫| ‪|Ai | + · · · + (−1) |A1 ∩ · · · ∩ An‬‬
‫ ‬ ‫ ‬ ‫ ‬ ‫ ‬
‫ ‬ ‫ ‬ ‫ ‬ ‫ ‬
‫‪i=1‬‬ ‫‪i=1‬‬

‫ניסוח נוסף שהוא נוח מעט יותר לעבודה הוא זה‪ :‬אם ישנם ‪ n‬איברים ו־‪ k‬תכונות‬
‫‪ ,P1 , . . . , Pk‬נסמן ב־) ‪ w (Pi‬את מספר האיברים שמקיימים את ‪ ,Pi‬ב־) ‪ w (Pi Pj‬את מספר‬
‫‪ P‬וגם את ‪ ,Pj‬וכן הלאה‪ ,‬ולכל מספר טבעי ‪ r‬נשתמש בסימון‬‫האיברים שמקיימים גם את ‪Pi‬‬
‫) ‪) w (r) = 1≤i1 ,...,ir ≤k w (Pi1 · · · Pir‬לסימון זה אין משמעות קומבינטורית; אותו איבר‬
‫יכול להיספר בו כמה וכמה פעמים(‪ .‬נקבל את הניסוח הבא של כלל ההכלה וההפרדה‪:‬‬

‫משפט ‪) 6.2‬כלל ההכלה וההפרדה‪ ,‬ניסוח באמצעות תכונות( יהא )‪ E (0‬מספר האיברים‬
‫שאינם מקיימים אף תכונה ‪ ,‬אז‪:‬‬

‫‪Pk‬‬ ‫‪r‬‬
‫)‪E (0‬‬ ‫=‬ ‫‪r=0‬‬ ‫)‪(−1) w (r‬‬

‫דוגמא מבין המספרים ‪ ,1, 2, . . . , 300‬כמה אינם מתחלקים ב־‪ 7 ,3‬או ‪?11‬‬
‫כאן `תכונה רעה` היא התחלקות ב־‪ 7 ,3‬או ‪ 11‬־ כלומר‪ ,‬יש לנו שלוש תכונות‪ ,‬שנסמן‬
‫‪ 300‬ולכן ‪  .w (0) = 300‬‬ ‫מספרים‬ ‫‪ .P3 , P7 , P11‬יש ‪300‬‬
‫‪w (P11 ) = 300‬‬ ‫‪ w (P7 ) = 300‬ו־=‬
‫ ‬ ‫‬
‫‪11‬‬ ‫‪7‬‬ ‫קל לראות כי ‪= 42 ,w (P3 ) = 3 = 100‬‬
‫‪ .27‬לכן ‪w (1) = 27 + 42 + 100 = 169‬‬

‫‪20‬‬
‫כמו כן מכיוון ש־‪ 3, 7, 11‬כולם ראשוניים‪ ,‬מספר מתחלק בכמה מהם רק אם הוא מתחלק‬
‫שלהם‪ .‬כלומר‪:‬‬ ‫במכפלה ‬
‫‪ .w (P7 P11 ) = 300‬לכן‬
‫ ‬ ‫ ‪ 300‬‬ ‫‪300‬‬
‫‪77‬‬ ‫=‬ ‫‪3‬‬ ‫‪,w‬‬ ‫‪(P‬‬ ‫‪P‬‬
‫‪3 11‬‬ ‫)‬ ‫=‬ ‫‪33‬‬ ‫=‬ ‫‪9‬‬ ‫‪,w‬‬ ‫‪(P‬‬ ‫‪P‬‬
‫‪3 7‬‬ ‫)‬ ‫=‬ ‫‪21‬‬ ‫‪= 14‬‬
‫‪w (2) = 3 + 9 + 14 = 26‬‬
‫‪ w (P3 P7 P11 ) = 300‬ולכן ‪.w (3) = 1‬‬‫ולסיום ‪231 = 1‬‬
‫מנוסחת ההכלה וההפרדה נקבל כי כמות המספרים שאינם מתחלקים ב־‪ 3,7,11‬היא‬
‫בדיוק‬

‫)‪E (0‬‬ ‫=‬ ‫)‪w (0) − w (1) + w (2) − w (3‬‬


‫=‬ ‫‪300 − 169 + 26 − 1‬‬
‫=‬ ‫‪156‬‬

‫הפתרון עשוי להיראות טרחני ומסובך‪ ,‬אך בפועל הכלה והפרדה משפרת משמעותית את‬
‫הסיבוכיות של אלגוריתם שמבצע אותה אוטומטית; פתרון נאיבי לבעיה שלעיל דורש לעבור‬
‫על כל ‪ 300‬המספרים ולבדוק לכל אחד מהם התחלקות; הפתרון עם הכלה והפרדה דורש‬
‫חישוב ‪ 7‬פעולות חילוק בלבד ועוד ביצוע של מספר פעולות סיכום שעלותן זניחה‪ .‬באופן‬
‫כללי אם הטווח שלנו הוא עד ‪ n‬ואנו בודקים התחלקות ב־‪ k‬ראשוניים אז פתרון נאיבי דורש‬
‫)‪ O (n · k‬פעולות חילוק‪ ,‬ופתרון עם הכלה והפרדה דורש ‪ O 2k‬פעולות כאלו )כל פעולה‬
‫מתבצעת בזמן שהוא פולינומי ב־‪ ,(log n‬כך שעבור ‪ k‬קטן )ובפרט קבוע( ו־‪ n‬גדול מדובר‬
‫על פתרון יעיל משמעותית‪.‬‬

‫דוגמא יהא ‪ Dn‬מספר הפרות הסדר על ‪ n‬איברים‪ :‬פרמוטציות של ‪ 1, . . . , n‬שבהן לכל ‪i‬‬
‫המספר ‪ i‬אינו נמצא במקום ה־‪ .i‬ראינו כבר כיצד למצוא נוסחת נסיגה עבור ‪ ;Dn‬ניעזר כעת‬
‫בעיקרון ההכלה וההפרדה ובקצת חשבון דיפרנציאלי ואינטגרלי כדי למצוא נוסחה סגורה‪.‬‬
‫התכונה ‪ Pi‬תהיה התכונה `המספר ‪ i‬נמצא במקום ה־‪.`i‬‬
‫חישוב )‪ w (r‬במקרה זה‪ .‬לכל ‪ ,r‬ראשית נבחר‬ ‫הסימטריה של הבעיה מקלה מאוד על ‬
‫‪ r‬מתוך ‪ n‬מקומות שאנחנו רוצים `לקלקל` ) ‪ nr‬אפשרויות(‪ ,‬ולאחר מכן נספור את מספר‬
‫התמורות שבהן המקומות שבחרנו `מקולקלים`‪ .‬ייתכן שעוד מקומות יהיו מקולקלים אך זה‬
‫לא משנה עבורנו )זה בדיוק הכוח שבהכלה והפרדה(‪ .‬כדי לקלקל ‪ r‬מקומות אנחנו מציבים‬
‫בכל אחד מהם את המספר שמקלקל אותו‪ ,‬ואז נותרים לנו ‪ n − r‬מקומות שבהם אפשר‬
‫כלומר יש לנו !)‪ (n − r‬אפשרויות‪.‬‬ ‫לסדר באופן חופשי את המספרים‪,‬‬
‫!‪ ,w (r) = nr (n − r)! = n‬ומכאן נקבל‪:‬‬
‫‬
‫בסך הכל קיבלנו כי !‪r‬‬
‫‪Pn‬‬ ‫‪r‬‬ ‫‪Pn‬‬ ‫‪r‬‬ ‫‪Pn (−1)r‬‬
‫!‪Dn = r=0 (−1) w (r) = r=0 (−1) n‬‬ ‫!‪r! = n‬‬ ‫‪r=0‬‬ ‫!‪r‬‬
‫כאן מסתיימת הקומבינטוריקה אך בעזרת חשבון דיפרנציאלי ואינטגרלי ניתן להתקדם‬
‫עוד קצת‪:‬‬
‫‪Pn‬‬ ‫‪r‬‬ ‫‪P∞ (−1)r‬‬ ‫‪P∞ xr‬‬
‫)‪ r=0 (−1‬הוא קירוב‬ ‫!‪r‬‬ ‫ש־‬ ‫מכאן‬ ‫‪.e‬‬ ‫‪−1‬‬
‫=‬ ‫‪r=0‬‬ ‫!‪r‬‬ ‫ולכן‬ ‫‪,e‬‬ ‫‪x‬‬
‫=‬ ‫!‪r=0 r‬‬ ‫ש־‬ ‫ידוע‬
‫של ‪ ,e−1‬וגודל הטעות הוא זניח‪ .‬מכאן ש־ ‪ ,Dn ≈ e‬ובפועל ניתן לראות ש־ ‪Dn = e‬‬
‫ !‪ n‬‬ ‫!‪n‬‬

‫!‪ ( n‬לכל ‪ .n‬מכאן אנו רואים שכלל ההכלה‬ ‫) ‪ Dn‬הוא המספר הטבעי הקרוב ביותר ל־ ‪e‬‬
‫וההפרדה סייע לנו למצוא נוסחה מדוייקת עבור ‪ Dn‬אף אם הוא לא נתן אותה במפורש‬
‫בעצמו‪.‬‬

‫‪21‬‬
‫חלוקות‬ ‫‪7‬‬
‫נחזור כעת לבעיה שכבר עסקנו בה‪ :‬בכמה דרכים ניתן לחלק ‪ n‬כדורים ל־‪ k‬תאים‪ ,‬בהינתן‬
‫אילוצים מסויימים?‬
‫נראה את הפתרון עבור הרבה מהאילוצים האפשריים‪.‬‬
‫‪ n .1‬כדורים זהים‪ k ,‬תאים שונים ולכל היותר כדור אחד בכל תא‪ :‬כאן יש לבחור את‬
‫‪ n‬מתוך ‪ k‬התאים שבהם יושמו כדורים‪.‬‬
‫בגלל שהכדורים זהים אין חשיבות לסדר הבחירה‪.‬‬
‫בגלל שיש כדור אחד לכל היותר בכל תא אין חזרות בבחירה‪.‬‬
‫מסקנה‪ nk :‬אפשרויות‪.‬‬
‫‪ n .2‬כדורים שונים‪ k ,‬תאים שונים ולכל היותר כדור אחד בכל תא‪ :‬גם כאן בוחרים את‬
‫‪ n‬מתוך ‪ k‬התאים שבהם יושמו כדורים‪.‬‬
‫בגלל שהכדורים שונים יש חשיבות לסדר הבחירה‪.‬‬
‫כדור אחד לכל היותר בכל תא אין חזרות בבחירה‪.‬‬‫בגלל שיש ‬
‫מסקנה‪ Pkn = nk n! :‬אפשרויות‪.‬‬
‫‪ n .3‬כדורים שונים‪ k ,‬תאים שונים‪ ,‬ללא מגבלות נוספות‪ :‬כאן לכל כדור בוחרים אחד‬
‫מ־‪ n‬התאים האפשריים‪.‬‬
‫בגלל שהכדורים שונים יש חשיבות לסדר הבחירה‪.‬‬
‫בגלל שאין מגבלות נוספות זו בחירה עם חזרות‪.‬‬
‫מסקנה‪ k n :‬אפשרויות‪.‬‬
‫‪ n .4‬כדורים זהים‪ k ,‬תאים שונים‪ ,‬ללא מגבלות נוספות‪ :‬כאן לכל כדור בוחרים אחד‬
‫מ־‪ k‬התאים האפשריים‪.‬‬
‫בגלל שהכדורים זהים אין חשיבות לסדר הבחירה‪.‬‬
‫שאין מגבלות נוספות זו בחירה עם חזרות‪.‬‬ ‫בגלל‬
‫‪ CCkn = n+k−1‬אפשרויות‪.‬‬
‫‬
‫‪n‬‬ ‫מסקנה‪:‬‬
‫‪ n .5‬כדורים שונים‪ k ,‬תאים שונים‪ ,‬סדר הכדורים בכל תא חשוב‪ :‬כאן לא ניתן לכל‬
‫כדור לבחור תא )כי בצורה כזו לא ניתן לקבל‪ ,‬למשל‪ ,‬שכדור מס' ‪ 1‬נמצא אחרי כדור‬
‫מס' ‪ 2‬באותו התא(‪.‬‬
‫פתרון‪ :‬ראשית כל מחלקים ‪ n‬כדורים זהים לתאים‪ .‬לאחר מכן בוחרים תמורה‬
‫של ‪ 1, . . . , n‬וממספרים את הכדורים על פי התמורה וסדר הופעתם בתאים‪ .‬סה`כ‬
‫‪ n! · CCkn‬אפשרויות‪.‬‬
‫‪ n .6‬כדורים שונים‪ k ,‬תאים שונים‪ ,‬אין תא ריק‪.‬‬
‫עבור ‪ k > n‬התשובה היא ‪ 0‬ולכן נניח כי ‪.k ≤ n‬‬
‫אם הכדורים היו זהים‪ ,‬הפתרון היה לחלק כדור לכל תא ואז לחלק את ‪ n−k‬הנותרים‬
‫בלי חשיבות לסדר ועם חזרות‪ .‬נסיון לנקוט בגישה זו כאן יוביל לספירה כפולה )אם‬
‫‪ 1, 2‬באותו תא זה ייספר פעם אחת כאשר ‪ 1‬ייבחר להיות כדור שמחולק בשלב‬
‫הראשון ו־‪ 2‬מחולק בשלב השני‪ ,‬ופעם כש־‪ 2‬מחולק בשלב הראשון ו־‪ 1‬בשלב השני(‪.‬‬
‫במקום זאת נפתור באמצעות הכלה והפרדה‪ .‬התכונה ‪ Pi‬תהיה `התא ‪ i‬ריק`‪.‬‬
‫את )‪ w (r‬נחשב באופן הבא‪ :‬מספר הדרכים לבחור ‪ r‬מתוך ‪ k‬תאים כדי שיהיו ריקים‬
‫‪n‬‬
‫) ‪ ,( kr‬וחלוקה חופשית של כדורים ל־‪ k − r‬התאים הנותרים ) )‪.((k − r‬‬
‫‬
‫‪Pk‬‬ ‫‪r‬‬ ‫‪n‬‬
‫נקבל את הפתרון )‪ T (n, k) = r=0 (−1) kr (k − r‬אפשרויות‪ .‬למרבה הצער‪,‬‬
‫‬

‫אין נוסחה סגורה‪.‬‬

‫‪22‬‬
‫‪ n .7‬כדורים שונים‪ k ,‬תאים זהים‪ ,‬אין תא ריק‪.‬‬
‫ריקות`‪ .‬מספר זה‪,‬‬
‫‬ ‫‬ ‫לא‬ ‫זרות‬ ‫קבוצות‬ ‫ל־‪k‬‬ ‫זהו ניסוח שקול ל`חלוקה של ‪ n‬מספרים‬
‫‪n‬‬
‫‪.‬‬ ‫)‪ ,S (n, k‬נקרא `מספר סטירלינג מהסוג השני` ומסומן לפעמים‬
‫‪k‬‬
‫פתרון‪ :‬נחלק את הכדורים ל־‪ k‬תאים שונים ־ )‪ .T (n, k‬כעת נחלק במספר הסדרים‬
‫)‪.S (n, k) = T (n,k‬‬
‫!‪k‬‬ ‫הפנימיים של תאים ונקבל‬
‫‪ n .8‬כדורים שונים‪ ,‬מספר כלשהו של תאים שונים ואין תא ריק‪ :‬מהתנאים נובעת‬
‫הדרישה ‪ ,k ≤ n‬ולכל ‪ k‬נקבל )‪ T (n, k‬כמקודם‪.‬‬
‫‪Pn‬‬ ‫‪Pn Pk‬‬ ‫‪r‬‬ ‫‪n‬‬
‫התשובה היא )‪.Q (n) = k=1 T (n, k) = k=1 r=0 (−1) kr (k − r‬‬
‫‬

‫‪ n .9‬כדורים שונים‪ ,‬מספר כלשהו של תאים זהים ואין תא ריק‪ .‬מספר זה‪ ,B (n) ,‬נקרא‬
‫`מספר בל`‬
‫כמו ב־‪ ,8‬גם כאן אפשר להציג את הפתרון כסכום‪ ,‬הפעם של מספרי סטירלינג מהסוג‬
‫‪Pn‬‬ ‫השני‪:‬‬
‫)‪B (n) = k=1 S (n, k‬‬
‫‪ n .10‬כדורים זהים‪ k ,‬תאים זהים ואין תא ריק‪ .‬מסומן ב־)‪pk (n‬‬
‫זהה למספר טבלאות יאנג‪ :‬טבלה עם ‪ k‬שורות ו־‪ n‬משבצות בסך הכל‪ ,‬כך שבכל שורה‬
‫אין יותר משבצות מאשר בשורה שקדמה לה‪.‬‬
‫זהה למספר האפשרויות לכתוב את ‪ n‬כסכום של ‪ k‬מספרים טבעיים שמסודרים בסדר‬
‫עולה )למשל‪ 1 + 1 + 1 = 1 + 2 = 3 :‬הן שלוש אפשרויות החלוקה של ‪.(3‬‬
‫קיימת נוסחת הנסיגה הבאה‪:‬‬
‫)‪pk (n) = pk−1 (n − 1) + pk (n − k‬‬
‫כאן המחובר הראשון מתאים לסיטואציה שבה באחד התאים יש בדיוק כדור אחד‪,‬‬
‫והמחובר השני מתאים לסיטואציה שבה בכל התאים יש לפחות שני כדורים‪.‬‬
‫תנאי התחלה‪:‬‬
‫‪) p0 (0) = 1‬חלוקה `ריקה` של אפס כדורים לאפס תאים(‬
‫‪ pk (n) = 0‬כאשר ‪ n ≤ 0‬ו־‪) k > 0‬אם יש מספר חיובי של תאים ואין כדורים‪ ,‬לא‬
‫ניתן לקיים את התנאי שאין תא ריק(‪.‬‬
‫‪ p0 (n) = 0‬כאשר ‪) n > 0‬אם אין תאים ויש כדורים‪ ,‬אין שום דרך לחלק אותם(‪.‬‬
‫מספר כלשהו של תאים זהים ואין תא ריק‪ .‬מסומן ב־)‪.p (n‬‬
‫‪ n .11‬כדורים זהים‪Pn ,‬‬
‫בבירור )‪ ,p (n) = k=1 pk (n‬אך קשה לומר משהו מעבר לכך‪.‬‬
‫)‪ p (n‬־ `פונקציית החלוקה` ־ היא מהפונקציות המפורסמות בקומבינטוריקה ובתורת‬
‫המספרים ועבודה רבה )החורגת מהיקף הקורס( הושקעה בהבנה של התנהגותה‪.‬‬

‫נסכם את כל המקרים הללו בטבלה הבאה‪:‬‬

‫‪23‬‬
‫נוסחה‪/‬סימון‬ ‫הגבלות נוספות‬ ‫תאים ריקים‬ ‫סדר בתא‬ ‫תאים‬ ‫כדורים‬ ‫מקרה‬
‫‪k‬‬
‫‬
‫‪n‬‬ ‫‪ 1‬בתא לכל היותר‬ ‫אפשר‬ ‫אין‬ ‫שונים‬ ‫זהים‬ ‫‪1‬‬
‫!‪k‬‬
‫!)‪(n−k‬‬ ‫‪ 1‬בתא לכל היותר‬ ‫אפשר‬ ‫אין‬ ‫שונים‬ ‫שונים‬ ‫‪2‬‬
‫‪n‬‬
‫‪k‬‬ ‫אין‬ ‫אפשר‬ ‫אין‬ ‫שונים‬ ‫שונים‬ ‫‪3‬‬
‫‪n+k−1‬‬
‫‬
‫‪n‬‬ ‫אין‬ ‫אפשר‬ ‫אין‬ ‫שונים‬ ‫זהים‬ ‫‪4‬‬
‫‪n! · CCkn‬‬ ‫אין‬ ‫אפשר‬ ‫יש‬ ‫שונים‬ ‫שונים‬ ‫‪5‬‬
‫)‪T (n, k‬‬ ‫אין‬ ‫אי אפשר‬ ‫אין‬ ‫שונים‬ ‫שונים‬ ‫‪6‬‬
‫)‪S (n, k‬‬ ‫אין‬ ‫אי אפשר‬ ‫אין‬ ‫זהים‬ ‫שונים‬ ‫‪7‬‬
‫)‪Q (n‬‬ ‫מספר תאים כלשהו‬ ‫אי אפשר‬ ‫אין‬ ‫שונים‬ ‫שונים‬ ‫‪8‬‬
‫)‪B (n‬‬ ‫מספר תאים כלשהו‬ ‫אי אפשר‬ ‫אין‬ ‫זהים‬ ‫שונים‬ ‫‪9‬‬
‫)‪pk (n‬‬ ‫אין‬ ‫אי אפשר‬ ‫אין‬ ‫זהים‬ ‫זהים‬ ‫‪10‬‬
‫)‪p (n‬‬ ‫מספר תאים כלשהו‬ ‫אי אפשר‬ ‫אין‬ ‫זהים‬ ‫זהים‬ ‫‪11‬‬

‫פונקציות יוצרות‬ ‫‪8‬‬


‫מבוא ודוגמאות ראשונות‬ ‫‪8.1‬‬
‫מרבית הבעיות שבהן עוסקים בקומבינטוריקה הן בעיות ספירה עבור פרמטר ‪ :n‬לכל מספר‬
‫טבעי ‪ n ≥ 0‬מתאים מספר ‪ an‬שמתאר את כמות האובייקטים שמתאימים לקריטריונים של‬
‫בעיית הספירה עבור הפרמטר ‪ n‬הספיציפי‪ .‬כך למשל ‪ Dn‬תיאר‪ ,‬לכל ‪ ,n ≥ 0‬את מספר‬
‫הפרמוטציות מגודל ‪) n‬הגודל הוא הפרמטר( שהן הפרות סדר‪ .‬המטרה של הקומבינטוריקה‬
‫היא להבין באופן הטוב ביותר את התנהגות הסדרה ‪.an‬‬
‫באופן פורמלי מעט יותר‪ ,‬בבעיית ספירה קומבינטורית נתונה קבוצה ‪ A‬כך שלכל איבר‬
‫‪ x ∈ A‬אנחנו מתאימים גודל |‪ |x‬שהוא מספר טבעי )כולל ‪ ,(0‬ומגדירים את הסדרה‬
‫|}‪an = |{x ∈ A | x = n‬‬
‫כלומר‪ an ,‬סופר את מספר האיברים ב־‪ A‬מגודל ‪.n‬‬
‫עד כה אופן הפעולה שלנו היה כזה שבו אנחנו `מקפיאים` את ‪ n‬ומנסים למצוא נוסחה‬
‫ספציפית עבור ‪ ,an‬לפעמים בהסתמך על איברים אחרים בסדרה )מה שמניב נוסחת נסיגה(‪.‬‬
‫פונקציות יוצרות הן גישה שונה מהותית לתיאור סדרות‪ ,‬שמצליחה לתפוס את כל הסדרה‬
‫`בבת אחת`‪ .‬גישה זו מאפשרת התמודדות כללית וחזקה יותר עם בעיות ספירה רבות ובפרט‬
‫כאלו שלא ניתן למצוא בהן נוסחה מפורשת עבור ‪ ,an‬אך במבט ראשון היא גם מבלבלת‬
‫ונראית `חלשה יותר` מהשיטות שנלמדו עד כה‪.‬‬
‫הרעיון בפונקציות יוצרות הוא `לשתול` את אברי הסדרה בתור מקדמים בטור חזקות‬
‫אינסופי; טור שכזה מגדיר פונקציה שלאחר מכן ניתן לבצע עליה מניפולציות אלגבריות‬
‫סטנדרטיות שמתבצעות על פונקציות ־ חיבור עם פונקציות אחרות‪ ,‬כפל בסקלרים ובפונקציות‬
‫אחרות‪ ,‬העלאה בחזקה ואפילו גזירה ואינטגרציה‪ .‬לכל המניפולציות הללו משמעויות‬
‫קומבינטוריות‪ .‬המטרה היא למצוא ביטוי מפורש כלשהו לפונקציה היוצרת של הסדרה‪.‬‬
‫מרגע שביטוי שכזה נמצא‪ ,‬ניתן להפיק ממנו לעתים נוסחה מפורשת עבור אברי הסדרה או‬
‫נוסחת נסיגה עבורם‪ ,‬וגם במקרה שהדבר אינו מתאפשר עדיין יש מידע שניתן להפיק דוגמת‬
‫קצב הגידול של הסדרה )לא ניכנס לניתוחים הללו בקורס זה(‪.‬‬
‫קיימים מספר סוגים של פונקציות יוצרות ובקורס זה נציג רק את הפשוט שבהם‪:‬‬
‫∞‬
‫‪ P‬יוצרת( עבור סדרה ‪ ,{an }n=0‬הפונקציה היוצרת של הסדרה היא‬‫הגדרה ‪) 8.1‬פונקציה‬
‫∞‬
‫הביטוי ‪. n=0 an xn‬‬

‫‪24‬‬
‫דיפרנציאלי ואינטגרלי יש חשיבות לתחום ההתכנסות של טורי חזקות כדוגמת‬
‫בחשבון ∞‪P‬‬
‫‪ , n=0 an xn‬אך אנו לא נזדקק בשום שלב להצבת ערכים בתוך ‪ x‬כך שפרטים אלו‬
‫לא יהיו רלוונטיים עבורינו‪.‬‬

‫דוגמא הפונקציה היוצרת של הסדרה הסופית ‪) 1, 2, 1‬שניתן לחשוב עליה כעל הסדרה‬
‫האינסופית ‪ (1, 2, 1, 0, 0, . . .‬היא ‪.f (x) = 1 + 2x + x2‬‬
‫באופן כללי‪ ,‬פונקציה יוצרת של סדרה היא פולינום אם ורק אם הסדרה היא סופית‬
‫)מכילה רק אפסים החל ממקום מסויים(‪.‬‬

‫‪n‬‬ ‫‪n‬‬ ‫‪n‬‬


‫דוגמא לסדרה ‪, . . . , nn‬‬
‫‬ ‫‬ ‫‬ ‫‬
‫= ‪ ak‬יש את הפונקציה היוצרת‬ ‫‪k‬‬ ‫‪ ,‬כלומר הסדרה‬ ‫‪0‬‬ ‫‪,‬‬ ‫‪1‬‬ ‫‪Pn‬‬
‫‪.f (x) = i=0 ni xi‬‬
‫‬
‫‪n‬‬
‫באמצעות הבינום של ניוטון ניתן לפשט את הביטוי‪.f (x) = (1 + x) :‬‬
‫דוגמא זו מעידה על אחד מהגורמים לכוחן הרב של פונקציות יוצרות ־ לרוב ניתן לתת‬
‫להן ביטוי פשוט שקל לבצע בו מניפולציות אלגבריות‪.‬‬

‫‪ ,0, 0, 0, . .P‬כלומר הסדרה ‪ ,an = 0‬יש את הפונקציה היוצרת = )‪f (x‬‬


‫דוגמא לסדרה ‪.‬‬
‫∞‬
‫‪. n=0 0 · xn = 0‬‬

‫‪ ,1, 1, 1, . . P‬כלומר הסדרה ‪ ,an = 1‬יש את הפונקציה היוצרת = )‪f (x‬‬


‫דוגמא לסדרה ‪.‬‬
‫∞‬ ‫‪1‬‬
‫‪. n=0 xn = 1−x‬‬
‫השוויון האחרון הוא הנוסחה המוכרת לסכום של טור הנדסי אינסופי מתכנס ־ אולם‬
‫כזכור‪ ,‬איננו מניחים כלום על ההתכנסות של הטור ולכן אנו נדרשים לנימוק שונה שנראה‬
‫בהמשך‪.‬‬

‫‪ ,1, λ, λP‬כלומר הסדרה ‪ ,an = λn‬יש את הפונקציה היוצרת = )‪f (x‬‬


‫‪2‬‬
‫דוגמא לסדרה ‪, . . .‬‬
‫∞‬ ‫‪n‬‬ ‫‪1‬‬
‫‪. n=0 (λx) = 1−λx‬‬

‫פעולות על פונקציות יוצרות‬ ‫‪8.2‬‬


‫ראשית‪ ,‬עלינו להסביר טוב יותר מה האובייקט שאנו משתמשים בו כשאנו עובדים עם‬
‫פונקציות יוצרות ־ מה שכינינו ”טור חזקות“ ועכשיו נכנה ”טור חזקות פורמלי“ כדי להדגיש‬
‫את ההבדל בין זה ובין טורי החזקות שמופיעים בחדו“א ובדיון בהם עוסקים גם ברדיוס‬
‫התכנסות‪.‬‬
‫אינטואיטיבית‪ ,‬טור חזקות פורמלי הוא אובייקט הדומה לפולינום‪ ,‬רק שבעוד שבפולינום‬
‫יש מספר סופי של מקדמים‪ ,‬בטור חזקות פורמלי יש אינסוף‪.‬‬
‫∞‪P‬‬
‫הגדרה ‪ 8.2‬טור חזקות פורמלי הוא ביטוי מהצורה ‪ . n=0 an xn‬האיברים ‪ an‬נקראים‬
‫המקדמים של הטור‪.‬‬

‫כמו עם פולינומים‪ ,‬כך גם על טורי חזקות אפשר להגדיר פעולות אלגבריות‪:‬‬


‫∞‪P‬‬
‫הגדרה ‪)P8.3‬חיבור של טורי חזקות(‪ :‬בהינתן שני טורי חזקות = )‪a (x) = Pn=0 an xn , b (x‬‬
‫∞‬ ‫∞‬
‫‪ n=0 bn xn‬הסכום שלהם )‪ c (x) = a (x) + b (x‬הוא טור חזקות ‪c (x) = n=0 cn xn‬‬
‫כך ש־ ‪.cn = an + bn‬‬

‫‪25‬‬
‫הגדרת החיבור היא פשוטה‪ .‬הגדרת הכפל מורכבת יותר )כדי לקבל אינטואיציה‪ ,‬כדאי לנסות‬
‫לכפול פולינומים ולראות מה קורה( אך היא גם הסיבה לכוח של ייצוג סדרות באמצעות‬
‫פונקציות יוצרות‪.‬‬
‫∞‪P‬‬ ‫‪n‬‬
‫‪a (x) = n=0‬‬
‫‪)P8.4‬כפל של טורי חזקות(‪ :‬בהינתן שני טורי חזקות = )‪P∞an x , bn(x‬‬ ‫הגדרה‬
‫∞‬ ‫‪n‬‬
‫המכפלה שלהם )‪ c (x) = a (x) b (x‬היא טור חזקות ‪ c (x) = n=0 cn x‬כך‬
‫‪Pn n=0 bn x‬‬
‫ש־ ‪.cn = k=0 ak bn−k‬‬

‫דוגמא נתבונן על שני טורי החזקות‬


‫‪a (x) = 1 + x + x2 + x3 + . . .‬‬
‫‪b (x) = 1 − x‬‬
‫‪ ‬עבור הסדרות ‪ an = 1‬ו־‬ ‫כלומר‪ ,‬הטורים‬
‫‪1‬‬
‫‪‬‬ ‫‪n=0‬‬
‫‪bn = −1 n = 1‬‬
‫‪‬‬
‫‪0‬‬ ‫‪n>1‬‬
‫‪‬‬
‫אינטואיטיבית‪ ,‬המכפלה של שני אלו תניב טור טלסקופי‪:‬‬

‫‪a (x) b (x) = 1 − x + x (1 − x) + x2 (1 − x) + . . .‬‬


‫‪= 1 − x + x − x2 + x2 − x3 + . . .‬‬
‫‪=1‬‬

‫‪Pn‬‬
‫= ‪:cn‬‬ ‫‪k=0‬‬ ‫אבל זה אינו נימוק פורמלי; נימוק פורמלי ייעזר בנוסחה ‪ak bn−k‬‬
‫‪c0 = a0 b0 = 1 · 1 = 1‬‬
‫‪c1 = a0 b1 + a1 b0 = 1 · (−1) + 1 · 1 = −1 + 1 = 0‬‬
‫‪c2 = a0 b2 + a1 b1 + a2 b0 = 1 · 0 + 1 · (−1) + 1 · 1 = 0‬‬
‫‪ nP‬מתקיים ‪:bn−k = 0‬‬ ‫ובאופן כללי עבור ‪ ,n ≥ 1‬מכיוון שאם ‪− k ≤ 1‬‬
‫‪n‬‬
‫‪cn = k=0 ak bn−k = an−1 b1 + an b0 = 1 − 1 = 0‬‬
‫‪1‬‬
‫‪.1 + x + x2 + . . . = 1−x‬‬ ‫זו ההצדקה הפורמלית לכתיב‬
‫‪2 2‬‬ ‫‪1‬‬
‫באופן דומה ניתן גם להוכיח את ‪.1 + λx + λ x + . . . = 1−λx‬‬
‫∞‪P‬‬
‫דוגמא אם ‪ a (x) = n=0 an xn‬היא הפונקציה היוצרת של הסדרה ‪ {an }n≥0‬ו־∈ ‪λ‬‬
‫∞‪P‬‬ ‫‪n‬‬
‫= )‪ λa (x‬היא הפונקציה היוצרת של הסדרה‬ ‫‪ R‬הוא סקלר כלשהו‪ ,‬אז ‪n=0 λan x‬‬
‫‪) {λan }n≥0‬כאן ‪ λ‬הוא טור החזקות שהאיבר הראשון שלו הוא ‪ λ‬וכל יתר האיברים הם ‪.(0‬‬
‫∞‪P‬‬
‫= )‪ a (x‬היא הפונקציה היוצרת של הסדרה ‪ a0 , a1 , a2 , . . .‬אז‬ ‫‪n=0‬‬ ‫אם ‪an xn‬‬ ‫דוגמא‬
‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬
‫‪xa (x) = x‬‬ ‫= ‪an xn‬‬ ‫‪an xn+1‬‬
‫‪n=0‬‬ ‫‪n=0‬‬
‫∞‬
‫‪X‬‬
‫‪= 0 · x0 +‬‬ ‫‪an−1 xn‬‬
‫‪n=1‬‬

‫‪26‬‬
‫היא הפונקציה היוצרת של הסדרה ‪ .0, a0 , a1 , . . .‬כלומר‪ ,‬מכפלה ב־‪ x‬מזיזה את הסדרה‬
‫צעד אחד ימינה ומכניסה ‪ 0‬בהתחלה‪ .‬בדומה‪ ,‬מכפלה ב־ ‪ xk‬תזיז את הסדרה ‪ k‬צעדים ימינה‬
‫ותכניס ‪ k‬אפסים בהתחלה )כאן ‪ x‬הוא טור החזקות ‪.(0 + x + 0x2 + 0x3 + . . .‬‬
‫נחזור כעת לקומבינטוריקה‪ .‬כזכור‪ ,‬בעיות הספירה שלנו הן על פי רוב מהצורה הזו‪:‬‬
‫נתונה לנו מחלקה של אובייקטים ‪ ,A‬ואנו מסמנים ב־ ‪ an‬את מספר האובייקטים ב־‪A‬‬
‫שה“גודל“ שלהם הוא ‪ .n‬למשל‪ ,‬מספר המחרוזות שמורכבות מהתווים }‪ {1, 2, 3‬והן מאורך‬
‫‪ n‬הוא ‪ ;3n‬כאן ה“גודל“ של מחרוזת הוא מספר התווים שבה‪.‬‬
‫כעת נניח שאנו רוצים למצוא את מספר המחרוזות מאורך ‪ n‬שבנויות משני חלקים;‬
‫בחלק הראשון יש מחרוזת מעל }‪ {1, 2, 3‬ובחלק השני יש מחרוזת מעל }‪ .{a, b‬אין מגבלה‬
‫על האורך של כל חלק בנפרד‪ :‬למשל‪ 12ab ,‬היא מחרוזת מתאימה מאורך ‪ 4‬אבל גם ‪3333‬‬
‫וגם ‪ abab‬הן מחרוזות מתאימות שכאלו‪.‬‬
‫אם ננסה למצוא את מספר המחרוזות מאורך ‪ n‬באמצעות עיקרון הכפל‪ ,‬נראה כי קודם‬
‫כל עלינו להחליט כמה אותיות מהמחרוזות יהיו שייכות לחלק הראשון וכמה לחלק השני‪ .‬אם‬
‫מספר האותיות ששייכות לחלק הראשון הוא ‪ ,k‬אז מספר המחרוזות מעל }‪ {1, 2, 3‬עבור‬
‫החלק הראשון הוא ‪ 3k‬ומספר המחרוזות מאורך ‪ n − k‬מעל }‪ {a, b‬עבור החלק השני הוא‬
‫הכל ‪ ,3k · 2n−k‬ומכיוון ש־‪ k‬יכול להיות כל מספר בין ‪ 0‬ל־‪ n‬נקבל בסך‬‫נקבל ‪k‬בסך ‪Pn‬‬ ‫‪.2n−k‬‬
‫‪n−k‬‬
‫‪ k=0 3 · 2‬־ אותו הסכום שהופיע בהגדרת הכפל של פונקציות יוצרות‪.‬‬ ‫הכל‬
‫התרגיל הזה ממחיש את העיקרון הכללי‪:‬‬

‫משפט ‪ 8.5‬יהיו ‪ {an }n≥0‬ו־ ‪ {bn }n≥0‬סדרות כך ש־ ‪ an‬מתאר את מספר האובייקטים מגודל‬
‫‪ n‬במחלקה ‪ A‬ו־ ‪ bn‬מתאר את מספר האובייקטים מגודל ‪ n‬במחלקה ‪ ,B‬ויהיו )‪a (x) , b (x‬‬
‫הפונקציות היוצרות המתאימות‪.‬‬
‫‪) .1‬חיבור( אם ‪ C = A ∪ B‬והאיחוד זר‪ ,‬כלומר כל אובייקט ב־‪ C‬מגודל ‪ n‬הוא או‬
‫אובייקט מגודל ‪ n‬ב־‪ A‬או אובייקט מגודל ‪ n‬ב־‪ B‬ו־∅ = ‪ ,A ∩ B‬אז = )‪c (x‬‬
‫)‪.a (x) + b (x‬‬
‫‪) .2‬כפל( אם ‪ C = A × B‬כך שאיבר ב־‪ C‬מגודל ‪ n‬הוא זוג של איבר מ־‪ A‬ואיבר מ־‪B‬‬
‫שסכום הגדלים שלהם הוא ‪ ,n‬אז )‪.c (x) = a (x) b (x‬‬
‫המשפט נובע מהתכונות הבסיסיות של חיבור וכפל טורי חזקות‪.‬‬
‫נעבור כעת לדוגמאות‪.‬‬

‫דוגמא כמה פתרונות במספרים טבעיים יש למשוואה ‪?x1 + · · · + xk = n‬‬


‫ראינו כבר כי בעיה זו היא דוגמא לבחירה ללא חשיבות לסדר ועם חזרות‪ :‬אנחנו מתחילים‬
‫פעמים אנחנו בוחרים אחד מהמשתנים ומגדילים את‬ ‫כשבכל המשתנים מוצב הערך ‪ ,0‬ו־‪ n‬‬
‫‪. n+k−1‬‬
‫‪n‬‬ ‫ערכו ב־‪ .1‬ראינו גם כי מספר זה הוא‬
‫נחשוב כעת על אותה בעיה מזווית הראייה של פונקציות יוצרות‪.‬‬
‫אם ‪ A = N‬כך שהגודל של מספר הוא פשוט המספר עצמו )‪ ,(|x| = x‬אז האיברים‬
‫מגודל ‪ n‬ב־ ‪ Nk‬הם בדיוק ה־‪k‬־יותשל מספרים טבעיים שסכומם ‪ ,n‬דהיינו פתרון למשוואה‬
‫‪ n+k−1‬איברים מגודל ‪ n‬ב־ ‪ .Nk‬מצד שני‪ ,‬הפונקציה‬ ‫‪k−1‬‬ ‫‪ ,x1 + · · · + xk = n‬כלומר יש‬
‫‪1‬‬
‫‪ 1 + x + x2 + · · · = 1−x‬ולכן הפונקציה היוצרת של ‪ Nk‬היא‬ ‫היוצרת של ‪ N‬היא פשוט‬
‫‪1‬‬
‫‪ . 1−x‬קיבלנו את הזהות השימושית הבאה‪:‬‬ ‫העלאה בחזקת ‪ k‬של‬

‫ ∞‬ ‫‬
‫‪2‬‬
‫‪k‬‬ ‫‪1‬‬ ‫‪X‬‬ ‫‪n+k−1 n‬‬
‫‪1 + x + x + ...‬‬ ‫=‬ ‫‪k‬‬
‫=‬ ‫‪x‬‬
‫)‪(1 − x‬‬ ‫‪n=0‬‬
‫‪k−1‬‬

‫‪27‬‬
‫‪n+k−1‬‬
‫‬
‫= ‪ .CCkn‬בסימון זה‪ ,‬הזהות‬ ‫‪k−1‬‬ ‫כדי לפשט את הסימונים בהמשך‪ ,‬נשתמש בסימון‬
‫שמצאנו היא‬

‫∞‬
‫‪k‬‬ ‫‪1‬‬ ‫‪X‬‬
‫‪1 + x + x2 + . . .‬‬ ‫=‬ ‫‪k‬‬
‫=‬ ‫‪CCkn xn‬‬
‫)‪(1 − x‬‬ ‫‪n=0‬‬

‫דוגמא כמה פתרונות במספרים טבעיים אי זוגיים יש למשוואה ‪?x1 + · · · + xk = n‬‬


‫כלומר‪ ,‬כאשר }‪ xi ∈ {1, 3, 5, . . .‬לכל ‪.1 ≤ i ≤ k‬‬
‫כאן במקום לקחת ‪ A = N‬ניקח את }‪ A = {1, 3, 5, . . .‬ונתבונן ב־‪k‬־יות של ‪.Ak‬‬
‫הפונקציה היוצרת של ‪ A‬היא ‪) x + x3 + x5 + . . .‬כי חזקות זוגיות של ‪ x‬מייצגות את‬
‫המספרים הזוגיים‪ ,‬ואנחנו מחפשים פתרונות שכולם במספרים אי זוגיים(‪.‬‬
‫כדי לקבל ביטוי סגור עבור הטור הזה‪ ,‬נשתמש במניפולציות אלגבריות‪:‬‬

‫‪x + x3 + x5 + . . . = x 1 + x2 + x4 + . . .‬‬
‫‬

‫‪1‬‬
‫= ‪ 1 + x + x2 + . . .‬מראה כי‬ ‫‪1−x‬‬ ‫אותו טיעון שהראה כי‬

‫‪1‬‬
‫= ‪1 + x2 + x4 + . . .‬‬
‫‪1 − x2‬‬

‫)כדי לקבל אינטואיציה‪ ,‬אפשר לסמן ‪ y = x2‬ואז מקבלים = ‪1 + x2 + x4 + . . .‬‬


‫‪1‬‬ ‫‪1‬‬
‫‪.(1 + y + y 2 + . . . = 1−y‬‬ ‫‪= 1−x‬‬ ‫‪2‬‬

‫לכן הפונקציה היוצרת עבור מספר הפתרונות היא‪:‬‬

‫‪k‬‬ ‫‪k‬‬
‫‪x + x3 + x5 + . . .‬‬ ‫‪= xk 1 + x2 + x4 + . . .‬‬
‫‪xk‬‬
‫=‬ ‫‪k‬‬
‫) ‪(1 − x2‬‬
‫‪k‬‬
‫‪x‬‬
‫‪ . (1−x‬ביטוי זה מספיק לנו לצרכים‬ ‫קיבלנו ביטוי סגור פשוט עבור הפונקציה היוצרת‪2 )k :‬‬

‫רבים ובפרט לתרגילים מסובכים יותר שמתבססים על הנוכחי‪ .‬עם זאת‪ ,‬אנו רוצים לנסות‬
‫לחלץ מהפונקציה היוצרת גם נוסחה סגורה עבור מספר הפתרונות‪ ,‬ולכן נפתח את הביטוי‬
‫לטור‪ .‬נזכור כי ראינו‬

‫∞‬
‫‪1‬‬ ‫‪X‬‬
‫‪k‬‬
‫=‬ ‫‪CCkt y t‬‬
‫)‪(1 − y‬‬ ‫‪t=0‬‬

‫)כאן במקום להשתמש ב־‪ x, n‬כרגיל השתמשנו ב־‪ y, t‬כדי לא לערבב את הסימונים של‬
‫הנוסחה הזו שמצאנו קודם עם הסימונים של התרגיל החדש(‪.‬‬

‫‪28‬‬
‫לכן אם נציב ‪ y = x2‬ונכפיל בביטוי ‪ ,xk‬נקבל‪:‬‬

‫∞‬ ‫∞‬
‫‪xk‬‬ ‫‪X‬‬ ‫‪X‬‬
‫‪k‬‬
‫‪= xk‬‬ ‫= ‪CCkt x2t‬‬ ‫‪CCkt x2t+k‬‬
‫) ‪(1 − x2‬‬ ‫‪t=0‬‬ ‫‪t=0‬‬
‫‪k‬‬ ‫∞‪P‬‬
‫‪x‬‬
‫ואנו רוצים למצוא נוסחה‬ ‫‪(1−x2 )k‬‬
‫נזכור מה אנחנו מעוניינים למצוא‪= n=0 an xn :‬‬
‫סגורה ל־ ‪ .an‬אז נשווה את הביטוי הזה עם הביטוי שמצאנו‪:‬‬

‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬
‫= ‪an xn‬‬ ‫‪CCkt x2t+k‬‬
‫‪n=0‬‬ ‫‪t=0‬‬

‫אם ‪ n‬אינו מהצורה ‪ 2t + k‬אז המקדם של ‪ xn‬בביטוי מימין הוא ‪ .0‬לכן נקבל בסופו‬
‫של דבר‪:‬‬
‫(‬
‫‪0‬‬ ‫‪n 6= 2t + k‬‬
‫= ‪an‬‬
‫‪CCkt‬‬ ‫‪n = 2t + k‬‬

‫כלומר‪ ,‬כאשר ‪ n = 2t + k‬מספר האפשרויות שווה לבחירה עם חזרות וללא חשיבות‬


‫‪n−k‬‬
‫‪n−k‬‬
‫‪.CCk 2‬‬ ‫= ‪ t‬איברים מתוך ‪ k‬איברים אפשריים‪:‬‬ ‫‪2‬‬ ‫לסדר של‬

‫דוגמא כמה פתרונות במספרים טבעיים יש למשוואה ‪ x1 + · · · + xk = n‬כאשר לכל‬


‫‪ 1 ≤ i ≤ k‬מתקיים ‪ 0 ≤ xi ≤ m‬עבור מספר טבעי ‪?m‬‬
‫ההגבלה כאן על גודל הערך ש־ ‪ xi‬יכול לקבל מקשה מאוד על השימוש בפתרון סטנדרטי‬
‫של בחירה עם חזרות ובלי חשיבות לסדר‪ .‬דרך אחת להתמודד עם הקושי היא באמצעות‬
‫עקרון ההכלה וההפרדה )תכונה ”רעה“ היא כשמשתנה מקבל את לפחות את הערך ‪.( m + 1‬‬
‫כאן נציג את ההתמודדות עם הקושי באמצעות שימוש בפונקציות יוצרות‪ .‬הערכים‬
‫שמשתנה אחד יכול לקבל הם אברי הקבוצה }‪ A = {0, 1, . . . , m‬ולכן הפונקציה היוצרת‬
‫של הערכים שמשתנה אחד יכול לקבל היא ‪ .f (x) = 1 + x + x2 + . . . + xm‬אפשר לקבל‬
‫ביטוי סגור ל־)‪ f (x‬על ידי הנוסחה הסטנדרטית לטור הנדסי סופי‪:‬‬

‫‪1 − xm+1‬‬
‫= )‪f (x‬‬
‫‪1−x‬‬
‫‪k‬‬
‫) ‪(1−xm+1‬‬
‫כמקודם‪ ,‬אנחנו מעוניינים ב־ ‪ f k (x) = (1−x)k‬־ הפונקציה היוצרת שמתארת את‬
‫מספר הפתרונות למשוואה כאשר יש לנו ‪ k‬משתנים‪.‬‬
‫ראשית‪ ,‬נטפל במונה‪ .‬אנחנו יודעים איך לפתוח אותו באמצעות הבינום של ניוטון‪:‬‬

‫  ‪k‬‬
‫‪m+1 k‬‬
‫‪X‬‬ ‫‪k‬‬ ‫‪i‬‬
‫‪−xm+1‬‬ ‫‪· 1k−i‬‬
‫‬
‫‪1−x‬‬ ‫=‬
‫‪i=0‬‬
‫‪t‬‬
‫‪k‬‬ ‫ ‬
‫‪X‬‬ ‫‪i‬‬ ‫)‪k i(m+1‬‬
‫=‬ ‫)‪(−1‬‬ ‫‪x‬‬
‫‪i=0‬‬
‫‪i‬‬

‫‪29‬‬
‫עבור המכנה נתבסס שוב על התוצאה שראינו קודם‪:‬‬

‫∞‬
‫‪1‬‬ ‫‪X‬‬
‫‪k‬‬
‫=‬ ‫‪CCkt xt‬‬
‫)‪(1 − x‬‬ ‫‪t=0‬‬

‫ולכן‬

‫‪k‬‬ ‫∞‬
‫‪1 − xm+1‬‬ ‫‪k X‬‬
‫‪k‬‬
‫‪= 1 − xm+1‬‬ ‫‪CCkt xt‬‬
‫)‪(1 − x‬‬ ‫‪t=0‬‬
‫‪k‬‬ ‫ ‬ ‫∞‬
‫‪i k‬‬
‫‪X‬‬ ‫‪X‬‬
‫=‬ ‫)‪(−1‬‬ ‫)‪xi(m+1‬‬ ‫‪CCkt xt‬‬
‫‪i=0‬‬
‫‪i‬‬ ‫‪t=0‬‬
‫‪k X‬‬ ‫∞‬ ‫ ‬
‫‪i k‬‬
‫‪X‬‬
‫=‬ ‫)‪(−1‬‬ ‫)‪CCkt xt+i(m+1‬‬
‫‪i=0 t=0‬‬
‫‪i‬‬

‫∞‪P‬‬
‫ושוב‪ ,‬אנו רוצים להשוות את הביטוי הזה לטור ‪ n=0 an xn‬ולכל ‪ ,n‬לחלץ את הערך‬
‫של ‪ .an‬מכאן נשאלת השאלה‪ :‬עבור ‪ n‬נתון‪ ,‬מה הערכים של ‪ t, i‬שעבורם מתקיים = ‪n‬‬
‫)‪ ?t + i (m + 1‬כל זוג ערכים של ‪ t, i‬שכאלו תורמים למקדם של ‪ .xn‬ועבור ‪ n‬נתון‪ ,‬מתקיים‬
‫)‪.t = n − i (m + 1‬‬
‫לכן נקבל‪:‬‬

‫ ‬ ‫‪k‬‬ ‫ ‬
‫‪X‬‬ ‫‪i‬‬ ‫‪k‬‬ ‫‪X‬‬ ‫‪i k‬‬ ‫)‪n−i(m+1‬‬
‫= ‪an‬‬ ‫)‪(−1‬‬ ‫= ‪CCkt‬‬ ‫)‪(−1‬‬ ‫‪CCk‬‬
‫‪i‬‬ ‫‪i=0‬‬
‫‪i‬‬
‫‪t, i :‬‬
‫)‪n = t + i (m + 1‬‬

‫)‪n−i(m+1‬‬
‫‪.CCk‬‬ ‫כאשר אם ‪ n − i (m + 1) < 0‬המוסכמה היא ש־‪= 0‬‬

‫פתרון נוסחאות נסיגה‬ ‫‪9‬‬


‫דוגמא ראשונה‪ :‬נוסחת נסיגה עם צעד אחד אחורה‬ ‫‪9.1‬‬
‫הבעיה‬ ‫‪9.1.1‬‬
‫נתונים ‪ n‬ישרים במישור במיקום כללי‪ ,‬כלומר אין שלושה ישרים שנחתכים כולם באותה‬
‫הנקודה‪ .‬לכמה חלקים הם מחלקים את המישור?‬
‫לא קשה לראות שאם ‪ n − 1‬ישרים כבר מונחים במישור ומתווסף ישר חדש‪ ,‬הוא מוסיף‬
‫למישור ‪ n‬חלקים חדשים ־ בכל פעם שבה הוא פוגש את אחד הישרים שכבר קיימים‪ ,‬הוא‬
‫מחלק לשניים את האיזור שאליו הוא נכנס‪ ,‬ובנוסף לכך הוא מחלק לשניים את האיזור שבו‬
‫הוא היה לפני שהוא פגש ישר כלשהו‪ .‬זה נותן לנו את הנוסחה הרקורסיבית הבאה‪:‬‬
‫‪) a0 = 1‬המישור ללא ישרים כלל מורכב מחלק בודד(‬

‫‪30‬‬
‫‪an = an−1 + n‬‬
‫אנו מעוניינים להפיק מנוסחת הנסיגה הזו פתרון סגור למשוואה‪ .‬נציג שלוש דרכים‬
‫שונות לעשות זאת‪:‬‬
‫‪ .1‬הצבה נשנית‪.‬‬
‫‪ .2‬שיטת המשוואה האופיינית‪.‬‬
‫‪ .3‬פונקציות יוצרות‪.‬‬

‫שיטת ההצבה הנשנית‬ ‫‪9.1.2‬‬


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

‫‪an‬‬ ‫=‬ ‫‪an−1 + n‬‬


‫=‬ ‫‪an−2 + (n + n) − 1‬‬
‫=‬ ‫)‪an−3 + (n + n + n) − (1 + 2‬‬
‫=‬ ‫)‪an−4 + (n + n + n + n) − (1 + 2 + 3‬‬

‫וכן הלאה‪ .‬בבירור הצורה הכללית כאן היא ))‪.an = an−k +kn−(1 + 2 + · · · + (k − 1‬‬
‫)‪ ,1 + 2 + · · · + k − 1 = k(k−1‬ונקבל‪:‬‬
‫‪2‬‬ ‫נשתמש בנוסחה לסדרה חשבונית‪:‬‬
‫)‪.an = an−k + kn − k(k−1‬‬
‫‪2‬‬
‫כדי לסיים נציב ‪ k = n‬ונשתמש בתנאי ההתחלה ‪ a0 = 1‬כדי לקבל‪:‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬
‫)‪an = 1 + n2 − n(n−1‬‬ ‫‪= 2+2n 2−n +n = n +n+2‬‬ ‫)‪= 1 + n(n+1‬‬ ‫‪= 1 + n+1‬‬
‫‬
‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬
‫בשלב זה מומלץ לבדוק את נכונות התוצאה על ידי הצבת ערכים קטנים בה‪.‬‬

‫שיטת המשוואה האופיינית‬ ‫‪9.1.3‬‬


‫בשיטה זו אנו מתחילים עם `ניחוש` לצורה הכללית של הפתרון ומהצבה בנוסחה מקבלים‬
‫את הפתרון במדויק‪ .‬פורמלית‪ ,‬לאחר שנמצאה צורת הפתרון יש צורך להוכיח באינדוקציה‬
‫כי זהו אכן הפתרון‪ ,‬שכן ההצבה אינה מוכיחה כי הפתרון נכון אלא רק מראה מה צריכים‬
‫להיות הפרמטרים המדוייקים של הפתרון אם צורתו היא הצורה שניחשנו‪.‬‬
‫עבור נוסחת הנסיגה שלנו ננחש שצורת הפתרון הכללי היא ‪ ,an = An2 + Bn + C‬נציב‬
‫במשוואה הרקורסיבית ונקבל‪:‬‬
‫‪2‬‬
‫‪An2 + Bn + C = A (n − 1) + B (n − 1) + C + n‬‬
‫ואחרי פתיחת סוגריים ופישוט‪:‬‬
‫‪A (2n − 1) + B = n‬‬
‫המשוואה הזו מתקיימת לכל ‪ ,n‬ובפרט עבור ‪ ,n = 0, 1‬כך שקיבלנו ממנה מייד שתי‬
‫משוואות‪:‬‬
‫‪−A + B = 0‬‬
‫‪A+B =1‬‬
‫שפתרונן הוא ‪.A = B = 21‬‬

‫‪31‬‬
‫כמו כן מתנאי ההתחלה ‪ a0 = 1‬נקבל ‪.C = 1‬‬
‫‪n2 +n‬‬
‫‪+ 1 = 1 + n+1‬‬
‫‬
‫= ‪.an‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫קיבלנו שצורת הפתרון הכללי היא‬

‫שימוש בפונקציות יוצרות‬ ‫‪9.1.4‬‬


‫תהא )‪ f (x‬הפונקציה היוצרת של הסדרה ‪ .an‬אז מנוסחת הנסיגה ומתנאי ההתחלה אנו‬
‫מקבלים את המשוואה הבאה‪:‬‬
‫‪x‬‬
‫)‪f (x) = xf (x) + (1−x‬‬ ‫‪2 + 1‬‬

‫הסבר‪:‬‬
‫ה־)‪ xf (x‬הוא ‪ an−1‬־ זו ההשפעה של ביצוע `הזזה ימינה` על כל אברי הסדרה על ידי‬
‫∞‪P‬‬ ‫כפל ב־‪.x‬‬
‫‪x‬‬ ‫‪1‬‬
‫)‪(1−x‬‬‫‪2‬‬ ‫=‬ ‫כן‬ ‫ועל‬ ‫קודם‪,‬‬ ‫שראינו‬ ‫הנוסחאות‬ ‫פי‬ ‫על‬ ‫)‪(1−x‬‬ ‫‪2‬‬ ‫=‬ ‫‪n=0‬‬ ‫‪(n‬‬ ‫‪+‬‬ ‫)‪1‬‬ ‫‪xn‬‬
‫∞‪P‬‬
‫היא הפונקציה היוצרת של הסדרה בה האיבר ה־‪n‬־י הוא ‪) n‬שיטה אחרת‪:‬‬ ‫‪nxn‬‬
‫∞‪P‬‬ ‫‬ ‫‪0 n=1‬‬
‫‪1‬‬ ‫‪x‬‬
‫‪.( n=1 nxn = x · 1−x‬‬ ‫)‪= (1−x‬‬ ‫‪2‬‬

‫ה־‪ +1‬הוא תנאי ההתחלה‪.‬‬


‫מהמשוואה לעיל נחלץ את )‪ f (x‬ונקבל‪:‬‬
‫‪x‬‬ ‫‪1‬‬
‫)‪f (x) = (1−x‬‬ ‫‪3 + 1−x‬‬
‫‪P∞ n+2 n‬‬ ‫‪1‬‬
‫)‪ (1−x‬הוא ‪ n=0 2 x‬ולכן על ידי כפל ב־‪ x‬מקבלים את‬ ‫כזכור‪ ,‬הטור של ‪3‬‬

‫ ∞‬ ‫‬ ‫ ∞‬ ‫‬
‫‪X‬‬ ‫‪n + 2 n+1‬‬ ‫‪X‬‬ ‫‪n+1‬‬
‫‪x‬‬ ‫=‬ ‫‪xn‬‬
‫‪n=0‬‬
‫‪2‬‬ ‫‪n=0‬‬
‫‪2‬‬

‫‪n+1‬‬
‫‬ ‫∞‪P‬‬ ‫‪1‬‬
‫‪ ,1 +‬שוב‪.‬‬ ‫‪2‬‬ ‫הוא ‪ , n=0 xn‬ולכן נקבל שפתרון הנוסחה הוא‬ ‫‪1−x‬‬ ‫הטור של‬

‫דוגמא שניה‪ :‬נוסחת נסיגה עם שני צעדים אחורה‬ ‫‪9.2‬‬


‫נתבונן על נוסחת פיבונאצ'י‪,‬‬

‫‪an = an−1 + an−2‬‬

‫אנו רוצים למצוא ביטוי סגור ל־ ‪ an‬כדי להדגים שתי טכניקות כלליות שבהן ניתן לגשת‬
‫לבעיה הזו‪.‬‬

‫שיטת המשוואה האופיינית‬ ‫‪9.2.1‬‬


‫להבדיל מבדוגמא הקודמת‪ ,‬עבור נוסחת נסיגה כמו ‪ an = an−1 + an−2‬שבה הולכים שני‬
‫צעדים אחורה‪ ,‬הערכים של ‪ an‬גדלים אקספוננציאלית‪:‬‬

‫‪an = an−1 + an−2 = (an−2 + an−3 ) + an−2‬‬


‫‪≥ 2an−2 ≥ 4an−4 ≥ 8an−6 ≥ . . .‬‬
‫‬ ‫‬
‫‪≥ 2k an−2k = . . . = O 2n/2‬‬

‫‪32‬‬
‫זה מוביל אותנו לנחש פתרון שהוא פונקציה אקספוננציאלית‪ ,‬כלומר פונקציה מהצורה‬
‫‪ ,an = λn‬אולם מהו הערך של ‪ ?λ‬אם נציב ‪ an = λn‬בנוסחת הנסיגה ‪,an = an−1 + an−2‬‬
‫נקבל‪:‬‬

‫‪λn = λn−1 + λn−2‬‬

‫אמנם ‪ λ = 0‬מניב את הפתרון הקביל ‪ an = 0‬לנוסחת הנסיגה‪ ,‬אולם ברור שזה לא‬
‫הפתרון שאנחנו מחפשים‪ :‬בפרט הוא אינו מקיים את תנאי ההתחלה ‪ .a0 = 0, a1 = 1‬לכן‬
‫נניח ש־‪ λ 6= 0‬ולכן ניתן לחלק בו‪ ,‬להעביר אגפים ולקבל‬

‫‪λ2 − λ − 1 = 0‬‬

‫זו משוואה ממעלה שניה ואנו יודעים לפתור משוואות כאלו באמצעות נוסחת השורשים‪:‬‬

‫√‬ ‫√‬
‫‪1±‬‬ ‫‪1+4‬‬ ‫‪1± 5‬‬
‫= ‪λ1,2‬‬ ‫=‬
‫‪2‬‬ ‫‪2‬‬
‫√‬ ‫√‬
‫נסמן ‪ φ+ = 1+2 5‬ו־ ‪ .φ− = 1−2 5‬המספר ‪ φ+‬הוא מוכר למדי ומכונה יחס הזהב‪.‬‬
‫העובדה ש־ ‪ φ+ , φ−‬פותרים את המשוואה ‪ λ2 − λ − 1 = 0‬מוכיחה שהם פותרים גם את‬
‫המשוואה ‪ ,λn = λn−1 + λn−2‬כך שמצאנו שני פתרונות שונים אפשריים לנוסחת הנסיגה‬
‫‪:an = an−1 + an−2‬‬
‫‪an = φn+‬‬
‫‪an = φn−‬‬
‫לרוע המזל‪ ,‬אף אחד משני פתרונות אלו אינו מקיים את תנאי ההתחלה עבור סדרת‬
‫פיבונאצ'י‪ ,‬כלומר ‪ a0 = 0‬ו־‪ .a1 = 1‬למשל‪ ,‬עבור הפתרון של ‪ ,φn+‬הערכים הראשונים הם‬
‫‪ 1, φ+‬במקום ‪.0, 1‬‬
‫למרבה המזל‪ ,‬בהינתן שני הפתרונות לנוסחת הנסיגה ניתן ליצור מהם אינסוף פתרונות‬
‫נוספים באמצעות צירוף לינארי של הפתרונות הקיימים‪ :‬לכל ‪ ,A, B ∈ R‬גם ‪an = Aφn+ +‬‬
‫‪ Bφn−‬יהיה פתרון של נוסחת הנסיגה )ניתן לראות זאת על ידי הצבה ובדיקה ישירה(‪ .‬ננסה‪,‬‬
‫אם כן‪ ,‬לבנות מהפתרונות שמצאנו פתרון חדש לנוסחת הנסיגה שבנוסף יקיים את תנאי‬
‫ההתחלה‪ .‬נציב ‪ n = 0‬ו־‪ n = 1‬ונקבל את זוג המשוואות הבאות‪:‬‬
‫‪0 = Aφ0+ + Bφ0− = A + B‬‬
‫‪1 = Aφ+ + Bφ−‬‬
‫מהמשוואה הראשונה נסיק ‪ A = −B‬וכשנציב זאת במשוואה השניה נקבל‬
‫) ‪1 = A (φ+ − φ−‬‬
‫√‬ ‫√‬ ‫√‬
‫מכיוון ש־‪ φ+ − φ− = 1+2 5 − 1−2 5 = 5‬נקבל‬
‫‪1‬‬
‫‪A = φ+ −φ‬‬ ‫‪−‬‬
‫‪= √15‬‬
‫ולכן הפתרון לנוסחת הנסיגה שמקיים גם את תנאי ההתחלה הוא‬
‫‪φn −φn‬‬
‫‪an = Aφn+ + Bφn− = +√5 −‬‬

‫‪33‬‬
‫שימוש כללי בשיטת המשוואה האופיינית‬ ‫‪9.2.2‬‬
‫הטכניקה שבה השתמשנו עבור פיבונאצ'י ניתנת להכללה עבור כל נוסחת נסיגה לינארית‪,‬‬
‫כלומר כזו מהצורה‬

‫‪an = c1 an−1 + c2 an−2 + . . . + ck an−k‬‬

‫בנוסחת נסיגה לינארית‪ ,‬האיבר ‪ an‬הוא צירוף לינארי של ‪ k‬איברים קודמים ־ סכום של‬
‫האיברים הללו כשכל אחד מהם מוכפל בסקלר ‪ .c‬הנוסחה ‪ an = an−1 + n‬שראינו קודם‬
‫אינה לינארית בגלל האיבר החופשי ‪ n‬שאינו כפל במקדם של איבר קודם בנוסחת הנסיגה‪.‬‬
‫גם הנוסחה ‪ an = a2n−1 + an‬איננה לינארית כי האיבר ‪ an−1‬אינו מופיע כמות שהוא אלא‬
‫כשהוא מועלה בריבוע‪.‬‬
‫כאשר נתונה לנו נוסחת נסיגה לינארית‪ ,‬אנו מחפשים לה פתרונות מהצורה ‪,an = λn‬‬
‫כפי שראינו קודם‪ .‬הצבה של פתרון כזה בנוסחת הנסיגה מניבה בסופו של דבר את המשוואה‬

‫‪λk − c1 λk−1 − . . . − ck = 0‬‬

‫אם ‪ k = 2‬אנו יכולים לפתור את המשוואה בקלות בעזרת נוסחת השורשים‪ ,‬אבל‬
‫עבור ערכים גדולים יותר של ‪ k‬המצב קשה יותר )בפרט‪ ,‬עבור ‪ k ≥ 5‬לא קיימת נוסחה‬
‫כללית לפתרון משוואות כאלו( ולעתים קרובות נזקקים לאלגוריתם נומרי )כדוגמת אלגוריתם‬
‫ניוטון־רפסון( שיחשב קירוב טובים לפתרונות‪.‬‬
‫נוסחת נסיגה שהולכת אחורה ‪ k‬צעדים זקוקה ל־‪ k‬תנאי התחלה שונים‪ .‬אם בנוסף לכך‬
‫קיימים למשוואה ‪ k‬פתרונות שונים ‪ ,λ1 , . . . , λk‬אז נכתוב פתרון כללי מהצורה ‪A1 λn1 +‬‬
‫‪ ,. . . + Ak λnk‬נשווה לתנאי ההתחלה ונקבל מערכת של ‪ k‬משוואות לינאריות ב־‪ k‬נעלמים‪:‬‬

‫‪A1 + A2 + . . . + Ak = a0‬‬
‫‪A1 λ1 + A2 λ2 + . . . + Ak λk = a1‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬

‫‪A1 λk−1‬‬
‫‪1‬‬ ‫‪+ A2 λk−1‬‬
‫‪2‬‬ ‫‪+ . . . + Ak λk−1‬‬
‫‪k‬‬ ‫‪= ak−1‬‬

‫כאן הנעלמים הם ‪ .A1 , . . . , Ak‬אם מערכת המשוואות פתירה‪ ,‬מצאנו פתרון לנוסחת‬
‫הנסיגה שעונה על תנאי ההתחלה‪.‬‬
‫מה קורה אם למשוואה אין מספיק פתרונות? כדי להבין מתי זה קורה ניזכר בטענה‬
‫כללית על משוואות פולינומיות‪.‬‬
‫המשפט היסודי של האלגברה קובע כי לפולינום ממעלה ‪ n‬מעל המרוכבים ‪ C‬קיימים‬
‫בדיוק ‪ n‬שורשים‪ ,‬עד כדי ריבוי‪ .‬משמעות הדבר היא שניתן לכתוב כל פולינום ממעלה ‪n‬‬
‫בתור‬
‫) ‪(x − z1 ) (x − z2 ) · · · (x − zn‬‬
‫כך ש־‪ z1 , z2 . . . , zn ∈ C‬הם מספרים מרוכבים‪ ,‬לאו דווקא שונים זה מזה‪ .‬אם‬
‫”מאגדים“ יחד פתרונות זהים‪ ,‬מקבלים את הכתיב‬

‫‪34‬‬
‫‪r‬‬ ‫‪r‬‬ ‫‪r‬‬
‫‪(x − z1 ) 1 (x − z2 ) 2 · · · (x − zt ) t‬‬
‫כך ש־ ‪ z1 , . . . , zt‬הם השורשים השונים של הפולינום‪ r1 + . . . + rt = n ,‬ו־ ‪ ri‬נקרא‬
‫הריבוי של השורש ‪.zi‬‬
‫עד עכשיו עסקנו רק במקרה שבו היו לנו ‪ n‬שורשים שונים‪ ,‬כלומר הריבוי של כל אחד‬
‫מהם היה ‪ ,1‬ובמקרה זה אם ‪ λ‬היה שורש אז ‪ λn‬היה פתרון של נוסחת הנסיגה‪.‬‬
‫אם ‪ λ‬הוא שורש מריבוי ‪ ,r‬עדיין ניתן לקבל ממנו ‪ r‬פתרונות שונים לנוסחת הנסיגה‪:‬‬

‫‪λn , nλn , n2 λn , . . . , nr−1 λn‬‬

‫כך שניתן להמשיך לפתור את נוסחת הנסיגה בעזרת פתרונות אלו‪.‬‬


‫לדוגמא‪ ,‬נתבונן בנוסחת הנסיגה ) ‪ .an = 4 (an−1 − an−2‬המשוואה האופיינית עבור‬
‫‪2‬‬
‫נוסחה זו היא )‪ 0 = λ2 − 4λ + 4 = (λ − 2‬ואנו מקבלים את הפתרונות הבאים של נוסחת‬
‫הנסיגה‪:‬‬
‫‪an = 2n‬‬
‫‪an = n · 2n‬‬
‫‪n‬‬
‫ואכן‪ ,‬אם נציב את ‪ an = n · 2‬בנוסחת הנסיגה נקבל‪:‬‬

‫‪4 (an−1 − an−2 ) = 4 (n − 1) · 2n−1 − (n − 2) · 2n−2‬‬


‫‬

‫))‪= 4 · 2n−2 (2 (n − 1) − (n − 2‬‬


‫‪= 2n · n = an‬‬

‫נוסחאות נסיגה ופונקציות יוצרות רציונליות‬ ‫‪9.3‬‬


‫)‪p(x‬‬
‫= )‪ f (x‬כאשר )‪ p (x) , q (x‬הם פולינומים‪.‬‬ ‫)‪q(x‬‬ ‫פונקציה נקראת רציונלית אם היא מהצורה‬
‫‪2‬‬
‫‪ f (x) = x1−x‬כאשר הפולינומים הם ‪ p (x) = x + 3x‬ו־‪.q (x) = 1 − x‬‬
‫‪2‬‬ ‫‪+3x‬‬
‫למשל‪,‬‬
‫קיים קשר הדוק בין בעיות ספירה שקיימת עבורן נוסחת נסיגה לינארית ובין פונקציות‬
‫יוצרות‪:‬‬

‫משפט ‪ 9.1‬הסדרה ‪ {an }n≥0‬מקיימת את נוסחת הנסיגה הלינארית ‪an = c1 an−1 + . . . +‬‬
‫∞‪P‬‬
‫‪ ck an−k‬אם ורק אם הפונקציה היוצרת שלה ‪ f (x) = n=0 an xn‬היא מהצורה = )‪f (x‬‬
‫)‪ 1−c1 x−c2p(x‬כאשר )‪ p (x‬הוא פולינום ממעלה קטנה מ־‪.k‬‬
‫‪x2 −...−ck xk‬‬

‫במילים אחרות‪ ,‬נוסחת הנסיגה ”מקודדת“ בתוך המכנה של הפונקציה היוצרת‪ .‬הוכחה‪ :‬נניח‬
‫ש־ ‪ an‬מקיימת את נוסחת הנסיגה‪ .‬כזכור‪ ,‬לכפל של פונקציה יוצרת ב־ ‪ xi‬יש אפקט של‬
‫”הזזת“ הסדרה שהפונקציה היוצרת מייצגת ‪ i‬מקומות קדימה והכנסת ‪ 0‬בהתחלה‪ .‬כלומר‬

‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬
‫‪xi f (x) = xi‬‬ ‫= ‪an xn‬‬ ‫= ‪an xn+i‬‬ ‫‪an−i xn‬‬
‫‪n=0‬‬ ‫‪n=0‬‬ ‫‪n=i‬‬

‫ומכאן‬

‫‪35‬‬
‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬
‫= )‪c1 x1 f (x) + . . . + ck xk f (x‬‬ ‫‪c1 an−1 xn + . . . +‬‬ ‫‪ck an−k xn‬‬
‫‪n=1‬‬ ‫‪n=k‬‬
‫∞‬
‫‪X‬‬ ‫∞‬
‫‪X‬‬
‫‪= t (x) +‬‬ ‫‪c1 an−1 xn + . . . +‬‬ ‫‪ck an−k xn‬‬
‫‪n=k‬‬ ‫‪n=k‬‬
‫‪X‬‬‫∞‬
‫‪= t (x) +‬‬ ‫‪(c1 an−1 + . . . + ck an−k ) xn‬‬
‫‪n=k‬‬
‫‪X‬‬‫∞‬
‫‪= t (x) +‬‬ ‫‪an xn‬‬
‫‪n=k‬‬
‫∞‬
‫‪X‬‬
‫=‬ ‫)‪an xn − p (x‬‬
‫‪n=0‬‬
‫)‪= f (x) − p (x‬‬

‫כאשר )‪ t (x) , p (x‬הם פולינומים ממעלה לכל היותר ‪ t (x) :k − 1‬מתקבל מהאיברים‬
‫‪Pk−1‬‬ ‫∞‪P‬‬
‫של הטורים ‪ n=i c1 an−i xn‬עבורם ‪ ;x < k‬ואילו )‪.p (x) = n=0 an xn − t (x‬‬
‫קיבלנו את השוויון‬

‫)‪c1 x1 f (x) + . . . + ck xk f (x) = f (x) − p (x‬‬

‫נעביר אגפים‪ ,‬נוציא גורם משותף ונקבל‬

‫)‪f (x) 1 − c1 x − . . . − ck xk = p (x‬‬


‫‬

‫נחלק ונקבל‬

‫)‪p (x‬‬
‫= )‪f (x‬‬
‫‪1 − c1 x − . . . − ck xk‬‬

‫כמבוקש‪.‬‬
‫בכיוון השני‪ ,‬אם ל־)‪ f (x‬יש את הצורה הנ“ל‪ ,‬על ידי היפוך הפעולות החשבוניות שביצענו‬
‫ניתן לשחזר את נוסחת הנסיגה ‪ an = c1 an−1 + . . . + ck an−k‬עבור ‪.n ≥ k‬‬
‫ההוכחה לא סיפקה לנו נוסחה מפורשת עבור )‪ ,p (x‬שהוא החלק של הפונקציה היוצרת‬
‫שתלוי בתנאי ההתחלה של הסדרה‪ ,a0 , a1 , . . . , ak−1 ,‬אולם קל יחסית לשחזר את = )‪p (x‬‬
‫‪ b0 + b1 x + . . . + bk− xk−1‬מתוך הנוסחה )‪ .f (x) 1 − c1 x − . . . − ck xk = p (x‬אם‬

‫‪36‬‬
‫נכתוב את במפורש את ‪ ,f (x) = a0 + a1 x + a2 x2 + . . .‬נפתח את הסוגריים ונשווה מקדם‬
‫מקדם עבור החזקות של ‪ x‬שהן לכל היותר ‪:k‬‬

‫‪b0 = a 0‬‬
‫‪b1 = a1 − c1 a0‬‬
‫‪b2 = a2 − c1 a1 − c2 a0‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬

‫‪bk−1 = ak−1 − c1 ak−2 − . . . − ck−1 a0‬‬

‫הנוסחאות שלעיל מאפשרות לנו לעשות גם את ההפך‪ :‬לחשב רקורסיבית את האיברים‬


‫הראשונים בסדרה מתוך המקדמים של נוסחת הנסיגה‪ ,‬והמקדמים של )‪:p (x‬‬

‫‪a0 = b0‬‬
‫‪a1 = b1 + c1 a0‬‬
‫‪a2 = b2 + c1 a1 + c2 a2‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬

‫‪ak−1 = bk−1 + c1 ak−2 + . . . + ck−1 a0‬‬

‫דוגמא עבור נוסחת פיבונאצ'י‪ ,an = an−1 + an−2 ,‬בלי תלות בתנאי ההתחלה הפונקציה‬
‫)‪p(x‬‬
‫‪ 1−x−x‬כאשר )‪.p (x‬‬ ‫היוצרת היא מהצורה ‪2‬‬

‫אם נבחר את תנאי ההתחלה ‪ a0 = 0‬ו־‪ a1 = 1‬נקבל ‪ p (x) = x‬ולכן את הפונקציה‬


‫‪x‬‬
‫‪ . 1−x−x‬אם לעומת זאת נבחר את תנאי ההתחלה ‪ a0 = a1 = 1‬כפי שמקובל‬ ‫היוצרת ‪2‬‬
‫‪1‬‬
‫לעתים לעשות‪ ,‬נקבל ‪ b0 = 1‬ו־‪ b1 = 1 − 1 = 0‬ולכן את הפונקציה היוצרת ‪. 1−x−x2‬‬

‫‪II‬‬ ‫חלק‬
‫מבוא לתורת הגרפים‬
‫גרפים ־ הגדרה ודוגמאות‬ ‫‪10‬‬
‫נפתח במספר בעיות ידועות במתמטיקה‪.‬‬

‫דוגמא נתונה צורה המורכבת מקודקודים וקווים המחברים אותם‪ .‬האם ניתן לצייר אותה‬
‫מבלי להרים את העט מהדף?‬
‫זוהי בעיית הכרעה אלגוריתמית; מסתבר שקיים אלגוריתם יעיל ופשוט ביותר אשר מכריע‬
‫אותה‪ ,‬ונראה אותו בהמשך הקורס‪ .‬הפתרון נעוץ בחשיבה על הצורה כעל גרף ותרגום השאלה‬
‫האם ניתן לצייר אותה מבלי להרים את העט מהדף לשאלה האם קיים בגרף המתאים מסלול‬
‫אוילרי‪.‬‬

‫‪37‬‬
‫דוגמא נתונה מפה כלשהי‪ .‬האם ניתן לצבוע אותה עם ארבעה צבעים בלבד‪ ,‬כך ששתי‬
‫מדינות סמוכות אינן צבועות באותו הבא?‬
‫זוהי בעיית ארבעת הצבעים המפורסמת מאוד‪ ,‬שהייתה פתוחה למעלה ממאה שנים עד‬
‫שנפתרה )עם תשובה חיובית; די בארבעה צבעים( בשנות ה־‪ 70‬של המאה ה־‪ ,20‬בסיוע מחשב‬
‫)שבדק אלפי טענות פרטניות שנדרשו להוכחה הכללית(‪ .‬בניסוחה המתמטי בעיית ארבעת‬
‫הצבעים היא השאלה האם כל גרף מישורי הוא ‪4‬־צביע?‬

‫דוגמא נתונים שלושה בתים ושלושה מקורות של מים‪ ,‬חשמל וגז‪ .‬האם ניתן לחבר כל‬
‫בית לכל שלושת המקורות מבלי ששני חיבורים ייחתכו? )הכל מצוייר על דף נייר והבתים‬
‫המקורות הם נקודות(‪.‬‬
‫התשובה לבעיה זו היא לא‪ .‬בניסוחה המתמטי זוהי הטענה שהגרף הדו צדדי המלא ‪K3,3‬‬
‫איננו מישורי‪.‬‬

‫יש לבנות באופן אקראי ובזמן יעיל מבוך שבו בין כל שני תאים קיים מסלול אחד‬ ‫דוגמא‬
‫ויחיד‪.‬‬
‫בניסוח מתמטי מבקשים כאן לבנות עץ פורש של גרף מלא; קיימים אלגוריתמים יעילים‬
‫לפתרון בעיה זו )ולפתרון בעיה כללית מעט יותר שבה יש `מחיר` לחיבור בין כל שני תאים‬
‫ורוצים מבוך בעל מחיר מינימלי(‪.‬‬

‫דוגמא נתונים ‪ n‬גברים ו־‪ n‬נשים כך שכל אישה מעוניינת בחלק מהגברים וכל גבר מעוניין‬
‫בחלק מהנשים‪ .‬האם ניתן לחלק את את הגברים והנשים לזוגות באופן מונוגמי כך שיווצרו‬
‫‪ n‬זוגות שבהם בני הזוג מעוניינים אלו באלו?‬
‫משפט החתונה של הול נותן תיאור מדויק וקל לבדיקה של תנאי שבו הדבר מתאפשר‪.‬‬
‫בניסוח מתמטי זוהי השאלה באילו תנאים יש שידוך מושלם בגרף דו צדדי‪.‬‬
‫נעבור כעת לתיאור פורמלי ואבחנות בסיסיות‪.‬‬

‫הגדרה ‪) 10.1‬גרפים(‬

‫• גרף הוא זוג )‪ G = (V, E‬כאשר ‪ V‬היא קבוצה כלשהי )`קודקודים`( ו־‪ E‬היא אוסף‬
‫זוגות של קודקודים )`קשתות`(‪.‬‬
‫• אם יש שתיים או יותר קשתות מצומת ‪ v‬אל צומת ‪ u‬הן נקראות קשתות מקבילות‪.‬‬
‫• אם יש קשת מ־‪ v‬אל ‪ v‬היא נקראת חוג עצמי‪.‬‬

‫• גרף פשוט הוא גרף ללא קשתות מקבילות וחוגים עצמיים‪.‬‬


‫• גרף מכוון הוא גרף שבו קשת מ־‪ v‬אל ‪ u‬נחשבת שונה מקשת מ־‪ u‬אל ‪) v‬במקרה‬
‫זה יכולה להיות קשת בכל כיוון והן לא ייקראו קשתות מקבילות(‪ .‬כל עוד אנחנו לא‬
‫אומרים זאת במפורש‪ ,‬כל הגרפים שנעסוק בהם אינם מכוונים‪.‬‬
‫• בהינתן גרף מכוון ‪ ,G‬גרף התשתית שלו הוא הגרף המתקבל מ־‪ G‬על ידי מחיקת כיווני‬
‫הקשתות )כלומר‪ ,‬על ידי הפיכת ‪ G‬לגרף לא מכוון(‪.‬‬
‫• דרגה של צומת ‪ ,v ∈ V‬המסומנת )‪ ,d (v‬היא מספר הקשתות בגרף שמחוברות אל ‪.v‬‬
‫• בגרף מכוון‪ ,‬דרגת הכניסה של צומת ‪ ,v‬המסומנת )‪ ,din (v‬היא מספר הקשתות‬
‫שנכנסות אל ‪ ;v‬דרגת היציאה )‪ dout (v‬היא מספר הקשתות שיוצאות מ־‪.v‬‬

‫‪38‬‬
‫• צומת מבודדת היא צומת מדרגה ‪.0‬‬
‫• גרף )‪ G = (V, E‬הוא סופי אם הקבוצות ‪ V, E‬סופיות‪.‬‬

‫כבר כעת ניתן להוכיח משפט פשוט‪:‬‬


‫‪P‬‬
‫־ סכום דרגות הקודקודים‬ ‫‪v∈V‬‬ ‫טענה ‪ 10.2‬בגרף סופי )‪ G = (V, E‬מתקיים |‪d (v) = 2 |E‬‬
‫הוא פעמיים מספר הקשתות‪.‬‬

‫הוכחה‪ :‬נספור נקודות חיבור של קודקוד וקשת בשתי דרכים שונות‪ .‬בדרך הראשונה‪ ,‬נעבור‬
‫קשת קשת ולכל קשת נוסיף ‪ 2‬לספירה כי היא מחוברת בדיוק לשני קודקודים ־ קיבלנו‬
‫קודקוד קודקוד ולכל קודקוד נוסיף לספירה את כל הקשתות‬
‫‪P‬‬ ‫|‪ .2 |E‬בדרך השניה נעבור‬
‫שנוגעות בו ־ קיבלנו )‪. v∈V d (v‬‬
‫נחזור להגדרות‪:‬‬

‫הגדרה ‪) 10.3‬מסלולים‪ ,‬גרפים קשירים(‬

‫• מסלול בגרף הוא סדרה של צמתים ‪ v1 , v2 , . . . , vn‬כך שבין כל שני צמתים סמוכים‬
‫בסדרה יש קשת )ואם הגרף מכוון‪ ,‬הקשת היא מ־ ‪ vi‬אל ‪ .(vi+1‬מסלול יכול להיות גם‬
‫אינסופי )ואז פשוט אין איבר אחרון לסדרה(‪ .‬מסלול מסומן לרוב בתור → ‪v1 → v2‬‬
‫‪.· · · → vn‬‬
‫• אורך של מסלול סופי הוא כמספר הקשתות שבהן עוברים במסלול )כל קשת נספרת‬
‫כמספר הפעמים שעוברים בה(‪ ,‬כלומר אורך המסלול ‪ v1 → · · · → vn‬הוא ‪.n − 1‬‬
‫• מעגל בגרף הוא מסלול שבו צומת ההתחלה זהה לצומת הסיום‪) v1 = vn :‬כל צומת‬
‫על המעגל יכול לשמש כצומת התחלה וסיום(‪.‬‬
‫• מסלול או מעגל הם פשוטים אם הם אינם עוברים באותה צומת יותר מפעם אחת‪,‬‬
‫למעט נקודות ההתחלה והסיום במקרה של מעגל‪ .‬כמו כן מעגל פשוט נדרש להיות‬
‫מאורך ‪ 3‬לפחות‪.‬‬
‫• גרף הוא קשיר אם בין כל שני צמתים בגרף קיים מסלול‪.‬‬
‫• גרף מכוון הוא קשיר אם גרף התשתית שלו קשיר‪ .‬הוא קשיר היטב אם קיים מסלול‬
‫בגרף מכל צומת אל כל צומת אחר‪.‬‬

‫משפט ‪) 10.4‬אפיון אלטרנטיבי לקשירות של גרף( גרף לא מכוון )‪ G = (V, E‬הוא קשיר אם‬
‫ורק אם בכל חתך שלו )חלוקה של ‪ V‬לאיחוד זר של שתי קבוצות לא ריקות ‪(V = X ∪ Y‬‬
‫קיימת קשת מצומת כלשהי ב־‪ X‬לצומת כלשהי ב־ ‪) Y‬עבור גרף מכוון‪ ,‬הגרף קשיר היטב אם‬
‫ורק אם בכל חתך יש קשת מ־‪ X‬אל ‪ Y‬ומ־ ‪ Y‬אל ‪.(X‬‬

‫הוכחה‪ :‬כיוון אחד‪ :‬נניח כי ‪ G‬קשיר ויהא ‪ V = X ∪ Y‬חתך‪ X, Y .‬לא ריקות אז‬
‫יש ‪ .x ∈ X, y ∈ Y‬מכיוון שהגרף קשיר קיים מסלול ‪ v1 → v2 → · · · → vn‬כך‬
‫ש־‪.v1 = x, vn = y‬‬
‫יהא ‪ i‬האינדקס המינימלי של צומת במסלול ‪ vi‬כך ש־ ‪ .vi ∈ Y‬מכיוון ש־ ‪vn = y ∈ Y‬‬
‫∈ ‪ ,v1 = x‬הרי ש־‪ .2 ≤ i ≤ n‬מהמינימליות של ‪ i‬עולה ש־‪ vi−1 ∈ X‬ולכן ) ‪(vi−1 , vi‬‬‫ו־ ‪/ Y‬‬
‫היא קשת מ־‪ X‬אל ‪ ,Y‬כנדרש‪.‬‬

‫‪39‬‬
‫כיוון שני‪ :‬נניח שהקריטריון מתקיים ונוכיח שהגרף קשיר‪ .‬יהיו ‪ x, y ∈ V‬כלשהם‪ ,‬ונגדיר‬
‫קבוצה ‪ U ⊆ V‬בתור קבוצת הצמתים שיש מסלול מ־‪ x‬אליהם ב־‪ .G‬בהכרח ‪ x ∈ U‬כי‬
‫קיים מסלול מ־‪ x‬לעצמו באורך ‪ ,0‬ומכאן ש־ ‪ U‬לא ריקה‪ .‬אם ‪ U = V‬אז סיימנו כי ‪;y ∈ U‬‬
‫אחרת ) ‪ V = U ∪ (V − U‬הוא חתך של ‪ V‬ולכן קיימת קשת מ־ ‪ u ∈ U‬אל ‪.v ∈ V − U‬‬
‫אבל יש מסלול מ־‪ x‬אל ‪ u‬ולכן יש מסלול מ־‪ x‬אל ‪ ,(x → · · · → u → v) v‬אבל אז ‪v ∈ U‬‬
‫בסתירה לכך ש־ ‪ .v ∈ V − U‬מכאן ש־ ‪ ,U = V‬כנדרש‪.‬‬

‫מסלולים אוילריים‬ ‫‪11‬‬


‫נתונה מפת העיר קניגסברג של ימיו של אוילר‪.‬‬

‫את העיר חוצה נהר במספר מקומות ועל הנהר יש גשרים‪ .‬האתגר‪ :‬למצוא טיול בעיר‬
‫שעובר בכל גשר בדיוק פעם אחת‪.‬‬
‫אפשר למדל את הבעיה באמצעות גרפים ־ קודקוד לכל איזור של העיר וקשת לכל גשר‪.‬‬
‫מתקבל גרף לא מכוון עם קשתות מקבילות‪.‬‬

‫השאלה‪ :‬האם קיים בגרף מסלול שעובר בכל קשת בדיוק פעם אחת?‬

‫הגדרה ‪ 11.1‬מסלול בגרף שעובר בכל קשת בדיוק פעם אחת נקרא מסלול אוילרי‪.‬‬
‫מסלול בגרף שעובר בכל צומת בדיוק פעם אחת נקרא מסלול המילטוני‪.‬‬
‫בדומה‪ ,‬מעגל בגרף שעובר בכל קשת בדיוק פעם אחת נקרא מעגל אוילרי ומעגל בגרף‬
‫שעובר בכל צומת )פרט לצומת ההתחלה והסיום( בדיוק פעם אחת נקרא מעגל המילטוני‪.‬‬

‫הבעיה של בדיקה האם קיים מסלול אוילרי בגרף היא פשוטה ונפתרה על ידי אוילר‪ ,‬כפתרון‬
‫כללי לבעיית הגשרים של קניגסברג )על פתרון זה אומרים שהוא מציין את הולדת תורת‬

‫‪40‬‬
‫הגרפים(‪ .‬לעומת זאת‪ ,‬הבעיה של בדיקה האם קיים מסלול המילטוני בגרף היא קשה ולא‬
‫נעסוק בה בקורס זה; הזכרנו מסלולים המילטוניים לצרכי שלמות בלבד‪.‬‬

‫הגדרה ‪ 11.2‬גרף ‪ G‬נקרא אוילרי אם קיים בו מסלול אוילרי‪ ,‬ונקרא אוילרי מעגלי אם קיים‬
‫בו מעגל אוילרי‪.‬‬

‫משפט ‪) 11.3‬אוילר( יהא ‪ G‬גרף סופי וקשיר‪ ,‬אז‪:‬‬

‫‪ G .1‬הוא אוילרי מעגלי אם ורק אם )‪ d (v‬זוגית לכל ‪.v ∈ V‬‬


‫‪ G .2‬הוא אוילרי אם ורק אם )‪ d (v‬אי זוגי בדיוק עבור שני צמתים ‪.v1 , v2 ∈ V‬‬

‫הוכחה‪ :‬ראשית נוכיח את ‪ 2‬בהינתן ש־‪ 1‬כבר הוכח‪ .‬אם ב־‪ G‬בדיוק שני צמתים מדרגה‬
‫אי זוגית נוסיף קשת שמחברת אותם )ייתכן שהיא תהיה מקבילה לקשתות שכבר מחברות‬
‫אותם( וכעת דרגת כל הצמתים בגרף זוגית וקיים בו מעגל אוילרי‪ .‬ניקח את המעגל ונסיר‬
‫ממנו את המעבר על פני הקשת שהוספנו )ובכך נכריח את הצמתים האי זוגיים להיות הראשון‬
‫והאחרון במסלול המתקבל( וקיבלנו מסלול אוילרי ל־‪.G‬‬
‫בכיוון השני‪ ,‬אם ‪ G‬הוא אוילרי אז ניקח מסלול אוילרי בו‪ ,‬נחבר את צומת ההתחלה‬
‫והסיום בקשת ונקבל גרף עם מעגל אוילרי‪ ,‬ולכן דרגת כל הצמתים בו זוגית‪ ,‬ולכן לאחר‬
‫הסרת הקשת שהוספנו נקבל שדרגת בדיוק שני צמתים היא אי זוגית ־ הצמתים שלהם‬
‫הוספנו קשת‪.‬‬
‫נעבור כעת להוכחת ‪ .1‬נניח ש־‪ G‬הוא אוילרי מעגלי ויהא ‪ v1 → v2 → · · · → v1‬מעגל‬
‫אוילרי בו‪ .‬נטייל על המעגל ובכל פעם שבה ניכנס לצומת או נצא ממנו נגדיל מונה עבור‬
‫אותו צומת ב־‪ .1‬נשים לב שבסיום הטיול על המעגל המונה של של צומת יהיה שווה בדיוק‬
‫ל־)‪ d (v‬שכן אנחנו עוברים על כל הקשתות בגרף‪ ,‬ולכל קשת המחוברת ל־‪ v‬אנו מגדילים‬
‫את המונה שלו )אם כאשר אנחנו נכנסים אליו ואם כאשר אנחנו יוצאים(‪.‬‬
‫כעת נשים לב שלכל צומת‪ ,‬מספר הפעמים שאנו נכנסים אליו שווה למספר הפעמים שאנו‬
‫יוצאים ממנו )כי אחרי כל כניסה לצומת אנחנו גם יוצאים אליו למעט עבור ‪ v1‬שפעם אחת‬
‫)בהתחלה( אנו יוצאים ממנו מבלי להיכנס‪ ,‬ובפעם השניה אנו נכנסים אליו מבלי לצאת‪ ,‬כך‬
‫ששוב אנו מתאזנים‪ .‬מכאן ש־)‪ d (v‬זוגי תמיד‪.‬‬
‫הכיוון השני הוא עיקר ההוכחה‪ .‬נניח ש־)‪ d (v‬זוגי לכל הצמתים בגרף הקשיר ‪ G‬ונוכיח‬
‫כי קיים בו מעגל אוילרי‪.‬‬
‫נבחר צומת שרירותי ‪ v ∈ V‬ונטייל בגרף החל ממנו באופן אקראי לחלוטין‪ ,‬כאשר אנו‬
‫מוחקים כל קשת שאנו עוברים בה‪ .‬מכיוון שדרגת כל צומת זוגית‪ ,‬מובטח לנו שבכל פעם‬
‫שבה אנו נכנסים לצומת שאינה ‪ v‬אנו גם יכולים לצאת ממנה לאחר מכן ולכן איננו יכולים‬
‫`להיתקע` אלא רק על ידי חזרה אל ‪ .v‬מכאן שהטיול שלנו בגרף ייצור בהכרח מעגל‪.‬‬
‫לאחר מחיקת כל קשתות המעגל מהגרף עדיין נשמר התנאי שכל הדרגות זוגיות‪ .‬לכן‬
‫ניתן לחזור שוב על התהליך )החל מצומת שדרגתה גדולה מ־‪ (0‬ולקבל מעגל נוסף‪ ,‬וכן הלאה‪.‬‬
‫בכל פעם מספר הקשתות שנותרו בגרף הופך לקטן יותר‪ ,‬ולכן התהליך יסתיים כעבור מספר‬
‫סופי של צעדים ותתקבל סדרה ‪ C1 , C2 , . . . , Ck‬של מעגלים בגרף שכוללים את כל קשתות‬
‫הגרף‪.‬‬
‫נשים לב שכל זוג מעגלים בעלי צומת משותף ניתן לאחד באופן הבא‪ :‬אם ‪ u‬הוא הצומת‬
‫המשותף‪ ,‬אז נבנה משני המעגלים מעגל שצומת ההתחלה שלו הוא ‪ ,u‬לאחריה הולכים כמו‬
‫על המעגל הראשון ומסיימים ב־‪ ,u‬ואז ממשיכים כמו המעגל השני ומסיימים ב־‪) u‬כמובן‪,‬‬
‫המעגל אינו פשוט‪ ,‬אך זה לא נדרש(‪.‬‬
‫כל עוד ניתן לאחד זוג מעגלים מתוך ‪ ,C1 , . . . , Ck‬נעשה זאת‪ .‬אם לבסוף מתקבל רק‬
‫מעגל אחד‪ ,‬סיימנו; אחרת‪ ,‬תהא ‪ C‬קבוצת הצמתים של אחד המעגלים‪ .‬מכיוון ש־‪ G‬קשיר‪,‬‬

‫‪41‬‬
‫קיימת קשת מצומת ‪ u‬ב־‪ C‬אל צומת ‪ .v ∈ V −C‬מכיוון שכל קשת שייכת למעגל כלשהו‪ ,‬גם‬
‫∈ ‪ (v‬אבל מכאן עולה שהצומת ‪ u‬שייך למעגל‬ ‫הקשת )‪ (u, v‬שייכת למעגל שאיננו ‪) C‬כי ‪/ C‬‬
‫הזה ולכן הוא משותף למעגל ול־‪ ,C‬בסתירה לכך שאין שני מעגלים בעלי צומת משותף‪.‬‬
‫קיים ניסוח של המשפט גם עבור גרפים מכוונים‪:‬‬

‫משפט ‪) 11.4‬אוילר‪ ,‬גרסה לגרפים מכוונים( יהא ‪ G‬גרף סופי‪ ,‬מכוון וקשיר‪.‬‬

‫‪ G .1‬הוא אוילרי מעגלי אם ורק אם לכל צומת ‪ v‬מתקיים )‪.din (v) = dout (v‬‬
‫‪ G .2‬אוילרי אם ורק אם )‪ din (v) = dout (v‬לכל זוג צמתים פרט לשני צמתים ‪v, u‬‬
‫אשר מקיימים‪:‬‬

‫)א( ‪din (v) = dout (v) + 1‬‬


‫)ב( ‪dout (u) = din (v) + 1‬‬

‫הוכחה‪ :‬ההוכחה דומה להוכחה של משפט אוילר הרגיל; התנאים של הגרסה המכוונת של‬
‫המשפט מאפשרים להפעיל את אותה ההוכחה ללא שינוי מהותי‪.‬‬

‫גרפי דה־ברויין‬ ‫‪12‬‬


‫ראשית נציג את ההגדרות הפורמליות שלנו עבור מה שבתכנות נקרא מחרוזת ־ סדרה של‬
‫תוויםץ‬

‫הגדרה ‪ 12.1‬אלפבית ‪ Σ‬הוא קבוצה סופית‪ .‬אברי ‪ Σ‬נקראים אותיות‪.‬‬


‫מילה מעל ‪ Σ‬היא סדרה ‪ w = σ1 . . . σn‬של אותיות מ־‪.Σ‬‬
‫אורך של מילה הוא מספר האותיות שבה‪.|σ1 . . . σn | = n :‬‬
‫אוסף כל המילים מאורך ‪ n‬מעל ‪ Σ‬מסומן ב־ ‪.Σn‬‬

‫עבור אלפבית ‪ Σ‬ו־‪ n‬נתונים‪ ,‬אנו מתעניינים בסדרה קצרה ככל הניתן של אותיות כך שכל‬
‫מילה מאורך ‪ n‬מופיעה בתוך הסדרה כאחד מרצפי האותיות שבה‪ ,‬כשרצפים נלקחים בצורה‬
‫ציקלית )כלומר‪ ,‬אם רצף חורג מעבר לסוף המילה הוא חוזר להתחלה‪.‬‬

‫הגדרה ‪ 12.2‬מילה ‪ u‬מאורך ‪ n‬מופיעה במילה ‪ σ1 . . . σt‬באופן ציקלי אם ‪u = σi σi+1 . . . σi+n−1‬‬


‫כאשר פעולת החיבור באינדקסים מתבצעת מודולו ‪ ,t‬במובן הבא‪ :‬אם ‪ j > t‬אז ‪.σj , σj−t‬‬
‫למשל‪ ,‬עבור }‪ Σ = {0, 1‬נתבונן על הסדרה ‪ .00111010‬אם נעבור על אברי הסדרה משמאל‬
‫לימין ובכל צעד ניקח את רצף ‪ 3‬האותיות הבאות‪ ,‬נקבל את המילים‬

‫‪001, 011, 111, 110, 101, 010, 100, 000‬‬

‫אלו כל ‪ 8‬המילים מאורך ‪ 3‬מעל ‪ ,Σ‬וקיבלנו אותם באמצעות סדרה מאורך ‪ .8‬קל להשתכנע‬
‫שסדרה כזו היא אופטימלית‪:‬‬

‫טענה ‪ 12.3‬אם ‪ w‬היא מילה מעל ‪ Σ‬כך שכל מילה ב־ ‪ Σn‬מופיעה באופן ציקלי ב־‪ ,w‬אז‬
‫‪n‬‬
‫|‪.|w| ≥ |Σ‬‬

‫‪42‬‬
‫הוכחה‪ :‬למילים שונות שמופיעות ב־‪ w‬יש אינדקס שונה עבור האות הראשונה‪ ,‬כך שאם‬
‫‪n‬‬ ‫‪n‬‬
‫מופיעות ב־‪ w‬לפחות |‪ |Σ‬מילים שונות‪ ,‬יש לפחות |‪ |Σ‬אינדקסים שונים לאותיות ‪.w‬‬
‫‪n‬‬
‫מכאן שאנו מתעניינים במיוחד בסדרות שהן מהאורך האופטימלי |‪ |Σ‬ונותנים להן שם‪:‬‬
‫‪n‬‬
‫הגדרה ‪ 12.4‬סדרת דה־ברויין מעל ‪ Σ‬למילים מאורך ‪ n‬היא סדרה ‪ σ1 . . . σt‬כך ש־ |‪t = |Σ‬‬
‫ומתקיים ‪.{σi σi+1 . . . σi+n−1 | i = 1, 2, . . . , t} = Σn‬‬
‫כיצד ניתן למצוא סדרות דה־ברויין? כאן באה תורת הגרפים לעזרתנו‪ :‬עם בניה מתאימה‬
‫של גרף מתאים‪ ,‬שייקרא גרף דה־ברויין‪ ,‬נוכל לקבל את כל סדרות דה־ברויין בתור מעגלים‬
‫אוילריים בגרף‪.‬‬

‫הגדרה ‪ 12.5‬גרף דה־ברויין עם פרמטרים ‪ ,k, n‬המסומן ‪ ,Gk,n‬הוא גרף מכוון המוגדר באופן‬
‫הבא‪:‬‬
‫• ראשית מוגדר אלפבית }‪.Σ = {0, 1, . . . , k − 1‬‬
‫• ‪V = Σn−1‬‬
‫• ‪E = Σn‬‬
‫• הקשת ‪ b1 b2 . . . bn‬יוצאת מהצומת ‪ b1 b2 . . . bn−1‬ונכנסת לצומת ‪.b2 b3 . . . bn‬‬

‫טענה ‪ 12.6‬לכל ‪ k, n‬הגרף ‪ Gk,n‬הוא אוילרי מעגלי‪.‬‬


‫הוכחה‪ :‬על פי משפט אוילר‪ ,‬די להראות שלכל צומת )‪ ,din (v) = dout (v‬וש־ ‪ Gk,n‬קשיר‪.‬‬
‫למעשה‪ Gk,n ,‬קשיר היטב‪ .‬נראה מסלול מצומת ‪ u = a1 a2 . . . an−1‬לצומת = ‪v‬‬
‫‪:b1 b2 . . . bn−1‬‬

‫‪a1 a2 . . . an−1‬‬ ‫‪→ a2 . . . an−1 b1‬‬ ‫‪→ · · · → b1 b2 . . . bn−1‬‬

‫כלומר‪ ,‬בכל צעד מכניסים מצד ימין עוד תו במילה של ‪ v‬ומוציאים תו מהמילה של ‪.u‬‬
‫קל לראות שהקשתות המתאימות קיימות‪.‬‬
‫כדי לראות ש־)‪ din (v) = dout (v‬נשים לב להתאמה חח`ע ועל בין קשתות נכנסות‬
‫ויוצאות מ־‪ :v‬אם ‪ v = a1 . . . an−1‬ו־‪ σ ∈ Σ‬כלשהו‪ ,‬אז נתאים בין הקשת הנכנסת‬
‫‪ σa1 . . . an−1‬והקשת היוצאת ‪ .a2 . . . an−1 σ‬קל לראות כי זוהי אכן התאמה חח`ע ועל‪.‬‬

‫‪43‬‬
‫דוגמא למשל‪ ,‬כפי שראינו‪ ,‬דוגמא אחת למעגל אוילרי בגרף ‪ G2,3‬היא זו‪:‬‬
‫‪00 → 01 → 11 → 11 → 10 → 01 → 10 → 00 → 00‬‬
‫הקשתות עליהן עוברים במעגל הזה הן‪:‬‬
‫‪001 → 011 → 111 → 110 → 101 → 010 → 100 → 000‬‬
‫ניתן להשתמש בכתיבה מקוצרת ולתאר את כל המסלול כסדרה באורך ‪) 8‬בכל פעם‬
‫מתואר התו החדש שמתווסף למחרוזת(‪ .00111010 :‬זו סדרת דה־ברויין שראינו בהתחלה‪.‬‬
‫כעת נוכל להסיק‪:‬‬

‫טענה ‪ 12.7‬לכל ‪ k, n‬יש סדרת דה־ברויין מעל }‪ Σ = {0, 1, . . . , k − 1‬למילים מאורך ‪.n‬‬
‫הוכחה‪ :‬נתבונן בגרף דה־ברויין ‪ .Gk,n‬כפי שראינו‪ ,‬קיים בו מעגל אוילרי‪ .‬יהיו ‪e1 , e2 , . . . , ekn‬‬
‫הקשתות בגרף לפי הסדר שבו הן מופיעות במעגל‪ .‬נבנה סדרת דה ברויין באופן האינדוקטיבי‬
‫הבא‪ :‬היא מתחילה ב־ ‪ ,e1‬ולאחר מכן לכל קשת ‪ ei‬בתורה נוסיף לה את האות האחרונה‬
‫ב־ ‪ ei‬עד ל־‪ .i = k n − n‬מכיוון שאורך ‪ e1‬הוא ‪ n‬ואנחנו מוסיפים עוד ‪ k n − n‬תווים‪ ,‬נקבל‬
‫סדרה מאורך ‪ k n‬שמתארת במדויק את המעגל האוילרי‪ ,‬ומכיוון שכל מילה מופיעה כקשת‬
‫במעגל‪ ,‬סיימנו‪.‬‬

‫עצים‬ ‫‪13‬‬
‫הגדרה ואפיונים בסיסיים‬ ‫‪13.1‬‬
‫הגדרה ‪ 13.1‬עץ הוא גרף פשוט ‪ G‬המקיים את שתי התכונות הבאות‪:‬‬

‫• ‪ G‬קשיר‪.‬‬
‫• ‪ G‬חסר מעגלים‪.‬‬

‫משפט ‪ 13.2‬התנאים הבאים שקולים ‪:4‬‬

‫‪ G .1‬הוא עץ‪.‬‬
‫‪ G .2‬חסר מעגלים ותוספת כל קשת ל־‪ G‬יוצרת מעגל )‪ G‬הוא מקסימלי ביחס לתכונה‬
‫`חסר מעגלים`(‬
‫‪ G .3‬קשיר ומחיקת כל קשת מ־‪ G‬תהפוך אותו ללא קשיר )‪ G‬הוא מינימלי ביחס לתכונה‬
‫`קשיר`(‪.‬‬
‫‪ .4‬לכל זוג צמתים ‪ u, v‬קיים מסלול פשוט יחיד מ־‪ u‬אל ‪.v‬‬

‫הוכחה‪ :‬נוכיח באמצעות שרשרת גרירות‪.‬‬


‫‪ :2 ⇐ 1‬אם ‪ G‬הוא עץ הוא חסר מעגלים על פי הגדרה‪ .‬נניח כי מוסיפים ל־‪ G‬את הקשת‬
‫)‪ ;(u, v‬מכיוון ש־‪ G‬קשיר כבר קיים מסלול בין ‪ u‬אל ‪ u → · · · → v ,v‬ומכיוון ש־)‪ (u, v‬לא‬
‫הייתה בגרף‪ ,‬המסלול לא עובר דרך )‪ (u, v‬ולכן ניתן להוסיף אותה בסוף המסלול ולהשלים‬
‫אותו למעגל ‪.u → · · · → v → u‬‬
‫‪4‬שימו לב לדמיון בין משפט זה למשפט מאלגברה לינארית לפיו ארבעת התנאים הבאים שקולים‪ :‬קבוצת‬
‫וקטורים היא בסיס‪ ,‬קבוצת וקטורים היא מקסימלית ביחס לאי־תלות לינארית‪ ,‬קבוצת וקטורים היא מינימלית‬
‫ביחס לפרישה‪ ,‬וכל וקטור ניתן לכתיבה כצירוף לינארי יחיד של אברי הקבוצה‪ .‬הדמיון איננו מקרי ־ מרחבים‬
‫וקטוריים וגרפים הם שתי הדוגמאות הקלאסיות למטרואידים‪ ,‬שהם אובייקטים בעלי תכונות דומות לאלו‪.‬‬

‫‪44‬‬
‫‪ :4 ⇐ 2‬ניקח שני צמתים ‪ .u, v ∈ V‬אם קיים ביניהם מסלול הוא יחיד‪ ,‬שכן שני‬
‫מסלולים שונים ניתן לשרשר לקבלת מעגל ונתון ש־‪ G‬חסר מעגלים‪ .‬לכן נותר להוכיח כי‬
‫קיים מסלול בין ‪ .u, v‬אם קיימת ב־‪ G‬הקשת )‪ (u, v‬אז קיים ביניהם המסלול ‪.u → v‬‬
‫אם הקשת )‪ (u, v‬אינה בגרף‪ ,‬אז הוספתה ל־‪ G‬תיצור מעגל; מכיוון ש־‪ G‬הוא חסר מעגלים‬
‫המעגל חייב לעבור דרך )‪ (u, v‬ולכן הוא מהצורה ‪) u → v → · · · → u‬בלי הגבלת הכלליות‬
‫ניתן להניח שצומת ההתחלה והסיום הוא ‪ (u‬ומכאן שקיים ב־‪ G‬כבר מסלול‪.v → · · · → u :‬‬
‫‪ G :3 ⇐ 4‬קשיר כי בין כל זוג צמתים קיים מסלול‪ .‬תהא )‪ (u, v‬קשת בגרף; מכאן‬
‫ש־‪ u → v‬הוא המסלול היחיד בגרף מ־‪ u‬אל ‪ ,v‬ולכן אם תוסר הקשת )‪ (u, v‬לא יהיה מסלול‬
‫מ־‪ u‬אל ‪ v‬והגרף יפסיק להיות קשיר‪.‬‬
‫‪ G :1 ⇐ 3‬קשיר על פי הנתון‪ .‬נניח בשלילה שקיים בו מעגל פשוט → · · · → ‪u → v‬‬
‫‪ .w → u‬מכיוון שהמעגל פשוט ‪) w 6= v‬כי ‪ v‬אינו יכול להופיע פעמיים במעגל פשוט(‪ ,‬אז‬
‫לאחר הסרת הקשת )‪ (u, v‬הגרף יוסיף להיות קשיר‪ :‬כל מסלול בו שהשתמש בקשת )‪(u, v‬‬
‫יכול ללכת במסלול ‪ v → · · · → w → u‬במקום‪.‬‬

‫הגדרה ‪ 13.3‬יער הוא גרף פשוט וחסר מעגלים )איחוד עצים זרים(‪.‬‬
‫עלה בגרף כלשהו הוא צומת מדרגה ‪.1‬‬

‫טענה ‪ 13.4‬ביער סופי בן קשת אחת לפחות קיימים לפחות שני עלים‪.‬‬
‫הוכחה‪ :‬ניקח בגרף מסלול פשוט באורך מקסימלי )קיים כזה שכן הגרף סופי ולכן אורך כל‬
‫מסלול פשוט חסום על ידי מספר הצמתים בגרף(‪ .‬נקודות ההתחלה והסיום חייבות להיות‬
‫עלים‪ ,‬שאם לא כן ניתן יהיה להאריך את המסלול; אם צומת ההתחלה אינו עלה‪ ,‬הוא מחובר‬
‫לצומת נוסף שחייב לא להיות על המסלול )שאם לא כן יהיה בגרף מעגל‪ ,‬בסתירה לכך שהוא‬
‫יער(‪ ,‬ולכן ניתן להרחיב את המסלול על ידי הוספת מעבר לאותו הצומת‪.‬‬

‫טענה ‪ 13.5‬אם )‪ G = (V, E‬הוא עץ בעל | ‪ n = |V‬צמתים אז ‪.|E| = n − 1‬‬

‫הוכחה‪ :‬נוכיח באינדוקציה על ‪ n‬־ מספר הצמתים‪.‬‬


‫בסיס האינדוקציה הוא עבור ‪ :n = 1‬במקרה זה ב־‪ G‬יש בדיוק ‪ n − 1 = 0‬קשתות )כי‬
‫קשת דורשת לפחות שני צמתים(‪.‬‬
‫נניח את נכונות הטענה עבור ‪ n‬ונוכיח שבעץ בעל ‪ n + 1‬צמתים יש בדיוק ‪ n‬קשתות‪.‬‬
‫מכיוון שיש בעץ לפחות שני צמתים‪ ,‬כדי שהוא יהיה קשיר בהכרח קיימת בו קשת אחת‬
‫לפחות ולכן על פי טענה ‪ ,13.4‬ב־‪ G‬קיים עלה‪ .‬אם נסיר את העלה מהעץ‪ ,‬נקבל גרף בן ‪n‬‬
‫צמתים שגם הוא עץ )שכן הסרת עלה אינה פוגעת בקשירות העץ ואינה יכולה ליצור מעגל(‪.‬‬
‫לכן יש בו ‪ n − 1‬קשתות על פי הנחת האינדוקציה; ומכאן שב־‪ G‬יש ‪ n‬קשתות )‪n − 1‬‬
‫הקשתות של תת־העץ‪ ,‬ועוד הקשת שמחברת את תת־העץ אל העלה(‪.‬‬

‫טענה ‪ 13.6‬יהא )‪ G = (V, E‬גרף סופי בעל | ‪ n = |V‬צמתים‪.‬‬

‫‪ G .1‬הוא עץ אם ורק אם ‪ G‬חסר מעגלים בעל ‪ n − 1‬קשתות‪.‬‬

‫‪ G .2‬הוא עץ אם ורק אם ‪ G‬קשיר בעל ‪ n − 1‬קשתות‪.‬‬

‫הוכחה‪ :‬אם ‪ G‬הוא עץ אז לפי טענה ‪ 13.5‬הוא בעל ‪ n − 1‬קשתות וכמובן שהוא קשיר וחסר‬
‫מעגלים‪ ,‬כך שנותר רק להוכיח את הכיוון השני בכל אחת משתי הטענות‪.‬‬

‫‪45‬‬
‫נניח ש־‪ G‬חסר מעגלים בעל ‪ n − 1‬קשתות‪ .‬כל עוד ניתן להוסיף ל־‪ G‬קשתות מבלי‬
‫ליצור מעגל‪ ,‬נעשה זאת עד לקבלת גרף ‪ G0‬שבו הוספת כל קשת תיצור מעגל‪ .‬על פי טענה‬
‫‪ G0 ,13.2‬הוא עץ; ולכן מטענה ‪ 13.5‬יש בו ‪ n − 1‬קשתות‪ ,‬כלומר ‪ ,G = G0‬ולכן ‪ G‬הוא עץ‪.‬‬
‫נניח ש־‪ G‬קשיר בעל ‪ n−1‬קשתות‪ .‬כל עוד ניתן להסיר מ־‪ G‬קשת מבלי לפגום בקשירות‬
‫שלו נעשה זאת עד לקבלת גרף ‪ G0‬שבו הורדת כל קשת תפגום בקשירות של הגרף‪ .‬פי טענה‬
‫‪ G0 ,13.2‬הוא עץ; ולכן מטענה ‪ 13.5‬יש בו ‪ n − 1‬קשתות‪ ,‬כלומר ‪ ,G = G0‬ולכן ‪ G‬הוא עץ‪.‬‬

‫משפט קיילי לספירת עצים‬ ‫‪13.2‬‬


‫נסמן ב־ ‪ fn‬את מספר העצים על קבוצת הצמתים }‪`) V = {1, 2, . . . , n‬עצים מסומנים`;‬
‫כאשר צמתי העץ לא ניתנים להבחנה אלו מאלו הבעיה קשה בהרבה(‪.‬‬

‫משפט ‪) 13.7‬קיילי( ‪.fn = nn−2‬‬

‫נציג את ההוכחה של ‪ .Prüfer‬בהוכחה זו מראים התאמה חח`ע ועל בין קבוצת העצים על‬
‫}‪ V = {1, 2, . . . , n‬וקבוצת המחרוזות מאורך ‪ n − 2‬מעל הא`ב }‪ .{1, 2, . . . , n‬ההתאמה‬
‫תוצג באמצעות אלגוריתם המתרגם עץ למחרוזת‪ ,‬והוכחה שהאלגוריתם מבצע התאמה חח“ע‬
‫ועל‪.‬‬

‫אלגוריתם ‪ :TreeToWord‬קלט‪ G = (V, E) :‬כך ש־‪ G‬הוא עץ‪.‬‬


‫פלט‪ :‬מילה ‪.w = σ1 σ2 . . . σn−2‬‬
‫האלגוריתם‪:‬‬
‫‪ .1‬עבור ‪:i = 1, 2, , . . . , n − 2‬‬

‫)א( תהא ‪ (u, v) ∈ E‬הקשת כך ש־‪ u‬הוא העלה המינימלי )מבחינת מספרו הסידורי(‬
‫בגרף ‪.G‬‬
‫)ב( קבעו ‪) σi = v‬האות ה־‪ i‬היא מספרו הסידורי של השכן של העלה ‪ u‬ב־‪.(G‬‬
‫)ג( הסירו את ‪ u‬מהגרף ‪.G‬‬

‫בסיום ריצת האלגוריתם הוסרו מהגרף ‪ n − 2‬צמתים ו־‪ n − 2‬קשתות‪ ,‬ולכן ‪ G‬נותר עם זוג‬
‫צמתים בודד שמחובר בקשת‪ .‬כפי שנראה‪ ,‬אין צורך בטיפול נוסף בצמתים אלו‪.‬‬
‫נשים לב לכך שהאלגוריתם עובד תמיד; לא מובן מאליו שבשלב א' יהיה תמיד ניתן‬
‫למצוא עלה‪ ,‬אך זה נובע ישירות מטענה ‪ :13.4‬בתחילת האלגוריתם ב־‪ G‬יש ‪ n − 1‬קשתות‪,‬‬
‫והאלגוריתם מסיר ‪ n − 2‬קשתות במהלך ריצתו‪ ,‬ולכן תמיד קיימת ב־‪ G‬קשת אחת לפחות‬
‫ולכן תמיד קיים ב־‪ G‬עלה אחד לפחות‪ .‬מכאן שהפונקציה שהאלגוריתם מחשב היא מוגדרת‬
‫היטב )לכל קלט קיים פלט יחיד(‪.‬‬
‫כעת נותר להוכיח שההתאמה ש־‪ TreeToWord‬מגדיר היא חח“ע ועל‪ .‬כלומר‪ ,‬שלכל‬
‫מילה מאורך ‪ n − 2‬מעל }‪ {1, . . . , n − 2‬קיים עץ שמייצר אותה )זה יוכיח שהפונקציה היא‬
‫על( ושהעץ הזה הוא יחיד )זה יוכיח שהפונקציה היא חח“ע(‪.‬‬

‫על )‪ ,G = (V, E‬אז לכל‬ ‫‪TreeToWord‬‬ ‫טענה ‪ 13.8‬אם ‪ w‬היא המילה שמתקבלת כפלט של‬
‫‪ v ∈ V‬מספר המופעים של ‪ v‬ב־‪ w‬הוא בדיוק ‪.d (v) − 1‬‬

‫‪46‬‬
‫הוכחה‪ :‬עבור ‪ v‬יש שתי אפשרויות‪ :‬או שהוא אחד משני הצמתים שנשארים בסיום ריצת‬
‫האלגוריתם‪ ,‬או שהוא מוסר מהגרף בשלב מסוים‪ .‬האלגוריתם מסיר מהגרף רק צומת שהוא‬
‫עלה‪ ,‬כלומר בעל שכן בודד בעץ‪ ,‬ולכן בכל אחד משני המקרים ‪ v‬מגיע באלגוריתם למצב שבו‬
‫יש לו שכן בודד‪ ,‬ומכאן ש־‪ d (v) − 1‬משכניו מוסרים לפניו‪ ,‬ובכל הפעמים הללו ‪ v‬מתווסף‬
‫למחרוזת‪ .‬לאחר הסרת שכנים אלו ‪ v‬הופך בעצמו לעלה‪ ,‬ולכן המקרה היחיד שבו לא יוסר‬
‫הוא אם גם שכנו הוא עלה‪ ,‬ובמקרה זה שני צמתים אלו הם האחרונים שנותרו בעץ‪.‬‬

‫מסקנה ‪ 13.9‬אם ‪ v‬אינו מופיע ב־‪ ,w‬אז ‪ v‬הוא עלה בכל עץ שיוצר את ‪.w‬‬
‫‪n−2‬‬
‫}‪ ,w ∈ {1, 2, . . . , n‬קיים ויחיד עץ ‪ T‬היוצר אותה באמצעות‬ ‫טענה ‪ 13.10‬בהינתן מילה‬
‫האלגוריתם ‪.TreeToWord‬‬
‫הוכחה‪ :‬נוכיח באינדוקציה על ‪.n‬‬
‫בסיס האינדוקציה עבור ‪ :n = 2‬במקרה זה ‪ w‬היא המחרוזת הריקה‪ ,‬ואכן קיים עץ‬
‫יחיד בן שני הצמתים }‪.{1, 2‬‬
‫‪0‬‬
‫צעד‪ :‬נניח באינדוקציה שלמה כי לכל ‪ ,n < n‬ההתאמה בין עצים ומילים של ‪Tree-‬‬
‫‪ ToWord‬היא אכן חח`ע ועל‪.‬‬
‫יהא }‪ u ∈ {1, 2, . . . , n‬המינימלי שאינו מופיע ב־‪) w‬קיים כזה שכן אורך ‪ w‬הוא ‪.(n − 2‬‬
‫מכיוון ש־‪ u‬הוא הקטן מבין האיברים שאינם מופיעים ב־‪ ,w‬הוא בהכרח העלה המינימלי‬
‫בכל עץ שיוצר את ‪ .w‬לכן בהכרח ‪) w1‬האות הראשונה ב־‪ (w‬הוא השכן של ‪ u‬בכל עץ‬
‫שיוצר את ‪.w‬‬
‫כעת `נקצוץ` את ‪ w1‬מ־‪ w‬לקבלת ‪ w0 = w2 . . . wn−2‬ונסיר מ־ ‪ V‬את ‪ u‬לקבלת‬
‫}‪.V 0 = V − {u‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫מהנחת האינדוקציה נובע שקיים עץ יחיד ) ‪ T = (V , E‬היוצר את המילה ‪ .w‬מעץ זה‬
‫מתקבל ‪ T‬על ידי הוספת הקשת ) ‪ (u, w1‬שראינו כי היא נקבעת באופן יחיד‪ .‬מכאן ש־ ‪T‬‬
‫נקבע באופן יחיד על ידי ‪ ,w‬כנדרש‪.‬‬
‫הוכחה זו גם מתווה את האופן שבו יעבוד אלגוריתם פענוח שבונה עץ בהינתן מילה‪:‬‬

‫קלט‪ :‬מילה ‪w = σ1 σ2 . . . σn−2‬‬ ‫אלגוריתם ‪:WordToTree‬‬


‫פלט‪ :‬עץ )‪G = (V, E‬‬
‫האלגוריתם‪:‬‬

‫‪ .1‬אתחלו ∅ = ‪.S = V ,E‬‬


‫‪ .2‬עבור ‪:i = 1, 2, . . . , n − 2‬‬

‫)א( מצאו את ‪ u‬־ הצומת המינימלי ב־‪ S‬שאינו מופיע ב־ ‪.wi wi+1 . . . wn−2‬‬
‫)ב( }) ‪.E ← E ∪ {(u, wi‬‬
‫)ג( }‪.S ← S − {u‬‬

‫‪ .3‬בשלב זה }‪ .S = {u, v‬בצעו })‪.E ← E ∪ {(u, v‬‬

‫‪47‬‬
‫עצים מכוונים‬ ‫‪13.3‬‬
‫נפתח בהגדרות הדרושות כדי להכליל את מושג העץ לגרפים מכוונים‪:‬‬

‫הגדרה ‪ 13.11‬שורש בגרף מכוון הוא צומת שקיים מסלול ממנו אל כל הצמתים‪.‬‬
‫עץ מכוון הוא גרף מכוון אשר גרף התשתית שלו הוא עץ וקיים לו שורש‪.‬‬
‫כמקודם‪ ,‬ניתן לתת מספר אפיונים שקולים לכך שגרף הוא עץ מכוון‪:‬‬

‫משפט ‪ 13.12‬יהא ‪ G‬גרף מכוון‪ .‬הטענות הבאות שקולות‪:‬‬

‫‪ G .1‬הוא עץ מכוון‪.‬‬

‫‪ .2‬ל־‪ G‬יש שורש ולכל צומת בגרף המסלול מהשורש אליו הוא יחיד‪.‬‬
‫‪ .3‬ל־‪ G‬יש שורש שדרגת הכניסה שלו ‪ 0‬ולשאר הצמתים בגרף דרגת כניסה ‪.1‬‬
‫‪ .4‬ל־‪ G‬יש שורש ומחיקת כל קשת מ־‪ G‬הופכת את ‪ G‬לחסר שורש‪.‬‬
‫‪ .5‬גרף התשתית של ‪ G‬קשיר ול־‪ G‬יש צומת אחד עם דרגת כניסה ‪ 0‬ולשאר הצמתים‬
‫דרגת כניסה ‪.1‬‬

‫הוכחה‪ :‬נוכיח באמצעות שרשרת גרירות‪.‬‬


‫‪ :2 ⇐ 1‬מכיוון ש־‪ G‬הוא עץ מכוון קיים לו שורש ‪ .v‬נניח בשלילה כי קיים בגרף צומת ‪u‬‬
‫‪1‬‬ ‫‪2‬‬
‫‪ ,v‬אז בגרף התשתית של ‪ G‬השרשור של שני המסלולים‬ ‫‪u, v‬‬ ‫כך שיש שני מסלולים ‪u‬‬
‫יוצר מעגל ולכן גרף התשתית אינו עץ‪ ,‬בסתירה לכך ש־‪ G‬עץ מכוון‪.‬‬
‫‪ :3 ⇐ 2‬אם דרגת הכניסה של השורש ‪ v‬אינה ‪ 0‬זה אומר שיש צומת ‪ u‬כך שהקשת‬
‫‪ u → v‬בגרף; מכיוון שקיים מסלול מ־‪ v‬אל ‪ u‬קיבלנו שיש שני מסלולים מ־‪ v‬אל ‪ v‬בגרף ־‬
‫‪ v‬והמסלול מאורך ‪ 0‬שכולל רק את ‪ ,v‬בסתירה‪ .‬באופן דומה‪ ,‬אם ל־‪u‬‬ ‫המסלול ‪u → v‬‬
‫כלשהו יש דרגת כניסה לפחות ‪ ,2‬אז יש ‪ u1 , u2‬כך שהקשתות ‪ u1 → u‬ו־‪ u2 → u‬בגרף‪,‬‬
‫‪ .v‬אם ל־‪u‬‬ ‫‪ v‬והמסלול ‪u2 → u‬‬ ‫וקיבלנו שני מסלולים מ־‪ v‬אל ‪ :u‬המסלול ‪u1 → u‬‬
‫יש לו דרגת כניסה ‪ 0‬אז לא קיים מסלול אליו מהשורש‪ ,‬ולכן המסקנה היא שדרגת הכניסה‬
‫של כל ‪ u‬שאינו השורש היא ‪.1‬‬
‫‪ :4 ⇐ 3‬קיום שורש ‪ v‬מובטח מתנאי ‪ .3‬תהא ‪ u → w‬קשת כלשהי בגרף‪ .‬בהכרח‬
‫‪ ,v‬כלומר הצעד האחרון שלו משתמש בקשת‬ ‫המסלול מ־‪ v‬אל ‪ w‬הוא מהצורה ‪u → w‬‬
‫מ־‪ u‬אל ‪ ,w‬אחרת היינו מקבלים שקיימים שני מסלולים שונים מ־‪ v‬אל ‪ .w‬לכן אם נמחקת‬
‫הקשת ‪ u → w‬מהגרף אין מסלול מ־‪ v‬אל ‪ w‬ובכך ‪ v‬מפסיק להיות שורש‪ .‬מכיוון שדרגת‬
‫הכניסה של ‪ v‬הייתה אפס הוא היה בהכרח השורש היחיד בגרף‪ ,‬ולכן הגרף הפך לחסר‬
‫שורש‪.‬‬
‫‪ :5 ⇐ 4‬מכיוון שיש ל־‪ G‬שורש ‪ v‬גרף התשתית בהכרח קשיר )מסלול בין כל שני צמתים‬
‫בגרף התשתית נבנה משרשור שני המסלולים שמחברים את השורש אליהם בגרף המקורי(‪.‬‬
‫ל־‪ v‬יש דרגת כניסה אפס כי אם יש קשת ‪ u → v‬אז אפשר להסיר אותה מהגרף ו־‪ v‬עדיין‬
‫יישאר שורש‪ .‬בדומה לכל צומת ‪ u‬אם יש שתי קשתות ‪ u1 → u‬ו־‪ u2 → u‬אפשר להסיר‬
‫אחת מהן ועדיין יוותר מסלול מ־‪ v‬אל ‪ u‬ומכאן ש־‪ v‬יוותר שורש )ואם ל־‪ u‬דרגת כניסה ‪0‬‬
‫אז לא קיים מסלול אליו מהשורש(‪.‬‬
‫‪ :1 ⇐ 5‬כאן עלינו להראות כי גרף התשתית של ‪ G‬הוא חסר מעגלים וכי יש ל־‪ G‬שורש‪.‬‬
‫יהא ‪ v‬הצומת בעל דרגת הכניסה ‪ 0‬בגרף‪ .‬ראשית נוכיח כי ‪ v‬הוא שורש‪ .‬יהא ‪ u‬צומת כלשהו‬
‫בגרף‪ ,‬אז קיים מסלול ‪ v → w1 → · · · → wk = u‬בגרף התשתית של ‪ ;G‬נותר להראות‬

‫‪48‬‬
‫שב־‪ G‬כל הקשתות מכוונות בכיוון המסלול‪ .‬אם אין קשתות במסלול‪ ,‬סיימנו; בנוסף‪ ,‬הקשת‬
‫) ‪ (u, w1‬חייבת להיות מכוונת לכיוון ‪ w1‬אחרת דרגת הכניסה של ‪ v‬גדולה מאפס‪ ,‬ומכאן‬
‫נמשיך באינדוקציה‪ :‬הקשת ) ‪ (wi−1 , wi‬היא מ־ ‪ wi−1‬אל ‪ wi‬על פי הנחת האינדוקציה‪ ,‬ולכן‬
‫כדי שדרגת הכניסה של ‪ wi‬תהיה בדיוק ‪ 1‬הכרחי שהקשת ) ‪ (wi , wi+1‬תהיה מכוונת לכיוון‬
‫‪ wi+1‬וכך עד ‪.wk = u‬‬
‫נותר להראות כי גרף התשתית של ‪ G‬אינו כולל מעגלים‪ .‬נניח בשלילה כי קיים מעגל; אז‬
‫‪ v‬אינו יכול להיות עליו )אחרת הייתה קשת נכנסת ל־‪ v‬ודרגת הכניסה של ‪ v‬לא הייתה ‪.(0‬‬
‫נתבונן במסלול מ־‪ v‬אל צומת ‪ u‬כלשהו על המעגל‪,v = u0 → u1 → u2 → · · · → uk = u :‬‬
‫ויהא ‪ ui‬בעל האינדקס ‪ i‬המינימלי שנמצא על המעגל )‪ i ≥ 1‬שכן ראינו כי ‪ v‬אינו יכול להיות‬
‫על המעגל(‪ .‬אז מצד אחד נכנסת אליו הקשת מ־ ‪ ui−1‬שאינו על המעגל‪ ,‬ומצד שני נכנסת‬
‫אליו קשת מצומת שכן על המעגל‪ ,‬ולכן דרגת הכניסה שלו היא לפחות ‪ ,2‬בסתירה לנתון‪.‬‬
‫ישנו עוד אפיון אחד שהשמטנו מהרשימה שכן הוא תקף רק עבור גרפים מכוונים סופיים‪:‬‬

‫טענה ‪ 13.13‬גרף מכוון סופי ‪ G‬הוא עץ בעל שורש ‪ r‬אם ורק אם דרגת הכניסה של ‪ r‬היא‬
‫‪ ,0‬דרגת הכניסה של שאר הצמתים בגרף היא ‪ ,1‬וגרף התשתית של ‪ G‬חסר מעגלים‪.‬‬

‫הוכחה‪ :‬כיוון אחד קל ־ אם ‪ G‬הוא עץ מכוון בעל שורש ‪ r‬אז גרף התשתית הוא עץ ולכן‬
‫חסר מעגלים‪ ,‬וכבר ראינו כי היותו של ‪ G‬עץ גוררת את התכונה הנדרשת על הדרגות )אפיון‬
‫‪ 3‬במשפט ‪.(13.12‬‬
‫בכיוון השני עלינו להראות כי ‪ r‬הוא שורש )מה שגם יגרור את קשירות גרף התשתית(‪.‬‬
‫יהא ‪ u‬צומת כלשהו בגרף‪ .‬נבנה סדרה ‪ u1 , u2 , . . .‬באופן הבא‪ u1 = u :‬ולכל ‪ ui+1 ,i‬הוא‬
‫הצומת שנכנס אל ‪ .ui‬יש צומת כזה כל עוד ‪ ,ui 6= r‬כי דרגת הכניסה של ‪ ui‬היא ‪.1‬‬
‫נניח כעת בשלילה כי קיימים ‪ i < j‬כך ש־ ‪ .ui = uj‬אז קיבלנו מעגל בגרף‪uj → :‬‬
‫‪ .uj−1 → · · · → ui = uj‬מכאן שכל אברי הסדרה שונים אלו מאלו‪ .‬מכיוון שניתן להמשיך‬
‫את הסדרה כל עוד לא הגענו אל ‪ r‬ויש רק מספר סופי של צמתים בגרף שמספרם חוסם את‬
‫אורך הסדרה‪ ,‬הסדרה חייבת להגיע אל ‪ ,r‬מה שיראה קיום של מסלול מ־‪ r‬אל ‪.u‬‬
‫דוגמה נגדית פשוטה למשפט שלעיל במקרה שבו הגרף אינסופי היא גרף שמורכב מ`שרוך`‬
‫אינסופי לשני הכיוונים ‪ ,· · · → • → • → • → . . .‬ועוד צומת מבודד )שישמש בתפקיד ‪.(r‬‬

‫עצים פורשים‬ ‫‪13.4‬‬


‫הגדרה וקיום‬ ‫‪13.4.1‬‬
‫הגדרה ‪ 13.14‬עבור גרף )‪) G = (V, E‬שיכול להיות מכוון או לא מכוון(‪:‬‬

‫• הגרף המושרה על ‪ G‬על ידי קבוצת צמתים ‪ V 0 ⊆ V‬הוא הגרף ) ‪ G0 = (V 0 , E 0‬בו ‪E 0‬‬
‫מכילה את קשתות ‪ E‬אשר שני קצותיהן ב־ ‪.(E 0 = {(u, v) ∈ E | u, v ∈ V 0 }) V 0‬‬
‫• הגרף המושרה על ‪ G‬על ידי קבוצת קשתות ‪ E 0 ⊆ E‬הוא ) ‪ G0 = (V 0 , E 0‬כאשר ‪V 0‬‬
‫מכילה את כל הצמתים בהם נוגעות קשתות מ־ ‪E 0‬‬
‫‪0‬‬
‫))‪.(V = (v ∈ V | ∃u ∈ V : (u, v) ∈ E ∨ (v, u) ∈ E‬‬

‫הגדרות אלו שימושיות באופן כללי‪ ,‬אך אנו רוצים לדבר על סוג מיוחד של תת־גרף מושרה‪:‬‬

‫הגדרה ‪ 13.15‬עץ פורש של גרף )‪ G = (V, E‬הוא עץ ) ‪ T = (V, E 0‬המושרה על ידי תת‬
‫קבוצה ‪.E 0 ⊆ E‬‬

‫‪49‬‬
‫כלומר‪ ,‬עץ פורש צריך לכלול את כל צמתי הגרף המקורי וחלק מהקשתות‪ ,‬כך שהוא יהיה‬
‫עץ‪.‬‬
‫ברור כי לכל גרף לא מכוון קשיר קיים עץ פורש‪ :‬פשוט מסירים קשתות מהגרף עד‬
‫שמגיעים למצב שבו הסרת כל קשת הופכת את הגרף לבלתי קשיר‪ ,‬ואז הוא עץ על פי משפט‬
‫‪ .13.2‬פחות ברור המקרה של עץ מכוון‪:‬‬

‫טענה ‪ 13.16‬לכל גרף מכוון עם שורש ‪ r‬יש עץ פורש עם שורש ‪.r‬‬


‫להיות אורך המסלול הקצר ביותר מ־‪ r‬אל ‪v‬‬ ‫)‪dist (v‬‬ ‫הוכחה‪ :‬לכל צומת ‪ v ∈ V‬נגדיר את‬
‫)המספר הזה תמיד מוגדר כי ‪ r‬הוא שורש(‪.‬‬
‫לכל ‪ ,v 6= r‬נתבונן במסלול מאורך )‪ dist (v‬מ־‪ r‬אליו‪ .r → · · · → u → v :‬נוסיף לעץ‬
‫שאנו בונים את הקשת ‪.u → v‬‬
‫ברור כי בבניה זו דרגת הכניסה של ‪ r‬תהיה ‪ 0‬ודרגת הכניסה של כל צומת אחר תהיה‬
‫‪) 1‬כי מוסיפים לגרף בדיוק קשת אחת שנכנסת אליו(‪ .‬נותר להראות שהגרף המושרה שבנינו‬
‫קשיר‪ .‬נניח בשלילה שהוא אינו קשיר‪ ,‬ויהי ‪ v‬צומת מינימלי ביחס ל־)‪ dist (v‬שאינו ישיג מ־‪.r‬‬
‫אז בגרף המקורי ‪ v‬נמצא על מסלול ‪ ,r → · · · → u → v‬ובלי הגבלת הכלליות ניתן להניח‬
‫שזהו המסלול שבאמצעותו נבחרה הקשת שהוספנו לגרף עבור ‪ .v‬מכאן שהקשת ‪u → v‬‬
‫נמצאת בגרף המושרה שבנינו‪ .‬כעת‪) dist (u) < dist (v) ,‬כי ‪ u‬נמצא לפני ‪ v‬במסלול הקצר‬
‫ביותר שמוביל אל ‪ (v‬ומהמינימליות של ‪ v‬עולה ש־‪ u‬ישיג מ־‪ r‬בתת הגרף המושרה שבנינו‪,‬‬
‫אבל מכך נובע שגם ‪ v‬ישיג‪.‬‬

‫ספירת עצים פורשים ־ משפט קירכהוף לגרפים מכוונים‬ ‫‪13.4.2‬‬


‫בהינתן גרף מכוון ‪ G‬וצומת ‪ ,r‬נשאלת השאלה כמה עצים פורשים יש ל־‪ G‬עם שורש‬
‫‪ .r‬משפט קירכהוף מצביע על שיטה למציאת מספר זה באמצעות חישוב דטרמיננטה של‬
‫מטריצה מיוחדת המותאמת לגרף‪.‬‬

‫הגדרה ‪ 13.17‬בהינתן גרף מכוון ‪ G‬ללא חוגים עצמיים על צמתים } ‪,V = {v1 , v2 , . . . , vn‬‬
‫נגדיר מספר מטריצות ב־ ‪ Rn×n‬המתאימות לגרף‪:‬‬

‫• מטריצת השכנויות ‪ A‬של הגרף מוגדרת כך ש־ ‪ [A]ij‬הוא מספר הקשתות מ־ ‪ vi‬אל ‪vj‬‬
‫ב־‪.G‬‬
‫(‬
‫‪din (vi ) i = j‬‬
‫= ‪ [∆]ij‬כלומר זו‬ ‫• מטריצת דרגת הכניסה ∆ מוגדרת על ידי‬
‫‪0‬‬ ‫‪i 6= j‬‬
‫מטריצה אלכסונית שבה דרגות הכניסה של צמתי ‪ G‬מופיעים על האלכסון‪.‬‬

‫• מטריצת הלפסליאן ‪ L‬מוגדרת על ידי ‪ ,∆ − A‬כלומר‬


‫– ‪ Lii‬שווה לדרגת הכניסה של ‪din (vi ) ,vi‬‬
‫– ‪ Lij‬עבור ‪ i 6= j‬שווה למינוס מספר הקשתות ב־‪ G‬מ־ ‪ vi‬אל ‪) vj‬אם מספר‬
‫הקשתות הוא ‪ kij‬אז ‪.(Lij = −kij‬‬

‫ההנחה שאין ב־‪ G‬חוגים עצמיים אינה מגבילה אותנו‪ ,‬שכן עץ פורש ממילא אינו יכול להכיל‬
‫קשת מצומת לעצמו )היא תיצור מעגל(‪ ,‬ולכן בהינתן גרף כלשהו‪ ,‬מספר העצים הפורשים שלו‬
‫זהה למספר העצים הפורשים של הגרף שמתקבל ממנו על ידי הסרת החוגים העצמיים‪.‬‬

‫‪50‬‬
‫עם זאת‪ ,‬ב־‪ G‬בהחלט יכולות להיות קשתות מקבילות‪ ,‬ואנו סופרים בנפרד עצים פורשים‬
‫שמשתמשים בקשתות שונות עבור אותם זוגות צמתים‪.‬‬
‫כדי לנסח את משפט קירכהוף אנו זקוקים להגדרה נוספת מאלגברה לינארית‪:‬‬

‫הגדרה ‪ 13.18‬מטריצת המינור ‪ Lr‬של ‪ L‬היא המטריצה המתקבלת מ־‪ L‬על ידי מחיקת‬
‫השורה והעמודה ה־‪r‬־ים‪.‬‬
‫וכעת ניתן לעבור לניסוח המשפט‪:‬‬

‫משפט ‪) 13.19‬קירכהוף( יהא ‪ G‬גרף מכוון עם מטריצת לפלסיאן ‪ .L‬מספר העצים הפורשים‬
‫את ‪ G‬עם שורש ‪ vr‬הוא בדיוק ) ‪.det (Lr‬‬

‫המקרה הפשוט של המשפט הוא זה שבו מספר הקשתות בגרף קטן מ־‪ .n − 1‬במקרה זה‬
‫אין מספיק קשתות ב־‪ G‬כדי ליצור עץ פורש )שכן כל עץ פורש הוא בעל ‪ n − 1‬קשתות( ולכן‬
‫מספר העצים הפורשים הוא ‪ .0‬קל לראות כי ‪ det (Lr ) = 0‬במקרה זה; מכיוון שיש ב־‪G‬‬
‫לכל היותר ‪ n − 2‬קשתות‪ ,‬דרגת הכניסה של שני צמתים לפחות היא ‪ .0‬זה אומר שיש צומת‬
‫‪ vi‬כך ש־‪ i 6= r‬עבורו ‪ din (vi ) = 0‬ולכן ‪ Lii = 0‬וכמו כן לכל ‪ j 6= i‬מתקיים ‪) Lji = 0‬כי‬
‫אין קשת מ־ ‪ vj‬שנכנסת אל ‪ .(vi‬כלומר‪ ,‬העמודה ה־‪ i‬ב־‪ L‬כולה אפסים‪ ,‬כך שגם ב־ ‪ Lr‬יש‬
‫עמודה שכולה אפסים‪ ,‬ולכן ‪.det (Lr ) = 0‬‬
‫נעבור למקרה שבו מספר הקשתות ב־‪ G‬הוא לפחות ‪ .n − 1‬לצורך הוכחת המשפט‬
‫נתבסס על כך שאנו יכולים לכתוב את ‪ Lr‬כמכפלה של שתי מטריצות לא ריבועיות‪ .‬ראשית‪,‬‬
‫עבור )‪ G = (V, E‬נסמן ב־| ‪ n = |V‬את מספר הצמתים וב־|‪ m = |E‬את מספר הקשתות‪.‬‬
‫כעת נגדיר מטריצות ‪ A, B‬מסדר ‪ (n − 1) × m‬כך שכל שורה מתאימה לצומת של ‪G‬‬
‫פרט לצומת ‪) r‬נניח בלי הגבלת הכלליות ש־‪ ,(r = n‬על פי הכללים הבאים‪:‬‬
‫‪ Aik = Bik = −1‬אם הקשת ‪ ek‬נכנסת לצומת ‪ vi‬ב־‪.G‬‬
‫‪ Aik = 1‬אם הקשת ‪ ek‬יוצאת מהצומת ‪ vi‬ב־‪.G‬‬
‫שאר הכניסות של שתי המטריצות הן ‪.0‬‬
‫כלומר‪ ,‬כל עמודה של ‪ A, B‬מייצגת קשת בגרף‪ ,‬כך שבשורה שמתאימה לצומת שממנה‬
‫יוצאת הקשת יש ‪ 1‬ב־‪ A‬ו־‪ 0‬ב־‪ ,B‬וכמו כן בשורה שמתאימה לצומת שאליה נכנסת הקשת‬
‫יש ‪ −1‬בשתי המטריצות‪ .‬נשים לב כי השורה שמתאימה לצומת ‪ r‬של השורש לא מופיעה‬
‫במטריצות‪.‬‬

‫טענה ‪.Lr = AB T 13.20‬‬


‫‪Pm‬‬ ‫‪T‬‬
‫‪Pm‬‬ ‫‪P‬‬
‫= ‪Lii‬‬ ‫‪k=1‬‬ ‫‪Aik Bki‬‬ ‫=‬ ‫‪k=1‬‬ ‫= ‪Aki Bki‬‬ ‫הוכחה‪(−1) · (−1) = :‬‬
‫‪j:ek =vj →vi‬‬
‫) ‪.din (vi‬‬
‫‪Pm‬‬ ‫‪Pm‬‬ ‫‪:i‬‬ ‫‪6‬‬
‫=‬ ‫‪j‬‬ ‫עבור‬ ‫כן‬ ‫כמו‬
‫‪T‬‬
‫‪P‬‬
‫= ‪ ,Lij‬כלומר מינוס מספר‬ ‫‪k=1‬‬ ‫‪Aik Bkj‬‬ ‫)‪= k=1 Aik Bjk = ek =vi →vj 1 · (−1‬‬
‫הקשתות שנכנסות מ־‪ i‬אל ‪.j‬‬
‫כזכור‪ ,‬באלגברה לינארית מוכיחים את המשפט ‪ .det (A · B) = det A det B‬לרוע המזל‪,‬‬
‫המשפט נכון רק עבור מטריצות ריבועיות‪ ,‬ואילו ‪ A, B‬שלנו אינן ריבועיות; למרבה המזל‬
‫קיימת הכללה של משפט זה‪.‬‬

‫בהתאמה כך ש־‪AB‬‬
‫משפט ‪) 13.21‬קושי־בינה(‪ :‬אם ‪ A, B‬מטריצות מסדרים ‪ n×m‬ו־‪P m×n‬‬
‫היא מטריצה מסדר ‪ ,n × n‬וגם ‪ ,n ≤ m‬אז מתקיים ‪,det (AB) = σ det Aσ det Bσ‬‬

‫‪51‬‬
‫כאשר ‪ σ‬רץ על כל הקבוצות של ‪ n‬אינדקסים מתוך }‪ ,{1, . . . , m‬ו־ ‪ Aσ‬מייצג את תת־‬
‫המטריצה מסדר ‪ n×n‬שמתקבלת מ־‪ A‬על ידי מחיקת כל העמודות פרט לאלו שהאינדקסים‬
‫שלהן ב־‪ ,σ‬ו־ ‪ Bσ‬מוגדרת בדומה עבור מחיקת שורות‪.‬‬
‫כזכור‪ ,‬כבר טיפלנו במקרה שבו ‪) m < n − 1‬במצב זה ‪ (det (Lr ) = 0‬ולכן ניתן להניח כי‬
‫‪ m ≥ n − 1‬ותנאי משפט קושי־בינה מתקיימים‪.‬‬
‫המשפט מקל עלינו את הוכחת משפט קירכהוף בצורה משמעותית‪ ,‬שכן ל־ ‪ Aσ‬ו־ ‪ Bσ‬יש‬
‫משמעות קומבינטורית פשוטה‪ :‬הן מייצגות את מה שנותר מ־‪ G‬לאחר שנבחרה בו תת־‬
‫קבוצה ‪ σ‬של קשתות שהן מועמדות ליצור עץ‪ .‬שימו לב ש־‪ A, B‬הן מסדרים × )‪(n − 1‬‬
‫)‪ m, m×(n − 1‬ולכן ‪ σ‬הוא בחירה של ‪ n−1‬עמודות )קשתות( מתוך ‪ m‬העמודות )קשתות(‬
‫האפשריות‪ .‬מכיוון שעל פי משפט קושי־בינה מתקיים‬

‫‪X‬‬ ‫‪X‬‬
‫= ‪det Lr‬‬ ‫= ‪det Aσ det BσT‬‬ ‫‪det Aσ det Bσ‬‬
‫‪σ‬‬ ‫‪σ‬‬

‫מה שנותר להראות כדי להוכיח ש־ ‪ det Lr‬הוא מספר העצים הפורשים של ‪ G‬עם השורש‬
‫‪ vr‬הוא שאם הקשתות שנבחרו ב־‪ σ‬יוצרות עץ‪ ,‬המחובר שמתאים להן יהיה ‪ ,1‬ואם אינן‬
‫יוצרות עץ‪ ,‬המחובר יהיה ‪ .0‬פורמלית נראה‪:‬‬
‫‪ .1‬אם ‪ σ‬מתאים לבחירה של ‪ n−1‬קשתות שיוצרות עץ פורש שהשורש שלו הוא ‪ ,vr‬אז או‬
‫ש־‪ det Aσ = det Bσ = 1‬או ש־‪) det Aσ = det Bσ = −1‬ולכן = ‪det Aσ det BσT‬‬
‫‪.(1‬‬
‫‪ .2‬אם ‪ σ‬מתאים לבחירה של ‪ n − 1‬קשתות שאינן יוצרות עץ פורש‪ ,‬אז ‪ det Aσ = 0‬או‬
‫‪.det Bσ = 0‬‬
‫לבה הטכני של ההוכחה הוא בשתי התוצאות הבאות מאלגברה לינארית‪:‬‬

‫• החלפת שתי שורות או שתי עמודות של מטריצה הופכת את סימן הדטרמיננטה שלה‬
‫אך לא משנה את ערכה המוחלט‪.‬‬
‫• הדטרמיננטה של מטריצה משולשית תחתונה היא מכפלת האיברים שעל האלכסון‪.‬‬
‫אם כן‪ ,‬נביא את ‪ Aσ , Bσ‬לצורה של מטריצה משולשית תחתונה על ידי סידור מחדש של‬
‫השורות והעמודות‪.‬‬
‫אם ‪ σ‬מגדירה עץ פורש ‪ T‬ב־‪ ,G‬אז נבנה סדרה ‪ u1 , u2 , . . .‬של צמתים ו־ ‪e1 , e2 , . . .‬‬
‫של קשתות באופן הבא‪ :‬מכיוון ש־ ‪ T‬הוא עץ‪ ,‬קיימים בו לפחות שני עלים‪ ,‬כלומר יש בו עלה‬
‫שאינו ‪ .vr‬עלה זה יהיה ‪ .u1‬הקשת שמחברת את ‪ u1‬לשאר הגרף תהיה ‪ .e1‬כעת נמחק‬
‫את ‪ u1‬ו־ ‪ e1‬מהעץ‪ ,‬ונקבל עץ חדש‪ ,‬שגם בו שני עלים שאחד מהם אינו ‪ vr‬ומהם נבנה את‬
‫‪ u2 , e2‬וכן הלאה‪ .‬הצומת האחרון שיוותר בגרף הוא ‪ vr‬וממנו פשוט נתעלם‪.‬‬
‫כעת נסדר מחדש את ‪ Aσ , Bσ‬כך שהשורה הראשונה היא של הצומת ‪ ,u1‬העמודה‬
‫הראשונה של ‪ ,e1‬השורה השניה של ‪ u2‬וכן הלאה‪.‬‬
‫נתבונן בשורה שמתאימה ל־ ‪ ui‬בכל אחת משתי המטריצות‪ .‬אנו רוצים להראות שלכל‬
‫‪ k > i‬מתקיים שהכניסה ה־‪ ik‬שווה ‪ 0‬כדי שהמטריצות יהיו משולשיות תחתונות‪ .‬אם‬
‫‪ uik 6= 0‬זה אומר שהקשת ‪ ek‬מחוברת לצומת ‪) ui‬נכנסת או יוצאת ממנו( בעץ ‪ ,T‬ושקשת‬
‫זו הוסרה מהעץ רק אחרי הצעד שבו ‪ ui‬הוסר מהעץ‪ .‬אבל כאשר ‪ ui‬מוסר מהעץ הוא‬
‫עלה‪ ,‬ולכן ‪ ei‬הייתה הקשת האחרונה שחיברה את ‪ ui‬לעץ‪ ,‬ומכאן שלא ייתכן ש־ ‪ ek‬הייתה‬

‫‪52‬‬
‫מחוברת אליו‪ .‬כמו כן‪ ei ,‬היא קשת שנכנסת ל־ ‪ ,ui‬ולכן הכניסה ה־‪ ii‬במטריצה היא ‪−1‬‬
‫)גם ב־ ‪ Aσ‬וגם ב־ ‪ .(Bσ‬מכאן שאכן נקבל ‪ det Aσ = det Bσ = ±1‬במקרה זה‪.‬‬
‫נניח כעת כי ‪ σ‬אינה מגדירה עץ‪ ,‬ונראה כי ‪ det Aσ = 0‬או ‪ ,det Bσ = 0‬בהתאם לשני‬
‫הדברים שיכולים להשתבש‪.‬‬
‫ראשית‪ ,‬ייתכן ש־‪ σ‬אינה עץ אפילו בגרף התשתית של ‪ .G‬במקרה זה‪ ,‬מכיוון ש־‪σ‬‬
‫היא קבוצה של ‪ n − 1‬קשתות‪ ,‬בהכרח יש בגרף שמושרה מ־‪ σ‬שני רכיבי קשירות‪ ,‬שכן‬
‫כל גרף לא מכוון קשיר עם ‪ n − 1‬קשתות הוא עץ‪ .‬נתבונן ברכיב הקשירות שבו ‪ vr‬אינו‬
‫נמצא‪ ,‬ובאוסף השורות ב־ ‪ Aσ‬שמתאים לצמתים של רכיב קשירות זה‪ .‬אם נראה כי סכום‬
‫שורות אלו הוא ‪ ,0‬סיימנו; זה מוכיח כי השורות תלויות לינארית ולכן ‪ Aσ‬היא סינגולרית‬
‫ו־‪ .det Aσ = 0‬הסכום הוא אפס שכן לכל עמודה במטריצה‪ ,‬אם הקשת שהיא מייצגת לא‬
‫שייכת לרכיב הקשירות אז אף אחד משני הצמתים שמחוברים אליה לא שייכים לקבוצת‬
‫הצמתים של השורות שלקחנו‪ ,‬ואז העמודה תהיה שווה ל־‪ 0‬בכל השורות בקבוצה שלנו; או‬
‫שהקשת כן שייכת לרכיב הקשירות ואז שני הצמתים המחוברים יהיו בקבוצת השורות שלנו‪,‬‬
‫ומכיוון שבצומת שממנו יוצאת הקשת הערך הוא ‪ 1‬ובצומת שאליו נכנסת הקשת הערך הוא‬
‫‪ −1‬שוב נקבל שהסכום הוא ‪.0‬‬
‫נותר לטפל במקרה שבו ‪ σ‬מגדירה עץ בגרף התשתית אך בגרף המכוון זה איננו עץ‬
‫ששורשו ‪ .vr‬במקרה זה נראה כי ‪ .det Bσ = 0‬נסדר את המטריצה כפי שעשינו במקרה שבו‬
‫‪ σ‬כן הגדירה עץ‪ .‬מכיוון ש־‪ σ‬לא מגדירה עץ במקרה זה‪ ,‬בהכרח זה מכיוון שיש קשת אחת‬
‫לפחות שמכוונת בכיוון הלא נכון‪ ,‬כלומר יש ‪ i‬כך ש־ ‪ ei‬יוצאת מהצומת ‪ ,vi‬ולכן הכניסה ‪ii‬‬
‫במטריצה המסודרת מחדש תהיה ‪ ,0‬ומכאן שנקבל שהדטרמיננטה היא ‪ .0‬זה מסיים את‬
‫ההוכחה‪.‬‬

‫ספירת עצים פורשים ־ משפט קירכהוף לגרפים לא מכוונים‬ ‫‪13.4.3‬‬


‫משפט קירכהוף שהוכחנו קודם ניתן לניסוח גם עבור גרפים לא מכוונים; ההוכחה שלו‬
‫מתבססת על רדוקציה למקרה של גרף מכוון‪.‬‬
‫נזכיר את המטריצות המעורבות‪ ,‬הפעם בהגדרה עבור גרפים לא מכוונים‪:‬‬

‫הגדרה ‪ 13.22‬בהינתן גרף לא מכוון ‪ G‬ללא חוגים עצמיים על צמתים } ‪,V = {v1 , v2 , . . . , vn‬‬
‫נגדיר מספר מטריצות ב־ ‪ Rn×n‬המתאימות לגרף‪:‬‬

‫• מטריצת השכנויות ‪ A‬של הגרף מוגדרת כך ש־ ‪ [A]ij‬הוא מספר הקשתות בין ‪ vi‬ו־ ‪vj‬‬
‫ב־‪.G‬‬
‫(‬
‫‪d (vi ) i = j‬‬
‫= ‪ [∆]ij‬כלומר זו מטריצה‬ ‫• מטריצת הדרגות ∆ מוגדרת על ידי‬
‫‪0‬‬ ‫‪i 6= j‬‬
‫אלכסונית שבה הדרגות של צמתי ‪ G‬מופיעים על האלכסון‪.‬‬

‫• מטריצת הלפסליאן ‪ L‬מוגדרת על ידי ‪ ,∆ − A‬כלומר‬


‫– ‪ Lii‬שווה לדרגה של ‪d (vi ) ,vi‬‬
‫– ‪ Lij‬עבור ‪ i 6= j‬שווה למינוס מספר הקשתות ב־‪ G‬בין ‪ vi‬ו־ ‪) vj‬אם מספר‬
‫הקשתות הוא ‪ kij‬אז ‪.(Lij = −kij‬‬

‫בניגוד למקרה המכוון‪ ,‬במקרה הלא מכוון מטריצת השכנויות ‪ A‬היא סימטרית‪ ,‬שכן מספר‬
‫הקשתות בין ‪ vi‬ו־ ‪ vj‬זהה‪ ,‬כמובן‪ ,‬למספר הקשתות בין ‪ vj‬ו־ ‪.vi‬‬

‫‪53‬‬
‫משפט ‪) 13.23‬קירכהוף( יהא ‪ G‬גרף לא מכוון עם מטריצת לפלסיאן ‪ L‬ויהא ‪ v ∈ V‬צומת‬
‫כלשהו ב־‪ .G‬מספר העצים הפורשים את ‪ G‬הוא בדיוק ) ‪.det (Lv‬‬
‫בניגוד למקרה של גרפים מכוונים‪ ,‬בגרף לא מכוון אין חשיבות לבחירה של ‪ ;v ∈ V‬כפי‬
‫שנראה‪ ,‬עבור כל ‪ v ∈ V‬תתקבל אותה התוצאה‪ .‬הוכחה‪ :‬כמו במקרה המכוון‪ ,‬ניתן להניח‬
‫שאין ב־‪ G‬חוגים עצמיים שכן הם ממילא לא יכולים להשתתף באף עץ פורש‪.‬‬
‫מהגרף הלא מכוון )‪ G = (V, E‬נבנה גרף מכוון ) ‪ G0 = (V, E 0‬באופן הבא‪ :‬ב־ ‪ G0‬אותם‬
‫צמתים כמו ‪ ,G‬ואם ב־‪ G‬קיימת הקשת )‪ (v, u‬אז ב־ ‪ G0‬יהיו קיימות שתי הקשתות ‪v → u‬‬
‫ו־‪) u → v‬אם יש יותר מקשת אחרת בין ‪ v, u‬בגרף ‪ G‬אז נוסיף שתי קשתות ל־ ‪ G0‬עבור כל‬
‫קשת שכזו(‪.‬‬
‫מטריצת השכנויות של הגרף החדש היא ‪ A0 = A‬על פי הגדרה‪ .‬בנוסף ∆ = ‪ ∆0‬שכן כל‬
‫קשת שמחוברת לצומת ב־‪ G‬הופכת לזוג קשתות‪ ,‬שאחת מהן נכנסת לצומת זו ב־ ‪ .G0‬מכאן‬
‫ש־‪ ,L0 = L‬ולכן ) ‪ det (L0v ) = det (Lv‬לכל ‪.v ∈ V‬‬
‫כדי להשלים את ההוכחה צריך לראות שלכל ‪ v ∈ V‬יש התאמה חח“ע ועל בין עצים‬
‫פורשים של ‪ G‬ועצים פורשים של ‪ G0‬עם שורש ‪ .v‬בכיוון אחד‪ ,‬בהינתן עץ פורש ‪ T‬ב־‪G‬‬
‫נוסיף כיוונים לקשתות שלו כך שדרגת הכניסה של ‪ G‬תהיה ‪ 0‬ודרגת הכניסה של כל צומת‬
‫אחר תהיה ‪ .1‬ניתן לעשות זאת באופן הבא‪ :‬לכל קשת )‪ (u, w‬כלשהי ב־ ‪ T‬אנו יודעים‬
‫‪ .v‬אם ‪ w‬מופיע על המסלול‪ ,‬נכוון את הקשת )‪ (u, w‬מ־‪ w‬אל ‪;u‬‬ ‫שקיים מסלול יחיד ‪u‬‬
‫אחרת‪ ,‬נכוון אותה מ־‪ u‬אל ‪ .w‬את הגרף שהתקבל נסמן ב־ ‪ .T 0‬אנו יודעים שגרף התשתית‬
‫‪ T‬שלו הוא עץ‪ ,‬ולכן כדי להשתכנע ש־ ‪ T 0‬הוא עץ מכוון די להראות ש־‪ v‬הוא שורש‪ .‬בהינתן‬
‫‪ v‬בעץ ‪ T‬ונראה שהוא מסלול גם ב־ ‪ .T 0‬לשם כך נתבונן‬ ‫‪ ,u ∈ V‬נתבונן במסלול ‪u‬‬
‫במעבר כלשהו ‪ w1 → w2‬על המסלול ב־ ‪ T‬ונראה שהקשת ) ‪ (w1 , w2‬מכוונת מ־ ‪ w1‬אל ‪w2‬‬
‫גם ב־ ‪ ;T 0‬דבר זה נובע מכך שהמסלול היחיד מ־‪ v‬אל ‪ w2‬ב־ ‪ T‬חייב לעבור קודם ב־ ‪w1‬‬
‫)אחרת גם המסלול מ־‪ v‬אל ‪ u‬לא היה עובר קודם ב־ ‪.(w1‬‬
‫הראינו התאמה שלכל עץ פורש ‪ T‬של ‪ G‬מחזירה עץ פורש ‪ T 0‬עם השורש ‪ v‬של ‪.G0‬‬
‫בכיוון ההפוך‪ ,‬בהינתן עץ פורש ‪ ,T 0‬נחזיר את גרף התשתית שלו ‪ T‬שהוא בוודאי עץ על פי‬
‫הגדרת עץ פורש בגרף מכוון‪ .‬התאמה זו היא ההופכית של ההתאמה הקודמת שהראינו‪ ,‬מה‬
‫שמוכיח שההתאמה היא חח“ע ועל‪.‬‬

‫מספרי קטלן‬ ‫‪14‬‬


‫נעבור כעת לתאר סדרת מספרים שמופיעה בבעיות ספירה טבעיות רבות‪ ,‬ובפרט שתיים‬
‫הקשורות לעצים‪.‬‬
‫‪ .1‬כמה מסלולים יש ב־ ‪ Z2‬מ־)‪ (0, 0‬אל )‪ (n, n‬כאשר הצעדים המותרים הם ימינה‬
‫ולמעלה והמסלול אף פעם לא מגיע אל מתחת לאלכסון הראשי ‪?x = y‬‬
‫‪ .2‬כמה סדרות סוגריים חוקיות קיימות עם ‪ n‬פותחים ו־‪ n‬סוגרים? )סדרת סוגריים‬
‫היא חוקית אם כשקוראים אותה משמאל לימין בשום שלב אין יותר סוגריים סוגרים‬
‫מפותחים‪ ,‬ובסיום מספרם שווה(‪.‬‬
‫‪ .3‬כמה עצים בינאריים יש עם ‪ n‬צמתים?‬
‫‪ .4‬כמה עצים בינאריים מלאים יש עם ‪ n + 1‬עלים? )בעץ בינארי מלא‪ ,‬לכל צומת שאינו‬
‫עלה יש שני בנים בדיוק(‪.‬‬
‫‪ .5‬בכמה דרכים ניתן לחלק מצולע בן ‪ n + 2‬צלעות למשולשים?‬

‫‪54‬‬
‫הפתרון לכל הבעיות הללו הוא ‪ Cn‬־ מספר קטלן ה־‪n‬־י‪.‬‬

‫מסלולי שריג‬ ‫‪14.1‬‬


‫נפתח בפתרון ‪ 1‬שיאפשר לנו למצוא נוסחה מפורשת ל־ ‪.Cn‬‬
‫הכוללים מ־)‪ (0, 0‬אל )‪ (n, n‬שכוללים צעדים ימינה ולמעלה ואין‬ ‫מספר מסלולי השריג‬
‫‪ 2n‬־ בוחרים את ‪ n‬הצעדים שבהם נעלה למעלה‪ ,‬ובשאר‬
‫‬
‫‪n‬‬ ‫הוא‬ ‫עליהם מגבלות אחרות‬
‫הצעדים הולכים ימינה‪.‬‬
‫נראה כי מספר המסלולים הרעים‬ ‫‪.x‬‬ ‫=‬ ‫‪y‬‬ ‫לאלכסון‬ ‫מתחת‬ ‫שיורד‬ ‫כזה‬ ‫מסלול `רע` הוא‬
‫‪2n‬‬
‫‬
‫‪. n−1‬‬ ‫הוא כמספר המסלולים הכולל מ־)‪ (1, −1‬אל )‪ ,(n, n‬כלומר‬
‫כל מסלול רע חייב לפגוש מתישהו את האלכסון המשני ‪ y = x−1‬שכן בהתחלה המסלול‬
‫מקיים ‪ x = y‬ובכל צעד משנים את אחת הקוארדינטות ב־‪.1‬‬
‫נסמן ב־‪ p‬את נקודת המפגש הראשונה של המסלול הרע עם ‪ .y = x − 1‬כעת נשקף את‬
‫המסלול בקטע שבין )‪ (0, 0‬אל ‪ p‬ביחס לאלכסון ‪) y = x − 1‬שיקוף שכזה פירושו שהמסלול‬
‫מתחיל מ־)‪ ,(1, −1‬עולה בכל פעם שבה המסלול המקורי הולך ימינה‪ ,‬והולך ימינה בכל פעם‬
‫שבה המסלול המקורי עולה(‪ .‬קל לראות פורמלית כי גם המסלול המשוקף מגיע אל ‪ ,p‬ולכן‬
‫אפשר לשרשר לו את המשך המסלול הרגיל‪.‬‬
‫קל לראות כי ההתאמה שתיארנו היא חד חד ערכית‪ ,‬שכן ניתן להפוך אותה על ידי‬
‫ביצוע שיקוף חוזר‪ .‬כמו כן נשים לב שההתאמה הפיכה לכל מסלול מ־)‪ (1, −1‬אל )‪(n, n‬‬
‫שכן מסלול שכזה חייב לגעת מתישהו ב־‪) y = x − 1‬כי הוא מתחיל מתחת לאלכסון זה‬
‫מעליו(‪ ,‬ולכן קיבלנו התאמה חח`ע ועל כמבוקש‪.‬‬ ‫וצריך לסיים ‬
‫‪ .Cn = 2n‬כדי לפשט את הביטוי נשים לב לכך ש־‬ ‫‪n‬‬ ‫‪−‬‬ ‫‪2n‬‬
‫קיבלנו כי ‪n−1‬‬
‫‬ ‫‬
‫‪2n‬‬ ‫!)‪(2n‬‬ ‫!)‪(2n‬‬ ‫!‪n‬‬ ‫!‪n‬‬
‫=‬ ‫=‬ ‫·‬ ‫·‬
‫‪n−1‬‬ ‫!)‪(n − 1)! (n + 1‬‬ ‫!)‪n!n! (n − 1)! (n + 1‬‬
‫ ‬
‫‪2n‬‬ ‫‪n‬‬
‫=‬ ‫·‬
‫‪n‬‬ ‫‪n+1‬‬

‫ומכאן‪:‬‬

‫‬‫ ‬ ‫‬
‫‪2n‬‬ ‫‪2n‬‬
‫‪Cn‬‬ ‫=‬ ‫‪−‬‬
‫‪n‬‬ ‫‪n−1‬‬
‫ ‬ ‫‬
‫‪2n‬‬ ‫‪n‬‬
‫=‬ ‫‪1−‬‬
‫‪n‬‬ ‫‪n+1‬‬
‫ ‬
‫‪1‬‬ ‫‪2n‬‬
‫=‬
‫‪n+1 n‬‬

‫זהו ביטוי מפורש למספר קטלן ‪.Cn‬‬

‫סוגריים מאוזנים ומילות דיק‬ ‫‪14.2‬‬


‫סוגריים מאוזנים הם מקרה פרטי של מושג כללי יותר‬

‫‪55‬‬
‫‪2n‬‬
‫הגדרה ‪ 14.1‬מילת דיק מאורך ‪ 2n‬מעל הסימנים }‪ {a, b‬היא מילה }‪ w ∈ {a, b‬עם בדיוק‬
‫‪ n‬מופעים של ‪ a‬ו־‪ n‬מופעים של ‪ b‬שהיא בעלת התכונה שבכל רישא של המילה‪ ,‬מספר ה־‪a‬־‬
‫ים גדול או שווה למספר ה־‪b‬־ים‪ .‬פורמלית מסמנים זאת באופן הבא‪ :‬לכל פירוק ‪w = uv‬‬
‫מתקיים ש־)‪ ,#a (u) ≥ #b (u‬וכמו כן מתקיים )‪.#a (w) = #b (w‬‬
‫לצורך נוחות‬ ‫סדרת סוגריים חוקית היא מילת דיק שבה הסימנים הם ) ‪ (,‬בהתאמה‪.‬‬
‫הסימונים נעבור כעת להשתמש בסימנים ‪.U, R‬‬
‫ראשית נשים לב לשקילות הברורה שבין מסלולי שריג וסדרות סוגריים חוקיות ־ ‪ U‬מציין‬
‫צעד עלייה למעלה‪ R ,‬מציין צעד ימינה‪ ,‬והתנאי על האלכסון שקול לתנאי על מילות דיק‪.‬‬
‫כעת נשתמש בדרך ההצגה באמצעות מילות דיק כדי לפתח ביטוי רקורסיבי למספרי‬
‫קטלן‪.‬‬
‫‪Pn‬‬ ‫‪C‬‬ ‫‪0‬‬ ‫=‬ ‫‪1‬‬ ‫בסיס‪:‬‬
‫צעד‪Cn+1 = i=0 Ci Cn−i :‬‬
‫הנוסחה נובעת מהאבחנה הבאה‪ :‬לכל מילת דיק לא ריקה ‪ w‬קיימת הצגה יחידה‬
‫מהצורה ‪ w = U xRy‬כך ש־‪ x, y‬הן מילות דיק‪ ,‬אולי ריקות‪ .‬מכאן שמספר ה־‪w‬־ים מאורך‬
‫‪ x, P‬של מילות דיק שמקיימות ‪.|x| + |y| = 2n‬‬‫)‪ 2 (n + 1‬הוא כמספרם של כל הזוגות ‪y‬‬
‫‪n‬‬
‫מכאן מתקבלת הנוסחה‪ Cn+1 = i=0 Ci Cn−i :‬הוא עיקרון החיבור בפעולה‪ ,‬כשמפרידים‬
‫בין מקרים שונים לפי אורך ‪) x‬שהוא במקרה הכללי ‪ .(2i‬בהינתן בחירה של מילת דיק באורך‬
‫‪ 2i‬עבור ‪ Ci ) x‬אפשרויות( אנו בוחרים מילת דיק ‪ y‬מאורך )‪ Cn−i ) 2 (n − i‬אפשרויות(‬
‫ומשתמשים בעיקרון הכפל לקבלת מספר כל הזוגות של )‪ (x, y‬שכאלו‪.‬‬
‫נוכיח את הטענה על קיום הפירוק היחיד ‪ .w = U xRy‬ראשית‪ ,‬האות הראשונה ב־‪w‬‬
‫חייבת להיות ‪ U‬כי אם היא תהיה ‪ R‬זה יפר את התנאי שמגדיר מילות דיק‪.‬‬
‫נתבונן על הפירוקים האפשריים של ‪ w‬לרישא וסיפא‪ ,w = uy ,‬וניקח פירוק שמקיים‬
‫)‪ #R (u) = #U (u‬כך שאורך ‪ u‬הוא מינימלי מבין כל הפירוקים שמקיימים זאת‪ .‬נשים לב‬
‫לכך שבהכרח קיים פירוק אחד לפחות כזה‪ ,‬שכן ‪ u = w‬מקיים זאת על פי הגדרת מילות‬
‫דיק‪.‬‬
‫נסמן ‪u = u0 σ‬‬
‫לפי התנאי על מילות דיק ) ‪ .#R (u0 ) ≤ #U (u0‬לכן בהכרח ‪) σ = R‬אחרת היינו‬
‫מקבלים )‪ (#R (u) < #U (u‬ולכן ניתן לכתוב ‪ .u = U xR‬כעת נראה כי ‪ x‬היא מילת דיק‪:‬‬
‫לכל רישא ‪ x0‬של ‪ x‬מתקיים‬

‫‪#R (x0 ) = #R (U x0 ) < #U (U x0 ) = #U (x0 ) + 1‬‬

‫כאשר אי השוויון הוא חזק בזכות המינימליות של ‪ .u‬מכך ש־‪#R (x0 ) < #U (x0 ) + 1‬‬
‫והעובדה שכל המספרים במשוואה שלמים‪ ,‬נסיק ) ‪.#R (x0 ) ≤ #U (x0‬‬
‫כמו כן‪#R (x) = #R (U xR) − 1 = #U (U xR) − 1 = #U (x) ,‬‬
‫ולכן ‪ x‬מקיימת את התכונה שמספר ה־ ‪ U‬וה־‪R‬־ים בה מתאזן בסוף‪ .‬מכאן ש־‪ x‬היא‬
‫מילת דיק‪.‬‬
‫כעת נעבור ל־‪ .y‬כדי לראות שהיא מילת דיק נסתמך כמקודם על התכונה שמגדירה‬
‫מילות דיק והעובדה ש־‪ u‬ו־‪ w = uy‬הן מילת דיק‪:‬‬

‫)‪#R (y) = #R (uy) − #R (u) = #U (uy) − #U (u) = #U (y‬‬

‫‪56‬‬
‫ולכל רישא ‪ y 0‬של ‪ ,y‬נסתמך על כך ש־ ‪ uy 0‬היא רישא של ‪ w‬ונקבל‪:‬‬

‫) ‪#R (y 0 ) = #R (uy 0 ) − #R (u) ≤ #U (uy 0 ) − #U (u) = #U (y 0‬‬

‫כמבוקש‪.‬‬

‫עצים בינאריים‬ ‫‪14.3‬‬


‫הגדרה ‪ 14.2‬עץ בינארי הוא עץ מכוון שבו דרגת היציאה של כל צומת היא לכל היותר ‪.2‬‬
‫עץ בינארי מלא הוא עץ בינארי שבו דרגת היציאה של כל צומת היא ‪ 0‬או ‪.2‬‬
‫כמה עצים בינאריים בעלי ‪ n‬צמתים )לא מסומנים( קיימים?‬
‫כאן נוח להשתמש בתיאור רקורסיבי של עצים בינאריים‪:‬‬

‫טענה ‪) 14.3‬עצים בינאריים‪ ,‬הגדרה רקורסיבית(‬

‫• הגרף הריק הוא עץ בינארי‪.‬‬


‫• אם ‪ T1 , T2‬הם עצים בינאריים אז גרף מצומת ‪ r‬וקשתות אל ‪ T1 , T2‬הוא עץ בינארי‬
‫)`קשת אל ‪ `T‬פירושה קשת אל השורש של ‪ T‬אם ‪ T‬לא ריק‪ ,‬ואחרת אין קשת(‬

‫נסמן ב־ ‪ Bn‬את מספר העצים הבינאריים על ‪ n‬צמתים‪ .‬מהתיאור הרקורסיבי שלעיל נובעת‬
‫הנוסחה הרקורסיבית הבאה‪:‬‬
‫‪Pn B0 = 1‬‬
‫‪ Bn+1 = i=0 Bi Bn−i‬־ סכימה על הבחירות האפשריות של עצים בתור בנים ל־‪;r‬‬
‫סכום הצמתים בשני העצים הוא ‪ n‬כי הצומת הנוסף משמש בתפקיד ‪.r‬‬
‫נוסחה זו זהה לחלוטין לנוסחה של מספרי קטלן‪ ,‬דהיינו ‪.Bn = Cn‬‬
‫נעבור כעת לטפל באופן דומה בעצים בינאריים מלאים‪ .‬ההבדל העיקרי הוא שאנחנו‬
‫סופרים את מספר העצים הבינאריים מלאים בעלי ‪ n‬עלים‪ ,‬ולא צמתים‪ .‬מטעמי נוחות לא‬
‫נחשיב את הגרף הריק כעץ בינארי מלא‪.‬‬

‫טענה ‪) 14.4‬עצים בינאריים מלאים‪ ,‬הגדרה רקורסיבית(‬

‫• גרף בעל צומת בודד הוא עץ בינארי מלא‪.‬‬


‫• אם ‪ T1 , T2‬הם עצים בינאריים מלאים אז גרף שמורכב מצומת ‪ r‬וקשתות אל ‪T1 , T2‬‬
‫הוא עץ בינארי מלא‪.‬‬

‫בעץ בעל צומת אחד יש גם עלה בודד‪ .‬בעץ שנבנה מתוך ‪ T1‬ו־ ‪ T2‬מספר העלים הוא סכום‬
‫מספרי העלים של ‪ .T1 , T2‬זה מוביל לנוסחה הבאה‪:‬‬
‫‪Pn‬‬ ‫‪D1 = 1‬‬
‫‪ Dn+1 = i=1 Di Dn+1−i‬־ דומה לנוסחה הקודמת‪ ,‬אבל כעת עץ אינו יכול להכיל ‪0‬‬
‫‪Pn−1‬‬ ‫עלים‪.‬‬
‫נבצע החלפת משתנה‪ ,j = i − 1 :‬אז נקבל‪Dn+1 = j=0 Dj+1 Dn−j :‬‬
‫מכאן שמתקיים ‪ .Dn = Bn−1 = Cn−1‬כלומר‪ ,‬מספר העצים הבינאריים המלאים בעלי‬
‫‪ n + 1‬עלים הוא בדיוק מספר קטלן ה־‪.n‬‬

‫‪57‬‬
‫שילושים של מצולע קמור‬ ‫‪14.4‬‬
‫בהינתן מצולע קמור‪ ,‬שילוש שלו הוא אוסף של אלכסונים שמועברים בתוכו ומחלקות אותו‬
‫למשולשים‪.‬‬

‫נתון מצולע קמור בן ‪ n‬צלעות‪ .‬כמה חלוקות אפשריות שלו למשולשים יש?‬
‫נמספר את קודקוד המצולע ב־‪ 1, 2, 3, . . . , n‬לפי סדר הופעתם על המצולע‪ .‬נתבונן על‬
‫הצלע שמחברת את הקודקודים ‪ :n, 1‬אנחנו יודעים שבכל חלוקה של המצולע למשולשים‪,‬‬
‫הצלע הזו היא חלק ממשולש‪ .‬כל אחד מ־‪ n − 2‬הקודקודים האחרים של המצולע יכול‬
‫לשמש בתור הקודקוד השלישי של המשולש‪ .‬אם בחרנו את הקודקוד ‪ i‬ואנו מוחקים את‬
‫המשולש מהמצולע‪ ,‬מתקבלים שני מצולעים קמורים חדשים‪ :‬המצולע שמורכב מהקודקודים‬
‫‪ 1, 2, . . . , i‬והצלע )‪ ,(1, i‬והמצולע שמורכב מהקודקודים ‪ i, i+1, . . . , n‬והצלע )‪ .(i, n‬אפשר‬
‫כעת לטפל רקורסיבית בכל אחד מהמקרים‪ ,‬אולם נשים לב לכך שאם ‪ i = 2‬או ‪,i = n − 1‬‬
‫אחד משני המצולעים החדשים שנקבל הוא ”מנוון“; הוא כולל רק שני קודקודים‪ .‬בסיטואציה‬
‫כזו‪ ,‬של מצולע בעל ‪ 2‬קודוקדים‪ ,‬אנו מגדירים את מספר השילושים שלו להיות ‪“) 1‬השילוש‬
‫הריק“(‪.‬‬
‫אם נסמן ב־ ‪ Tn‬את מספר השילושים של מצולע קמור בעל ‪ n‬צלעות‪ ,‬אז הדיון לעיל‬
‫מראה כי מתקיימת נוסחת הנסיגה‬
‫‪Pn−1 T2 = 1‬‬
‫‪Tn = i=2 Ti Tn+1−i‬‬
‫כאשר ‪ i‬רץ על הבחירות האפשריות לקודקוד השלישי שאליו מחברים את ‪ ,1, n‬מה‬
‫שמוביל לשילוש של מצולע בעל ‪ i‬קודקודים )‪ (1, 2, . . . i‬ומצולע בעל ‪ n + 1 − i‬קודקודים‬
‫)‪.(i, i + 1, . . . , n‬‬
‫קל לראות כעת באינדוקציה כי ‪ ,Cn = Tn+2‬שכן‬
‫בסיס‪C0 = 1 = T2 :‬‬
‫צעד‪ :‬נניח ‪ Ck = Tk+2‬לכל ‪ k ≤ n‬ונוכיח עבור ‪:n + 1‬‬

‫‪n‬‬
‫‪X‬‬ ‫‪n‬‬
‫‪X‬‬
‫= ‪Cn+1‬‬ ‫= ‪Ck Cn−k‬‬ ‫= ‪Tk+2 T(n−k)+2‬‬
‫‪k=0‬‬ ‫‪k=0‬‬
‫‪n+2‬‬
‫‪X‬‬ ‫‪n+2‬‬
‫‪X‬‬
‫=‬ ‫= ‪Ti T(n−i+2)+2‬‬ ‫‪Ti T(n+3)+1−i‬‬
‫‪i=2‬‬ ‫‪i=2‬‬
‫‪= Tn+3‬‬

‫כמבוקש‪.‬‬

‫‪58‬‬
‫ספירת מסלולים בגרף‬ ‫‪15‬‬
‫מבוא‬ ‫‪15.1‬‬
‫בעיות ספירה רבות ניתנות לרדוקציה אל הבעיה של ספירת מסלולים בגרף‪ .‬נציג כאן דוגמא‬
‫‪n‬‬
‫ספציפית אחת‪ .‬נניח שאנו מעוניינים לדעת מה מספרן של המילים }‪ w ∈ {1, 2, 3‬שהרצף‬
‫‪ 11‬והרצף ‪ 23‬לא מופיע בהן‪ .‬פתרון הבעיה בעזרת כלים אלמנטריים או בעזרת עקרון ההכלה‬
‫וההפרדה לא נראה מבטיח; נוסחת נסיגה נראית מתבקשת יותר‪ .‬מה שנציג כאן הוא דרך‬
‫שיטתית למצוא נוסחת נסיגה שכזו‪.‬‬
‫נבנה גרף שצמתיו מסומנים ב־‪ 1, 2, 3‬כך שיש קשת מ־‪ i‬אל ‪ j‬אם לרצף ‪ ij‬מותר להופיע‬
‫במחרוזת‪:‬‬

‫מסלול מאורך ‪ n − 1‬בגרף מתאר מילה חוקית מאורך ‪ .n‬נשים לב לכך שמסלול כזה יכול‬
‫להתחיל בכל אחד מהצמתים‪ ,‬ולכן עלינו לפתור את השאלה‪ :‬בהינתן צומת ‪ vi‬בגרף‪ ,‬כמה‬
‫מסלולים מאורך ‪ n‬שמתחילים מ־ ‪ vi‬קיימים? לצורך כך‪ ,‬נזכיר מושג שראינו קודם‪:‬‬

‫הגדרה ‪ 15.1‬בהינתן גרף לא מכוון ‪ G‬ללא חוגים עצמיים על צמתים } ‪V = {v1 , v2 , . . . , vm‬‬
‫מטריצת השכנויות ‪ A ∈ Rm×m‬של הגרף מוגדרת כך ש־ ‪ [A]ij‬הוא מספר הקשתות בין ‪vi‬‬
‫ו־ ‪ vj‬ב־‪.G‬‬
‫עבור הגרף שבאיור‪ ,‬מטריצת השכנויות היא‬

‫‪‬‬ ‫‪‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪A = 1‬‬ ‫‪1‬‬ ‫‪0 ‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫אפשר לחשוב על המטריצה הזו כמייצגת את מספר המסלולים מאורך ‪ 1‬בין צמתי הגרף‪:‬‬
‫מסלול מאורך ‪ 1‬כולל קשת בודדת‪ ,‬ולכן מספר הקשתות בין ‪ vi‬ו־ ‪ vj‬שווה למספר המסלולים‬
‫ביניהם‪.‬‬

‫‪59‬‬
‫אם נכפול את ‪ A‬בעצמה )נזכיר בהמשך את ההגדרה הפורמלית של כפל מטריצות( נקבל‬

‫‪‬‬ ‫‪‬‬
‫‪2‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪A2 =  1‬‬ ‫‪2‬‬ ‫‪1 ‬‬
‫‪2‬‬ ‫‪3‬‬ ‫‪2‬‬

‫נתבונן על ה־‪ 3‬בכניסה ה־)‪ (3, 2‬של המטריצה; הוא סופר את שלושת המסלולים‬
‫האפשריים מאורך ‪ 2‬מ־ ‪ v3‬אל ‪:v2‬‬
‫‪v3 → v3 → v2‬‬
‫‪v3 → v2 → v2‬‬
‫‪v3 → v1 → v2‬‬
‫באופן דומה‪ ,‬כל כניסה במטריצה סופרת את המסלולים מאורך ‪ .2‬הרעיון כעת ברור‪:‬‬
‫‪ [An ]ij‬סופר את המסלולים מאורך ‪ n‬מ־ ‪ vi‬אל ‪ .vj‬נותר רק להוכיח זאת‪.‬‬

‫הוכחת הטענה הכללית‬ ‫‪15.2‬‬


‫ניגש להוכחת המשפט המרכזי שלנו‪:‬‬

‫משפט ‪ 15.2‬אם )‪ G = (V, E‬הוא גרף )מכוון או לא מכוון( עם קבוצת צמתים = ‪V‬‬
‫} ‪ {v1 , . . . , vm‬ו־‪ A‬מטריצת השכנויות של הגרף‪ ,‬אז ‪ [An ]i,j‬הוא מספר המסלולים מאורך‬
‫‪ n‬מ־ ‪ vi‬אל ‪ vj‬בגרף‪.‬‬
‫מכיוון שהמשפט והוכחתו מתבססים על חזקות של מטריצות‪ ,‬נזכיר את ההגדרה‪:‬‬

‫הגדרה ‪ 15.3‬אם ‪ A‬מטריצה מסדר ‪ n × t‬ו־‪ B‬מטריצה מסדר ‪ t × m‬אז ‪ AB‬היא מטריצה‬
‫מסדר ‪ n × m‬המוגדרת על ידי‬
‫‪t‬‬
‫‪X‬‬
‫= ‪[AB]ij‬‬ ‫‪[A]it [B]tj‬‬
‫‪k=1‬‬

‫רקורסיבי באמצעות כפל‪ A0 = I :‬ו־= ‪An+1‬‬


‫(‬ ‫אנו מגדירים חזקות של מטריצות באופן‬
‫‪1 i=j‬‬
‫= ‪.[I]ij = δij‬‬ ‫‪ ,An · A‬כאשר ‪ I‬היא מטריצת היחידה‪:‬‬
‫‪0 i 6= j‬‬

‫ההגדרה של כפל מטריצות אינה קלה לעיכול‪ ,‬אולם דווקא התוצאה שנוכיח כעת היא אחת‬
‫מהדרכים לקבל אינטואיציה עבורה‪ .‬לכן נעבור כעת להוכחת המשפט‪ .‬הוכחה‪ :‬ההוכחה‬
‫תהיה באינדוקציה על ‪.n‬‬
‫בסיס‪ :‬עבור ‪ ,n = 0‬מכיוון שקיים מסלול יחיד מאורך ‪ 1‬מצומת ‪ vi‬לעצמו )המסלול ‪vi‬‬
‫שכולל צומת יחיד ואפס קשתות( וקיימים ‪ 0‬מסלולים מ־ ‪ vi‬אל ‪ vj‬עבור ‪ ,i 6= j‬נקבל על פי‬
‫הגדרה ש־‪ A0 = I‬אכן מתארת את מספר המסלולים המבוקש‪.‬‬
‫נניח את נכונות הטענה עבור ‪ n‬ונוכיח עבור ‪ .n + 1‬יהיו ‪ 1 ≤ i, j ≤ m‬כלשהם‪ :‬נוכיח‬
‫‬
‫ש־ ‪ An+1 ij‬הוא מספר המסלולים מאורך ‪ n + 1‬מ־ ‪ vi‬אל ‪.vj‬‬
‫‪ vi‬שהוא מאורך לפחות ‪ ,1‬ניתן לסמן ב־ ‪ vk‬את הצומת הלפני‬ ‫בהינתן מסלול ‪vj‬‬
‫‪ vi‬הוא מאורך‬ ‫‪ vi‬כך שהמסלול ‪vk‬‬ ‫אחרון במסלול ולקבל את המסלול ‪vk → vj‬‬
‫‪ .n‬על פי הנחת האינדוקציה‪ ,‬מספר המסלולים מ־ ‪ vi‬אל ‪ vk‬הוא ‪ ,[An ]ik‬ועל פי הגדרת ‪A‬‬

‫‪60‬‬
‫‪ vi‬מתקבל על‬ ‫מספר הקשתות מ־ ‪ vk‬אל ‪ vj‬הוא ‪ .[A]kj‬כל מסלול מהצורה ‪vk → vj‬‬
‫‪ vi‬וקשת ‪ vk → vj‬ולכן מעיקרון הכפל מספר‬ ‫ידי בחירה בלתי תלויה של מסלול ‪vk‬‬
‫‪ vi‬הוא ‪.[An ]ik [A]kj‬‬ ‫המסלולים הכולל מהצורה ‪vk → vj‬‬
‫‪ vi‬מאורך ‪ n + 1‬הוא סכום‬ ‫כעת‪ ,‬על פי עיקרון החיבור‪ ,‬מספר המסלולים הכולל ‪vj‬‬
‫‪ vi‬לכל הערכים האפשריים של ‪.1 ≤ k ≤ m‬‬ ‫על מספר המסלולים מהצורה ‪vk → vj‬‬
‫כלומר מספר זה הוא‬

‫‪m‬‬
‫‪X‬‬
‫‪[An ]ik [A]kj = An+1 ij‬‬
‫‬ ‫‬

‫‪k=1‬‬

‫על פי הגדרת כפל מטריצות‪ ,‬מה שמסיים את ההוכחה‪.‬‬


‫‪Pt‬‬
‫= ‪ [AB]ij‬שמגדיר כפל‬ ‫אם כן‪ ,‬כאשר אנו מתבוננים על הביטוי ‪k=1 [A]it [B]tj‬‬
‫‪Pt‬‬
‫הוא עיקרון‬ ‫מטריצות אנו רואים כי ניתן לתת לו משמעות קומבינטורית‪ :‬הסכום ‪k=1‬‬
‫החיבור בפעולה‪ ,‬והמכפלה ‪ [A]it [B]tj‬היא עיקרון הכפל בפעולה‪.‬‬

‫שימוש‪ :‬פונקציות יוצרות ונוסחאות נסיגה‬ ‫‪15.3‬‬


‫בפני עצמה‪ ,‬התוצאה שראינו עד כה לא מקדמת אותנו יותר מדי ־ כפל מטריצות הוא פעולה‬
‫יקרה יחסית ואנו מעוניינים בייצוג טוב יותר לסדרת המספרים שאנחנו מחפשים מאשר‬
‫הייצוג המובלע ב־‪ .A‬למרבה המזל‪ ,‬קיימת טכניקה כללית שבהינתן ‪ A‬מוצאת את הפונקציה‬
‫היוצרת )‪ fij (x‬של מספר המסלולים מ־ ‪ vi‬אל ‪ vj‬מכל אורך ‪.n‬‬
‫נסתמך ללא הוכחה על משפט מאלגברה לינארית‪:‬‬
‫‪i+j det Bji‬‬
‫)‪ B −1 ij = (−1‬כאשר ‪ Bji‬היא‬
‫‬ ‫‬
‫משפט ‪ 15.4‬אם ‪ B‬היא מטריצה הפיכה‪ ,‬אז ‪det B‬‬
‫המטריצה המתקבלת מ־‪ B‬על ידי מחיקת השורה ה־‪ j‬והעמודה ה־‪.i‬‬

‫נעבור כעת למשפט שברצוננו להוכיח‪ .‬ראשית‪ ,‬נציג את האינטואיציה המובילה אליו‪ .‬במקום‬
‫להסתכל על המטריצה ‪ A‬נתבונן על המטריצה ‪ ,xA‬שבה כל הכניסות של ‪ A‬מוכפלות ב־‪.x‬‬
‫‪n‬‬
‫נקבל ש־ ‪ [(xA) ]ij = [An ]ij xn‬הוא מספר המסלולים מאורך ‪ n‬מ־ ‪ vi‬אל ‪ vj‬כשמספר זה‬
‫מוכפל ב־ ‪ .xn‬כלומר‪,‬‬
‫‪ P‬מתקיים‬
‫∞‬ ‫‪n‬‬
‫‪fij (x) = n=0 [(xA) ]ij‬‬
‫נתבונן במטריצה ‪ F‬המוגדרת על ידי )‪ ,[F ]ij = fij (x‬אז מתקיים‬
‫∞‪P‬‬ ‫‪n‬‬
‫‪P∞ n‬‬ ‫)‪F = n=0 (xA‬‬
‫‪1‬‬
‫‪” . n=0 x = 1−x‬קפיצת‬ ‫כזכור‪ ,‬ראינו כבר כי ניתן להוכיח את השוויון הפורמלי‬
‫האמונה“ שעלינו לבצע כאן נובעת מכך שנעשה כעת את אותו הדבר עבור מטריצה‪ .‬דהיינו‬

‫∞‬
‫‪−1‬‬
‫‪X‬‬ ‫‪n‬‬
‫)‪(xA) = (I − xA‬‬
‫‪n=0‬‬

‫∞‪P‬‬ ‫‪n‬‬
‫ההוכחה זהה לחלוטין לזו שכבר ראינו‪ :‬נכפול את )‪ n=0 (xA‬ב־)‪ ,(I − xA‬ונקבל‬
‫טור טלסקופי אינסופי שבו כל האיברים מתבטלים מלבד ה־‪ I‬בהתחלה‪.‬‬
‫‪−1‬‬
‫מכאן נסיק שמתקיים )‪ ,F = (I − xA‬ומהמשפט מאלגברה לינארית שציטטנו קודם‪,‬‬
‫נקבל את התוצאה‪:‬‬

‫‪61‬‬
‫‪h‬‬ ‫‪i‬‬
‫‪−1‬‬
‫)‪fij (x) = [F ]ij = (I − xA‬‬
‫‪ij‬‬

‫‪i+j‬‬ ‫‪det (I − xA)ji‬‬


‫)‪= (−1‬‬
‫)‪det (I − xA‬‬

‫כאשר‪ ,‬כזכור‪ (I − xA)ji ,‬הוא המטריצה ‪ I − xA‬לאחר שנמחקו ממנה השורה ה־‪j‬‬
‫והעמודה ה־‪.i‬‬
‫קיבלנו שהפונקציה היוצרת של מספר המסלולים מ־ ‪ vi‬אל ‪ vj‬היא פונקציה רציונלית‬
‫במשתנה ‪ .x‬יותר מכך‪ :‬המכנה )‪ det (I − xA‬אינו תלוי ב־ ‪ vi , vj‬והוא זהה לכל זוג צמתים‬
‫בגרף‪ .‬כזכור‪ ,‬המכנה של פונקציה יוצרת רציונלית מגדיר נוסחת נסיגה עבור סדרת המספרים‬
‫שהיא מייצגת; המונה קובע את תנאי ההתחלה‪.‬‬
‫‪i+j det(I−xA)ji‬‬
‫)‪ (−1‬ומציאת נוסחאות הנסיגה ממנו אינו קל‬ ‫חישוב בפועל של הביטוי )‪det(I−xA‬‬
‫לביצוע ידנית‪ ,‬אך למרבה המזל ניתן לביצוע בקלות באמצעות מחשב וספריית מתמטיקה‬
‫התומכת בחישוב סימבולי; זה הופך את פתרון הבעיה הקומבינטורית כולה לבעיה של מציאת‬
‫הפונקציה ‪ A‬שמתארת את הבעיה‪.‬‬

‫חזרה אל הדוגמא‬ ‫‪15.4‬‬


‫בדוגמא הקונקרטית שלנו המטריצה הרלוונטית הייתה‬
‫‪‬‬ ‫‪‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪A= 1‬‬ ‫‪1‬‬ ‫‪0 ‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ואנו מתעניינים במספר המסלולים הכולל‪ ,‬מכל צומת לכל צומת‪.‬‬


‫ראשית נחשב את ‪:I − xA‬‬
‫‪‬‬ ‫‪‬‬
‫‪1‬‬ ‫‪−x‬‬ ‫‪−x‬‬
‫‪I − xA =  −x 1 − x‬‬ ‫‪0 ‬‬
‫‪−x −x 1 − x‬‬
‫ ‬ ‫ ‬ ‫ ‬ ‫ ‬
‫ ‪ −x 1 − x‬‬ ‫‪ 1‬‬ ‫‪−x‬‬ ‫ ‬
‫ ‪det (I − xA) = −x‬‬
‫ ‬ ‫ ‬ ‫ )‪+ (1 − x‬‬ ‫ ‬
‫ ‪−x −x‬‬ ‫‪−x 1 − x‬‬ ‫ ‬
‫‪= −x x2 + x − x2 + (1 − x) 1 − x − x2‬‬
‫‬ ‫‬

‫‪= −x2 + 1 − x − x2 − x − x2 − x3‬‬


‫‬ ‫‬

‫‪= 1 − 2x − x2 + x3‬‬

‫חישוב הדטרמיננטה של ‪ 9‬המינורים של המטריצה הוא מהיר יחסית כי אלו דטרמיננטות‬


‫של מטריצות ‪ .2 × 2‬מקבלים‪:‬‬

‫‪2‬‬
‫‪‬‬ ‫‪‬‬
‫‪1‬‬ ‫)‪(1 − x‬‬ ‫‪x‬‬ ‫)‪x (1 − x‬‬
‫‪−1‬‬
‫)‪(I − xA‬‬ ‫=‬ ‫‪‬‬ ‫)‪x (1 − x‬‬ ‫‪1 − x − x2‬‬ ‫‪x2‬‬ ‫‪‬‬
‫‪1 − 2x − x2 + x3‬‬ ‫‪2‬‬
‫‪x‬‬ ‫)‪x (1 + x‬‬ ‫‪1−x−x‬‬

‫‪62‬‬
‫‪P‬‬
‫הפונקציה היוצרת המבוקשת שלנו היא )‪ , ij f (x‬כלומר המכנה שלה הוא ‪1 − 2x −‬‬
‫‪ x2 + x3‬והמונה שלה הוא סכום כל אברי המטריצה; חישוב מראה שהסכום הזה הוא‬
‫‪ ,3 + x − x2‬כך שקיבלנו את הפונקציה היוצרת‬

‫‪3 + x − x2‬‬
‫= )‪f (x‬‬
‫‪1 − 2x − x2 + x3‬‬

‫)כל החישוב הנ“ל ניתן לביצוע באמצעות מחשב(‪.‬‬


‫עבור נוסחת הנסיגה‪ ,‬חישוב המונה אינו באמת הכרחי; די במכנה כדי לקבל את נוסחת‬
‫הנסיגה ‪ an = 2an−1 + an−2 − an−3‬ולחשב באופן מפורש שלושה תנאי התחלה על ידי‬
‫ספירת כל האפשרויות‪:‬‬
‫• ‪) a0 = 1‬המחרוזת הריקה(‬
‫• ‪) a1 = 3‬המחרוזות ‪(1, 2, 3‬‬

‫• ‪) a2 = 7‬כל המחרוזות מאורך ‪ 9‬למעט ‪.(11, 23‬‬


‫הטכניקה שראינו ל“חילוץ“ האיברים הראשונים בסדרה מתוך המונה והמכנה ניתנת למימוש‬
‫באמצעות מחשב‪ ,‬ותניב בצורה אוטומטית את אותם תנאי התחלה‪ ,‬כאשר לוקחים בחשבון‬
‫שמלכתחילה עסקנו בבעיה עם היסט של ‪ :1‬בנינו גרף כך ש־ ‪ an‬שווה למספר המסלולים‬
‫מאורך ‪ n − 1‬בו‪ ,‬ולכן הפונקציה היוצרת מתאימה לסדרה ‪.3, 7, 16 . . .‬‬

‫‪63‬‬

You might also like