נוסחת ההיפוך של מביוס

נוסחת ההיפוך הקלאסית

נתחיל מדוגמה. ככה יהיה הרבה יותר קל להבין מה אני רוצה. בפוסט הקודם הזכרתי את פונקציית אוילר \(\varphi\left(n\right)\) שלכל מספר טבעי מחזירה את מספר המספרים הקטנים ממנו שזרים לו. בנוסף לכל מעלותיה, היא מקיימת את התכונה היפה הבאה: \(\sum_{d|n}\varphi\left(d\right)=n\). כלומר, כל מספר טבעי שווה לסכום הערכים של פונקציית אוילר כל כל מחלקיו.

לנוסחה הזו יש הוכחה קומבינטורית פשוטה שלחלוטין לא רלוונטית לפוסט אז העצלנים יכולים לדלג עליה – נספור את כל המספרים מ-1 עד \(n\) (בדיוק \(n\)) בדרך קצת שונה – לכל מספר \(1\le k\le n\), נסמן ב-\(N_{k}\) את מספרם של המספרים בין 1 ו-\(n\) שהמחלק המשותף המקסימלי שלהם ושל \(n\) הוא בדיוק \(k\), כלומר \(N_{k}=\left|\left\{ 1\le a\le n|\gcd\left(a,n\right)=k\right\} \right|\). בבירור אם \(k\) לא מחלק את \(n\) אז \(N_{k}=0\); מהו \(N_{k}\) אם \(k|n\)? ובכן, זהו מספרם של המספרים מהצורה \(k,2k,3k,\dots,n\) שאין להם מחלק משותף גדול מ-\(k\) עם \(n\), כלומר מספרים מהצורה \(tk\) כך ש-\(t\) זר ל-\(\frac{n}{k}\) (תעצרו, תנשמו עמוק ותסבירו את זה לעצמכם – אם אתם לא מצליחים, לא נורא כי זה לא קשור ממש לפוסט). נסמן \(d=\frac{n}{k}\) ונקבל ש-\(N_{k}=\varphi\left(d\right)\), ומכאן נובעת הנוסחה.

יופי, בשביל מה זה היה טוב? ובכן, זו דוגמה לסיטואציה שבה יש לנו פונקציה מסובכת \(f\) שסכום שלה על פני המחלקים של \(n\) יוצא משהו פשוט יותר. פורמלית, זה אומר שקיימת פונקציה \(g\left(n\right)\) כך ש-\(g\left(n\right)=\sum_{d|n}f\left(d\right)\). היינו רוצים איכשהו "לחלץ" את \(f\) מתוך הנוסחה הזו ולכתוב אותה כפונקציה כלשהי של \(g\) הפשוטה יותר. נוסחת ההיפוך של מביוס נותנת לנו בדיוק את זה.

אפשר עכשיו פשוט להציג את הנוסחה, אבל חבל – אני רוצה לנצל את ההזדמנות כדי להכיר לכם מושג חדש, שממנו אפשר יהיה להגיע לנוסחה באופן טבעי יותר – קונבולוציית דיריכלה. קונבולוציה "רגילה" של שתי פונקציות \(f,g\) שמוגדרות על הטבעיים היא פונקציה חדשה \(h\) שמוגדרת כך: \(h\left(n\right)=\sum_{k=0}^{n}f\left(k\right)g\left(n-k\right)\). דוגמה קלאסית לסיטואציה מתמטית שבה קונבולוצייה רגילה צצה מאליה היא כפל של פולינומים: אם \(p\left(x\right)=\sum a_{i}x^{i}\) ו-\(q\left(x\right)=\sum b_{j}x^{j}\) אז כל מקדם של המכפלה שלהם הוא קונבולוציה: המקדם של \(x^{n}\) ב-\(p\left(x\right)q\left(x\right)\) הוא \(\sum_{k=0}^{n}a_{k}b_{n-k}\). שימו לב, שניתן לכתוב קונבולוציה גם עם חיבור ולא חיסור: \(h\left(n\right)=\sum_{k+r=n}f\left(k\right)g\left(r\right)\).

קונבולוציית דיריכלה היא דומה באופיה, רק שבמקום חיבור/חיסור משתמשים בכפל/חילוק, דהיינו אם \(h\left(n\right)\) היא קונבולוציית דיריכלה של \(f\left(n\right),g\left(n\right)\) אז

\(h\left(n\right)=\sum_{d\cdot e=n}f\left(d\right)g\left(e\right)=\sum_{d|n}f\left(d\right)g\left(\frac{n}{d}\right)\)

זה כבר טיפה מזכיר את מה שהלך למעלה.

בואו נסמן \(h=f*g\) כדי לומר ש-\(h\) היא קונבולוציית דיריכלה של \(f,g\). אז האלגבראיסט הפנימי שבנו מתלהב מכך שמצאנו פעולה חשבונית חדשה ודוחק בנו לחקור את התכונות שלה. למשל, \(\left(f*g\right)*h=f*\left(g*h\right)\) עבור שלוש פונקציות \(f,g,h\) כלשהן (שמוגדרות על טבעיים; זה תמיד ההקשר של הדיון), כך שקונבלוציית דיריכלה היא אסוציאטיבית. זה מגביר את ההתלהבות של האלגבראיסט הפנימי לשמיים כי הוא מקווה שיש לנו כאן חבורה, כלומר מבנה אלגברי שהפעולה שלו היא אסוציאטיבית, עם איבר יחידה, ועם הופכי לכל איבר. ובכן, איבר יחידה בהחלט יש: נסמן ב-\(\epsilon\) את הפונקציה שמקיימת \(\epsilon\left(1\right)=1\) ו-\(\epsilon\left(n\right)=0\) לכל \(n>1\), אז קל מאוד לראות מההגדרה ש-\(\epsilon*f=f*\epsilon=f\).

וכעת, מה עם הופכי? ובכן, נניח שעבור \(f\) קיימת \(g\) כך ש-\(f*g=\epsilon\), זה אומר ש-\(\sum_{d|1}f\left(d\right)g\left(\frac{n}{d}\right)=1\), כלומר \(f\left(1\right)g\left(1\right)=1\); אבל אם \(f\left(1\right)=0\) אז אבוד לנו – המשוואה הזו לעולם לא תתקיים. לכן תנאי הכרחי לכך ש-\(f\) יהיה הפיך הוא ש-\(f\left(1\right)\ne0\). מסתבר שזה גם תנאי מספיק, אבל נעזוב את החיפוש אחר הופכי במקרה הכללי כרגע ובמקום זאת נתמקד בהופכי של פונקציה פשוטה במיוחד: הפונקציה שמחזירה 1 לכל קלט, שאסמן פשוט כ-\(\mathbb{I}\). את ההופכי שלה, שתכף נוכיח את קיומו, נסמן ב-\(\mu\) מסיבות היסטורית. אם כן, \(\mathbb{I}*\mu=\epsilon\). בואו נראה מה נובע מכך.

זכרו שהתחלנו את כל הסיפור מהמשוואה \(g\left(n\right)=\sum_{d|n}f\left(d\right)\). עם הטרמינולוגיה החדשה שלנו ניתן לנסח זאת בתור \(g=f*\mathbb{I}\). כעת נכפול את שני האגפים ב-\(\mu\), נשתמש באסוציאטיביות, ונקבל:

\(g*\mu=f*\left(\mathbb{I}*\mu\right)=f*\epsilon=f\)

במילים אחרות, \(g=f*\mathbb{I}\) אם ורק אם \(f=g*\mu\), ובניסוח המקורי שלנו \(g\left(n\right)=\sum_{d|n}f\left(d\right)\) אם ורק אם \(f\left(n\right)=\sum_{d|n}g\left(d\right)\mu\left(\frac{n}{d}\right)\). זוהי נוסחת ההיפוך של מביוס, והפונקציה \(\mu\) נקראת, בהתאם, פונקצית מביוס. בואו נבין איך היא נראית.

ראשית, \(\mu\left(1\right)=1\) בבירור על פי ההגדרה, כי צריך שיתקיים \(\mu\left(1\right)\mathbb{I}\left(1\right)=1\). שנית, לכל \(n>1\) צריך שיתקיים \(0=\epsilon\left(n\right)=\sum_{d|n}\mu\left(d\right)\mathbb{I}\left(\frac{n}{d}\right)=\sum_{d|n}\mu\left(d\right)\). כלומר, אם לסכם באופן קומפקטי, פונקציית מביוס חייבת לקיים \(\sum_{d|n}\mu\left(d\right)=\delta_{1n}\). מכאן אפשר להסיק בשלבים איך \(\mu\) נראית על כל מספר טבעי. נתחיל מהמספרים הקלים ביותר לטיפול בהקשר הזה (כמו שקורה לעתים קרובות ביותר בתורת המספרים) – ראשוניים, אם \(d|p\) עבור \(p\) ראשוני, אז \(d=1\) או \(d=p\), ולכן הנוסחה שלעיל מתורגמת עבורנו ל-\(0=\mu\left(1\right)+\mu\left(p\right)\), כלומר \(\mu\left(p\right)=-1\) לכל ראשוני. אפשר להמשיך ולטפל בצורה דומה במכפלות של ראשוניים, אבל אני לא מכיר דרך אלגנטית במיוחד להציג את הניתוח הזה ולכן אקפוץ למסקנה הסופית: \(\mu\) היא כפלית על מספרים זרים. מה זה אומר? שאם \(a,b\) הם שני מספרים ללא מחלק משותף גדול מ-1, אז \(\mu\left(ab\right)=\mu\left(a\right)\mu\left(b\right)\) (באופן הולם למדי, גם \(\varphi\) של אוילר היא כזו). ומה אם \(a,b\) לא זרים? גם אז המצב פשוט: \(\mu\left(ab\right)=0\).

כעת אפשר להסיק נוסחה עבור \(\mu\). נניח ש-\(n=p_{1}p_{2}\cdots p_{k}\) כאשר כל הראשוניים הללו שונים זה מזה, אז \(\mu\left(n\right)=\prod_{i=1}^{k}\mu\left(p_{k}\right)=\left(-1\right)^{k}\); ואילו אם \(n\) מכיל את אותו ראשוני פעמיים בפירוק שלו, \(\mu\left(n\right)=0\).

לא קשה לראות שאכן \(\sum_{d|n}\mu\left(d\right)=0\) בהגדרה זו לכל \(n>0\); אם \(n=p_{1}^{t_{1}}\cdots p_{k}^{t_{k}}\) הרי שהסכום יהיה רק על מחלקים \(d\) מהצורה \(p_{1}^{e_{1}}\cdots p_{k}^{e_{k}}\) עם \(e_{i}\in\left\{ 0,1\right\} \) (כי היתר יתאפסו), ועבור כל מכפלה כזו, \(\mu\left(p_{1}^{e_{1}}\cdots p_{k}^{e_{k}}\right)\) שווה למינוס 1 בחזקת מספר ה-\(e_{i}\)-ים שהם 1, ולכן \(\sum_{d|n}\mu\left(d\right)=\sum_{i=0}^{k}{k \choose i}\left(-1\right)^{i}=\left(1-1\right)^{k}=0\) (המעבר האחרון הוא הבינום של ניוטון). כלומר, \(\mu\) שנתתי אכן מקיימת את מה שנדרש ממנה, וזה מבטיח שהיא אכן תהיה ההופכית של \(\mathbb{I}\) ושנוסחת ההיפוך של מביוס תתקיים.

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

\(g\left(A\right)=\sum_{B\supseteq A}f\left(B\right)\)

ואת הנוסחה הזו "הפכנו" לקבלת

\(f\left(A\right)=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}g\left(B\right)\)

הדמיון כאן לנוסחת ההיפוך של מביוס אדיר. במקום \(d|n\) יש לנו \(B\supseteq A\) כש-\(B\) על תקן \(d\) ו-\(A\) על תקן \(n\), ובמקום \(\mu\left(d\right)\) יש לנו \(\left(-1\right)^{\left|B-A\right|}\), אבל זה כל ההבדל. המבנה הרעיוני זהה. יתר על כן, הדמיון בין חלוקה והכלה של קבוצות הוא משהו שכבר ראינו בבלוג פעם, בהקשר של תורת המספרים האלגברית; אם נגדיר את \(A\) כקבוצת "כל המספרים המתחלקים על ידי \(n\)" ואת \(B\) כקבוצת "כל המספרים המתחלקים על ידי \(d\)" אז \(B\supseteq A\) שקול לאמירה \(d|n\) (אבל אז לא ברור מהו \(\left|B-A\right|\) שיהיה אינסופי). הדמיון הרב מאוד בין שני המקרים לא נגמר בהם; הוא נובע מכך ששניהם מקרים פרטיים של נוסחת היפוך כללית ביותר, שתקפה לכל מבנה מתמטי שמכליל את התכונות של "הכלה" או של "חלוקה" שרלוונטיות לעניינו – ולמבנה כזה קוראים קבוצה סדורה חלקית (קס"ח).

קס"חים

קבוצות סדורות חלקית הן מהמבנים הבסיסיים ביותר במתמטיקה, והצורה הפשוטה ביותר שבה אנו מתארים את הרעיון של סדר. בואו ניתן את ההגדרות האבסטרקטיות התורת-קבוצתיות: קבוצה \(X\) הוא סדורה חלקית עם יחס שמסומן ב-\(\le\) (יחס כאן הוא אוסף של זוגות \(\left(a,b\right)\) כך ש-\(a\in X\) וגם \(b\in X\); אנחנו מסמנים \(a\le b\)) אם \(\le\)מקיים את שלוש התכונות הבאות:

  1. (רפלקסיביות) \(a\le a\) לכל \(a\in X\)
  2. (אנטי-סימטריה) \(a\le b\) וגם \(b\le a\) גורר \(a=b\)
  3. (טרנזיטיביות) \(a\le b\) וגם \(b\le c\) גורר \(a\le c\)

צריך מייד להבהיר ש-\(\le\) הוא סימון של היחס. זה לא "גדול או שווה" במשמעות הרגילה שלו. מה שכן, היחס "גדול או שווה" הוא יחס סדר חלקי, אולי אחד מהפשוטים ביותר, ומכאן הסימון. אם כן, \(\mathbb{N}\) עם יחס הסדר "גדול או שווה מ-" היא דוגמה לקבוצה סדורה חלקית; אבל \(\mathbb{N}\) עם יחד הסדר "מחלק את", כלומר אם \(a|b\) מסמנים זאת \(a\le b\) היא דוגמה מעניינת הרבה יותר. ברור שזה אכן יחס סדר חלקי כי \(a|a\) לכל \(a\in\mathbb{N}\), וגם שתי התכונות האחרות נובעות די בקלות מההגדרות; אבל בניגוד ליחס הקטן-או-שווה הרגיל, עבור יחס החלוקה יש לנו איברים שאינם ניתנים להשוואה. למשל, 2 ו-3 לא מחלקים זה את זה ולכן לא מתקיים לא \(2\le3\) וגם לא \(3\le2\) עבור יחס סדר זה. קבוצה סדורה חלקית שבה כל שני איברים כן ניתנים להשוואה נקראת קבוצה סדורה מלאה, או סדורה לינארית.

שימו לב שקס"ח היא זוג – צריך לציין גם את \(X\) וגם את \(\le\), כי על אותו \(X\) אפשר להגדיר הרבה יחסי סדר שונים. למרות זאת רוב הזמן אני אכתוב כאן "קס"ח \(X\)" ותו לא, מתוך הנחה שמה שאני אומר תקף לכל יחס סדר חלקי שנצמיד ל-\(X\) (לפעמים עם דרישות נוספות שאציין).

אם יש לנו קבוצה \(X\) כלשהי, אז אפשר להגדיר על אוסף תת-הקבוצות שלה \(P\left(X\right)\) יחס סדר על ידי הכלה (כלומר, לכל \(A,B\subseteq X\) מגדירים \(A\le B\) אם \(A\subseteq B\)), וגם, באופן מעניין, על ידי הכלה הפוכה, כלומר \(A\le B\) אם \(B\supseteq A\) (אומרים שהקס"ח שסדורה על ידי הכלה הפוכה דואלית לזו שסדורה על ידי הכלה רגילה; אפשר להגדיר דואלי שבו יחס הסדר מתהפך לכל קס"ח). אם כן, המושג של יחס סדר חלקי תופס את ה"עולם" שבו מתקיימות שתי הנוסחאות שהצגתי למעלה, ועכשיו נותר רק לברר איך נראית הנוסחה הכללית ביותר. כדי לספק את הסקרנות שלכם אני אציג אותה כבר עכשיו, ואז נוכל לחשוב איך להציג אותה בצורה מעניינת, על ידי הבנה טובה יותר של קבוצות סדורות חלקית (המטרה שלנו תהיה להכליל במובן מסויים את גישת הקונבולוציה של נוסחת ההיפוך הקלאסית).

ובכן, נוסחת ההיפוך הכללית אומרת שאם \(\left(X,\le\right)\) היא קבוצה סדורה חלקית עם יחס הסדר \(\le\) אשר מקיימת תכונת סופיות מסויימת (כל אידאל סדר ראשי הוא סופי – זה יתבהר בהמשך) אז אם יש לנו שתי פונקציות \(f,g:X\to\mathbb{C}\) אשר מקיימות \(g\left(x\right)=\sum_{y\le x}f\left(y\right)\), אז מתקיים \(f\left(x\right)=\sum_{y\le x}g\left(y\right)\mu\left(y,x\right)\), כאשר \(\mu\) היא פונקצית מביוס של הקס"ח \(X\). איך בדיוק היא מוגדרת – גם את זה נבין בהמשך. לכל קס"ח יש את פונקצית המביוס שלו, וכבר ראינו שתיים: את זו של הקס"ח עם יחס החלוקה, שהייתה \(\mu\) הקלאסית; ואז זו של הקס"ח עם יחס ההכלה ההפוך של קבוצות, שקיימה \(\mu\left(B,A\right)=\left(-1\right)^{\left|B-A\right|}\).

מכיוון שאני רוצה להציג את נוסחת ההיפוך ופונקצית מביוס כנובעים מרעיון עמוק יותר, מעין הכללה של קונבולוציית דיריכלה, אני צריך לתת עוד כמה הגדרות שקשורות לקס"חים. ראשית, לכל שני איברים \(x,y\in X\) אפשר להגדיר את הקטע \(\left[x,y\right]=\left\{ z\in X|x\le z\le y\right\} \), כלומר כל האיברים שניתנים להשוואה עם \(x,y\) ונמצאים ביניהם, כולל הם עצמם. אם אין אף איבר בין \(x\) ל-\(y\), כלומר \(\left[x,y\right]=\left\{ x,y\right\} \), אומרים ש-\(y\) מכסה את \(x\). על \(X\) אומרים שהיא סופית מקומית אם כל קטע ב-\(X\) הוא סופי (כך למשל \(\mathbb{Z}\) עם יחס הסדר הרגיל היא סופית מקומית, אבל \(\mathbb{Q}\) עם אותו יחס סדר בדיוק איננה).

שרשרת היא פשוט קבוצה של איברים ב-\(X\) שכולם ניתנים להשוואה זה עם זה (תת-קבוצה סדורה מלאה של \(X\)), ושמה מגיע מכך שאפשר לכתוב את איבריה כ-\(x_{1}\le x_{2}\le\dots\le x_{n}\) (במקרה שבו השרשרת סופית, אבל ממילא רק זה יעניין אותנו כאן). אנטי-שרשרת היא בדיוק ההפך מכך – קבוצה של איברים ב-\(X\) שלא ניתן להשוות אף זוג מהם – למשל, אם ניקח את הטבעיים עם יחס החלוקה, אז כל קבוצה של ראשוניים היא אנטי-שרשרת.

אידאל סדר \(I\) הוא תת-קבוצה של \(X\) בעלת התכונה שאם \(x\in I\) ו-\(y\le x\) אז \(y\in X\) (מי שמכיר קצת אלגברה מופשטת ודאי רואה את הדמיון להגדרה ה"קלאסית" של אידאל). יש קשר בין אידאלי סדר ואנטי-שרשראות: אם ניקח את כל האיברים המקסימליים באידאל סדר \(I\) כלשהו (איברים \(x\in I\) כך שלא קיים \(y\in I\) כך ש-\(x\le y\)) אז נקבל אנטי-שרשרת, ומצד שני אם ניקח אנטי-שרשרת \(A\) ונגדיר \(I=\left\{ y\in X|\exists x\in A,y\le x\right\} \) נקבל אידאל סדר, ואם \(X\) סופית זה נותן לנו התאמה חח"ע ועל בין אנטי-שרשרות ואידאלי סדר. באופן כללי אם בהינתן \(A\) מגדירים ממנה \(I\) כפי שתיארתי כאן, אז אומרים ש-\(A\) יוצרת את האידאל \(I\); ואידאל \(I\) הוא אידאל סדר ראשי אם הוא נוצר בדיוק על ידי איבר אחד, כלומר קיים \(x\in A\) כך ש-\(I=\left\{ y\le x|y\in X\right\} \). במקרה הזה מסמנים לעתים \(I=\left\langle x\right\rangle \). שוב, למי שבקיא באלגברה מופשטת הדמיון לאידאלים "קלאסיים" מאוד ברור כאן.

קונבולוצייה והיפוך, הגרסה המוכללת

אוקיי, הגענו לאקשן. בואו ניקח קבוצה סדורה חלקית \(X\) שהיא סופית מקומית, ונגדיר פונקציות על קבוצת כל הקטעים ב-\(X\) (פונקציות ממשיות, אבל אפשר גם עבור שדות אחרים). במילים אחרות, פונקציות שנראות ככה: \(f\left(\left[x,y\right]\right)\). לצורך פשטות אפשר לחשוב עליהן כפונקציות בשני משתנים: \(f\left(x,y\right)\), אבל הכרחי שיתקיים \(x\le y\) אחרת אין משמעות ל-\(\left[x,y\right]\).

בין כל זוג פונקציות כזה אפשר להגדיר פעולת כפל שתכליל את קונבולוציית דיריכלה, אבל נמאס לי מהכוכב המעצבן הזה אז אני פשוט אשתמש בסימון הסטנדרטי לכפל: שום סימון. אם \(f,g\) הן פונקציות מקבוצת הקטעים של \(X\) אל \(\mathbb{R}\), אז נגדיר:

\(fg\left(x,y\right)=\sum_{x\le z\le y}f\left(x,z\right)g\left(z,y\right)\)

כאן העובדה ש-\(X\) סופית מקומית היא קריטית; אחרת הסכום הזה לא בהכרח היה סופי.

בואו נראה איך המושג הזה מכליל את זה של תחילת הפוסט. שם התעסקנו עם פונקציות שמוגדרות על הטבעיים; כאן \(X=\mathbb{N}\) ויחס הסדר הוא חלוקה, כלומר \(a\le b\) פירושו \(a|b\). כעת, אם \(f\) היא פונקציה שמוגדרת על הטבעיים, אפשר להגדיר אותה גם על קטעים באופן הבא: \(f\left(a,b\right)=f\left(\frac{b}{a}\right)\) (זכרו: בגלל ש-\(\left[a,b\right]\) הוא קטע, \(a\le b\) ולכן \(a|b\)). לכן בפרט \(f\left(a\right)=f\left(1,a\right)\), ומההגדרה למעלה נקבל:

\(fg\left(n\right)=fg\left(1,n\right)=\sum_{1|d|n}f\left(1,d\right)g\left(d,n\right)=\sum_{d|n}f\left(d\right)g\left(\frac{n}{d}\right)\)

הופה! בדיוק ההגדרה של קונבולוציית דיריכלה.

אפשר להגדיר \(\epsilon\) כמו קודם: \(\epsilon\left(x,x\right)=1\) לכל \(x\in X\), ולכל \(x\ne y\) \(\epsilon\left(x,y\right)=0\) (למעשה, \(\delta\) מתאים פה יותר, למי שזוכר את הדלתא של קרונקר, אבל לא חשוב). לא קשה לראות ש-\(\epsilon\) היא איבר יחידה ביחס לכפל הפונקציות שהגדרתי לעיל. גם לא קשה לראות שהכפל אסוציאטיבי.

את מקומה של הפונקציה שסימנתי אז \(\mathbb{I}\) תופסת עכשיו פונקציית זטא: \(\zeta\left(x,y\right)=1\) לכל \(x\le y\). רגע, למה זטא? אודה ואתוודה – לא יודע, אני לא בטוח מה הקשר של הפונקציה הזו לשאר פונקציות הזטא הקיימות, אבל אלו הסימונים. באופן בלתי מפתיע, מגדירים כעת את פונקצית מביוס של הקס"ח \(X\) בתור ההופכית של \(\zeta\), כלומר \(\zeta\mu=\mu\zeta=\epsilon\). כעת, נוסחת ההיפוך של מביוס, בתיאורה האבסטרקטי ביותר, היא פשוט האבחנה הסופר-טריוויאלית ש- \(f\zeta=g\) אם ורק אם \(f=g\mu\) (רק שיש כאן טוויסט כאן שתכף אסביר).

קרוב לודאי שאתם מרגישים שיצאתי יותר מדי בזול מכל העניין. איפה אני מוכיח משהו, בכלל? אתם כמובן צודקים – מה שחסר לי הוא הוכחה ש-\(\zeta\)הפיכה בכלל. כדי לטפל בכך אוכיח משהו כללי יותר – שפונקציה \(f\) היא הפיכה אם ורק אם \(f\left(x,x\right)\ne0\) לכל \(x\in X\). חזרנו אל "החיפוש אחרי הופכי במקרה הכללי" של תחילת הפוסט, רק שהפעם אני לא הולך להתחמק.

למרבה המזל, האתגר לא גדול במיוחד. נתונה לי \(f\) ואני רוצה למצוא \(g\) כך ש-\(fg=\epsilon\). כלומר, כך ש-\(fg\left(x,x\right)=\epsilon\left(x,x\right)=1\) לכל \(x\), ומכיוון שעל פי הגדרה \(fg\left(x,x\right)=f\left(x,x\right)g\left(x,x\right)\), הרי ש-\(g\left(x,x\right)=\left(f\left(x,x\right)\right)^{-1}\) (כאן אני נעזר בכך שהערכים שהפונקציות מקבלות שייכים לשדה), ואנו רואים גם למה הכרחי שיתקיים \(f\left(x,x\right)\ne0\).

כעת, לכל \(x\ne y\) שניתנים להשוואה צריך להתקיים \(fg\left(x,y\right)=\epsilon\left(x,y\right)=0\), ולכן על פי הנוסחה \(\sum_{x\le z\le y}f\left(x,z\right)g\left(z,y\right)=0\). בואו נבודד מהסכום הזה את האיבר שמתקבל כש-\(z=x\) ונעביר אגף, נקבל ש:

\(g\left(x,y\right)=-\left(f\left(x,x\right)\right)^{-1}\sum_{x<z\le y}f\left(x,z\right)g\left(z,y\right)\).

הנוסחה הזו מספיקה כדי להגדיר את \(g\) לכל קטע באופן רקורסיבי. זה לא מבטיח לנו נוסחה פשוטה יותר עבור \(g\), ומכאן בפרט שאין לנו תמיד נוסחה פשוטה עבור \(\mu\). מה כן יש לנו? ובכן, אם נציב את \(\zeta\) בתור \(f\) בנוסחאות הללו, נקבל ש-\(\mu\) מתוארת על ידי הנוסחאות הבאות:

\(\mu\left(x,x\right)=1\) לכל \(x\in X\).

\(\mu\left(x,y\right)=-\sum_{x<z\le y}\mu\left(z,y\right)=-\sum_{x\le z<y}\mu\left(x,z\right)\) לכל \(x<y\).

את נוסחת ההיפוך עצמה ניתן לתאר עם סכומים באופן הבא: אם \(f\zeta=g\) זה אומר ש-\(g\left(x,y\right)=\sum_{x\le z\le y}f\left(x,z\right)\), ולכן \(f\left(x,y\right)=\sum_{x\le z\le y}g\left(x,z\right)\mu\left(z,y\right)\).

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

\(g\left(x\right)=\sum_{y\le x}f\left(y\right)\)

אם ורק אם

\(f\left(x\right)=\sum_{y\le x}g\left(y\right)\mu\left(y,x\right)\)

בניסוח הזה אנחנו חייבים שב-\(X\) כל אידאל סדר ראשי יהיה סופי פשוט כי אחרת הסכום \(\sum_{y\le x}\) (כאשר \(x\) קבוע – כלומר, הסכום הוא בדיוק על איברי אידאל הסדר שנוצר על ידי \(x\)) איננו סופי. למעשה, יש כאן נקודה עדינה למדי – אותן \(f,g\) שאני מדבר עליהן כאן מוגדרות על איברים של \(X\), לא על קטעים. אין בעיה של ממש לטפל בעניין הזה אבל אני חושב שהתעללתי בקוראים מספיק ואסיים כאן.

עקרון ההכלה וההפרדה, ואז הכללה והפחדה

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

מהו עקרון ההכלה וההפרדה

קומבינטוריקה אנומרטיבית היא התחום המתמטי שעוסק, פחות או יותר, בבעיה הבאה: "הנה לך קבוצה סופית, כמה איברים יש בה?", כאשר לרוב הקבוצה הזו תלויה באיזה פרמטר \(n\) ואנו רוצים את התשובה כפונקציה של \(n\). הנה כמה דוגמאות לבעיות שבכולן נטפל בקרוב: קבוצת המספרים הטבעיים בין \(1\) ל-\(n\) שאינם מתחלקים ב-2, 3 או 5; קבוצת המספרים בין 1 ל-\(n\) שזרים ל-\(n\) (כלומר, אין להם מחלקים טבעיים משותפים הגדולים מ-1), וקבוצת הפרות הסדר על \(n\) איברים – בלשון ציורית, מספר הדרכים שבהן יכול דוור מבולבל (אם אנחנו שונאים את ניומן מסיינפלד) או מזכירה מבולבלת (אם אנחנו שונאים נשים) לחלק \(n\) מכתבים ל-\(n\) האנשים שאמורים לקבל אותם באופן כזה שאף מכתב לא יגיע ליעדו (למשל, אם האנשים הם 1,2,3 אז אפשרות אחת היא שהמכתב של 3 יגיע ל-1, שהמכתב של 2 יגיע ל-3, ושהמכתב של 1 יגיע ל-2).

בואו נתחיל מגרסה עוד יותר פשוטה של הבעיה הראשונה: כמה מספרים בין 1 ל-100 כן מתחלקים ב-2 או ב-3? ובכן, בדיוק 50 מספרים מתחלקים ב-2 – כל הזוגיים. כמו כן, 33 מתחלקים ב-3; כל המספרים שהם כפולות של 3 עד 99, ו-100 לא עוזר לנו כי אינו מתחלק ב-3. קצת מחשבה מראה לנו את הנוסחה הכללית: מספרים מ-\(1\) ועד \(n\) שמתחלקים ב-\(k\) יש בדיוק, אבל בדיוק, \(\left\lfloor \frac{n}{k}\right\rfloor \), כשהקווים מייצגים ערך שלם תחתון: אם התקבלה תוצאה שברית, מעגלים למטה למספר השלם הקרוב.

אם כן, הפיתוי גדול לומר שיש \(50+33=83\) מספרים בין 1 ו-100 שמתחלקים ב-2 או ב-3. אבל ספירה מהירה תראה שזה לא נכון. בעצם, עזבו אתכם ממספרים בין 1 ל-100 שקשה לספור; אם ננסה באותה שיטה לספור מספרים בין 1 ל-10 נקבל \(8\) מספרים, אבל בבירור יש רק 7: \(\left\{ 2,3,4,6,8,9,10\right\} \). איפה הטעות שלנו? במספר המעצבן 6, שמתחלק בו זמנית גם ב-2 וגם ב-3. ספרנו אותו פעמיים: פעם אחת כחבר בקבוצה \(\left\{ 2,4,6,8,10\right\} \) של מספרים שמתחלקים ב-2, ופעם אחת בקבוצה \(\left\{ 3,6,9\right\} \) של מספרים שמתחלקים ב-3. את הספירה הכפולה הזו צריך לתקן – פשוט נחסיר 1 מהתוצאה.

עבור מספרים בין 1 ל-100 הרעיון דומה; יש 83 מספרים פחות כמות המספרים בין 1 ל-100 שמתחלקים גם ב-2 וגם ב-3. למזלנו קל לדעת מיהם – אלו בדיוק המספרים שמתחלקים 6, כלומר \(\left\lfloor \frac{100}{6}\right\rfloor =16\). קיבלנו שיש \(50+33-16=67\) מספרים בין 1 ל-100 שמתחלקים או ב-2, או ב-3, או בשניהם.

את הרעיון הכללי אפשר לנסח כך: אם \(A,B\) הן קבוצות, אז \(\left|A\cup B\right|=\left|A\right|+\left|B\right|-\left|A\cap B\right|\) – גודל הקבוצה \(A\cup B\) שמכילה את כל האיברים של \(A,B\) הוא כסכום גדלי הקבוצות \(A,B\) פחות הגודל של הקבוצה \(A\cap B\) של איברים ששייכים הן ל-\(A\) והן ל-\(B\). השלב הבא הוא לנסח את המשפט עבור שלוש קבוצות, \(A,B,C\). הניחוש הראשוני הוא לומר ש-

\(\left|A\cup B\cup C\right|=\left(\left|A\right|+\left|B\right|+\left|C\right|\right)-\left(\left|A\cap B\right|+\left|A\cap C\right|+\left|B\cap C\right|\right)\)

וזה כמעט נכון, אבל לא נכון עד הסוף, כי אם יש איבר שנמצא הן ב-\(A\), הן ב-\(B\) והן ב-\(C\) הוא אמנם נספר שלוש פעמים ב-\(\left|A\right|+\left|B\right|+\left|C\right|\) אבל לאחר מכן הוא גם מוחסר שלוש פעמים ב-\(-\left(\left|A\cap B\right|+\left|A\cap C\right|+\left|B\cap C\right|\right)\) ובסופו של דבר יוצא שהוא לא נספר כלל. לכן צריך לתקן את הנוסחה על ידי הוספת \(\left|A\cap B\cap C\right|\).

מכאן כבר אפשר לנחש את המקרה הכללי: אם יש לנו קבוצות \(A_{1},\dots,A_{k}\) ואנו רוצים לדעת מה הגודל של \(\bigcup_{i=1}^{k}A_{i}\), קודם כל נסכום את הגדלים של כל הקבוצות, אחר כך נחסיר את הגודל של כל החיתוכים של שתי קבוצות, נחבר את הגודל של חיתוכים של שלוש, נחסיר את הגודל של חיתוכים של ארבע… אני אומר את זה מילולית כי לכתוב את זה בנוסחה – ובכן, איך נאמר זאת בעדינות – זה כואב. הנה הנוסחה:

\(\left|\bigcup_{i=1}^{n}A_{i}\right|=\sum_{i=1}^{n}\left|A_{i}\right|-\sum_{1\le i<j\le n}\left|A_{i}\cap A_{j}\right|+\dots+\left(-1\right)^{n+1}\left|\bigcap_{i=1}^{n}A_{i}\right|\)

לקצרנים שבינינו, אפשר גם עם סכום כפול:

\(\left|\bigcup_{i=1}^{n}A_{i}\right|=\sum_{t=1}^{n}\sum_{1\le i_{1}<i_{2}<\dots<i_{t}\le n}\left(-1\right)^{t+1}\left|\bigcap_{j=1}^{t}A_{i_{j}}\right|\)

לא נעים כל כך, אבל העיקרון עצמו ברור למדי. עם זאת, צריך גם להוכיח שהוא עובד. הרעיון הוא להסתכל על איבר כלשהו \(x\in\bigcup_{i=1}^{n}A_{i}\) ולשאול את עצמנו – מה הוא תורם לאגף ימין, ומה הוא תורם לאגף שמאל? לאגף שמאל הוא תורם בדיוק 1; אגף ימין קצת יותר מסובך. נניח ש-\(x\) נמצא בדיוק ב-\(k\) קבוצות, אז לכל \(t>k\), פשוט לא ייתכן ש-\(x\in\bigcap_{j=1}^{t}A_{i_{j}}\) כי אנחנו חותכים פה יותר קבוצות מאשר יש קבוצות שמכילות את \(x\) ולכן הוא לא בחיתוך. לכן מה שרלוונטי מראש הוא רק \(t\le k\), וגם אז – רק חיתוכים \(\bigcap_{j=1}^{t}A_{i_{j}}\) שבהם כל הקבוצות כוללות את \(x\), כלומר כל הקבוצות נלקחות מתוך \(k\) הקבוצות שכוללות את \(x\) מלכתחילה. המספר שלהן הוא מה שמסמנים כ-\({k \choose t}\): מספר האפשרויות לבחור \(t\) מתוך \(k\). זה אומר ש-\(x\) תורם לסכום באגף ימין בדיוק את תת-הסכום הבא:

\(\sum_{t=1}^{k}{k \choose t}\left(-1\right)^{t+1}\)

כדי לחשב את הסכום הזה משתמשים בנוסחת הבינום של ניוטון, שקל לראות ממנה שמתקיים \(0=\left(1-1\right)^{k}=\sum_{t=0}^{k}{k \choose t}\left(-1\right)^{t}\). לכן אנו מקבלים:

\(\sum_{t=1}^{k}{k \choose t}\left(-1\right)^{t}=\sum_{t=0}^{k}{k \choose t}\left(-1\right)^{t+1}+1=1-\sum_{t=0}^{k}{k \choose t}\left(-1\right)^{t}=1\)

כפי שרצינו.

ואיך עושים איתו דברים מעניינים

סיימנו את ההוכחה ואפשר לעבור לאקשן – פתרון של דברים אמיתיים. נתחיל עם המספרים בין 1 ל-\(n\) שאינם מתחלקים ב-\(2\) או \(3\) או \(5\): כאן הקבוצות הן של המספרים שכן מתחלקים ב-2, וכן מתחלקים ב-3, וכן מתחלקים ב-5, ואנחנו רוצים לחסר את זה מהקבוצה של כלל המספרים, שהיא מגודל \(n\). לכן נקבל:

\(n-\left(\left\lfloor \frac{n}{2}\right\rfloor +\left\lfloor \frac{n}{3}\right\rfloor +\left\lfloor \frac{n}{5}\right\rfloor \right)+\left(\left\lfloor \frac{n}{6}\right\rfloor +\left\lfloor \frac{n}{10}\right\rfloor +\left\lfloor \frac{n}{15}\right\rfloor \right)-\left\lfloor \frac{n}{30}\right\rfloor \)

חייבים להודות שהנוסחה הזו לא נראית הכי מלהיבה בעולם; אבל חשבו לרגע על הדרך הנאיבית לחשב את המספר הזה – לעבור על כל המספרים מ-\(1\) עד \(n\) ולכל אחד לבדוק אם הוא מתחלק ב-2 או 3 או 5. אם \(n\) קטן זה לא נורא, אבל מה אם \(n=10^{100}\)? במקרה הזה האלגוריתם שלנו לעולם לא יסתיים, ואילו בעזרת הנוסחה שלנו צריך יהיה לבצע 7 פעולות חילוק ולחבר/לחסר את התוצאות וזהו, כלומר החישוב יסתיים בחלקיקי שניה גם אם \(n\) מפלצתי בגודלו. זו המחשה ראשונה לכוח שבהכלה והפרדה.

בואו נעבור לדוגמה השניה: עבור טבעי \(n\), \(\varphi\left(n\right)\) ("פונקצית אוילר") מסמן את מספרם של המספרים הטבעיים בין 1 ל-\(n\) שזרים ל-\(n\), כלומר שהמספר היחיד שמחלק את שניהם הוא \(1\) עצמו. למשל, עבור \(6\), המספרים היחידים שקטנים ממנו וזרים לו הם 1 ו-5 ולכן \(\varphi\left(6\right)=2\); עבור \(8\) אלו הם \(1,3,5,7\) ולכן \(\varphi\left(8\right)=4\), וכן הלאה. אם תסתכלו בגרף של הפונקציה הזו תראו שהיא מתנהגת בצורה די מטורללת – כל הזמן קופצת בין ערכים קטנים לגדולים. נקודות השיא הן בראשוניים (מספרים שמתחלקים רק ב-1 ובעצמם): לכל מספר ראשוני \(p\) מתקיים \(\varphi\left(p\right)=p-1\) ולכן הערכים הגדולים ביותר של \(\varphi\) יתקבלו על הראשוניים, שהם עצמם מפוזרים בצורה שנראית כמעט אקראית.

ועם זאת, יש נוסחה ל-\(\varphi\left(n\right)\), שמתבססת על כך שאנו יודעים בדיוק מהם הראשוניים שמחלקים את \(n\). יש לנוסחה הזו מספר הוכחות והאהובה עלי עושה שימוש במשפט חשוב למדי מאלגברה – "משפט השאריות הסיני". לא נדבר על זה בכלל הפעם, ובמקום זאת נראה איך גישת ההכלה וההפרדה מחסלת גם היא את הבעיה בקלות.

האבחנה האלגברית שבבסיס העניין היא שאם \(n\) ו-\(m\) לא זרים, אז קיים ראשוני \(p\) כלשהו שמחלק את שניהם. נניח שהמחלקים הראשוניים השונים של \(n\) הם בדיוק \(p_{1},\dots,p_{k}\), אז הקבוצה \(A_{i}\) שלנו הפעם תהיה "קבוצת כל המספרים הטבעיים הקטנים או שווים ל-\(n\) שמתחלקים ב-\(p_{i}\)". את הגודל המדויק של הקבוצה הזו אנחנו יודעים – הוא בדיוק \(\frac{n}{p_{i}}\), מהנימוקים שנתתי קודם. וכמות המספרים שמתחלקים בשני ראשוניים \(p_{i},p_{j}\) היא \(\frac{n}{p_{i}p_{j}}\) וכן הלאה. אז הכלה והפרדה נותנת את הדבר הבא:

\(\varphi\left(n\right)=n-\sum_{i}\frac{n}{p_{i}}+\sum_{i,j}\frac{n}{p_{i}p_{j}}-\dots+\left(-1\right)^{k}\frac{n}{p_{1}\cdots p_{k}}\)

על פניו, לא ברור מה הנוסחה הזו עזרה לנו, אבל שימו לב לכך ש-\(n\) הוא גורם בכל אחד מהמחוברים, כך שניתן להוציא אותו החוצה ולהיוותר עם סכום מהצורה \(\left(1-\sum\frac{1}{p_{i}}+\sum\frac{1}{p_{i}p_{j}}-\dots+\left(-1\right)^{k}\frac{1}{p_{1}\cdots p_{k}}\right)\). מה שטוב בסכום הזה, שעדיין נראה מפלצתי, הוא שאפשר לכתוב אותו בצורה הרבה יותר פשוטה ומסודרת כמכפלה: \(\prod_{i=1}^{k}\left(1-\frac{1}{p_{i}}\right)\). כדי לראות את זה, שימו לב שאם פותחים את המכפלה הזו, מקבלים סכום של איברים כך שכל איבר הוא בעצמו מכפלה, שכל איבר בה הוא או \(1\) או \(-\frac{1}{p_{i}}\) (הדרך הפשוטה ביותר לראות זאת – נסו לעשות זאת עם שני ראשוניים בלבד).

אם כן, קיבלנו את הנוסחה \(\varphi\left(n\right)=n\prod_{p|n}\left(1-\frac{1}{p}\right)\) (\(p|n\) פירושו "מכפלה שנלקחת על כל הראשוניים \(p\) שמחלקים את \(n\)") שהיא קלה ביותר לחישוב, אם יודעים מיהם ה-\(p\)-ים המתאימים (ולדעת מי הם – זו כבר בעיה לא פשוטה כלל).

בואו נעבור עכשיו להפרות סדר, שגם בהן הכלה והפרדה נותנת נוסחה סגורה, אבל מרשימה אפילו יותר מאשר במקרה הקודם שכן היא לא תכלול שום מכפלה ושום סכום, בזכות תעלול מחדו"א שנשתמש בו. הפרת סדר היא בבסיסה תמורה – סידור בשורה של המספרים מ-\(1\) עד \(n\). יש באופן כללי \(n!=1\cdot2\cdots n\) תמורות; מהן אנחנו רוצים לחסר את מספר התמורות שבהן יש לפחות אינדקס אחד \(i\) כך שהמספר במקום ה-\(i\) הוא \(i\) עצמו (למשל, \(4132\) היא תמורה כזו עם האינדקס \(i=3\)).

למרבה המזל, את החישובים כאן קל מאוד לבצע. מספר התמורות שבהן \(k\) איברים ספציפיים נמצאים במקום הנכון שלהם הוא כמספר האפשרויות לסדר את כל יתר \(n-k\) האיברים בסדר שרירותי כלשהו, כלומר \(\left(n-k\right)!\). שימו לב לכך שאני מרשה לאיברים נוספים פרט ל-\(k\) האיברים הספציפיים להיות במקום הנכון שלהם; אני פשוט לא דורש זאת במפורש. לכן \(\left(n-k\right)!\) אינו מספר התמורות שבהן בדיוק \(k\) איברים נמצאים במקום הנכון שלהם; צריך להיזהר לא לחשוב כך בטעות.

עקרון ההכלה וההפרדה מניב לנו עכשיו את הנוסחה הבאה ל-\(D\left(n\right)\), מספר הפרות הסדר של \(n\) איברים:

\(D\left(n\right)=n!-{n \choose 1}\left(n-1\right)!+{n \choose 2}\left(n-2\right)!-\dots+\left(-1\right)^{n}{n \choose n}\left(n-n\right)!\). כדי להבין מה פשר המקדם \({n \choose k}\) שמופיע שם בואו נחשוב שניה איך אמורה להיראות הנוסחה: היא אמורה להתחיל עם \(n!\), ואז אמורים לחסר ממנה, לכל מקום בין 1 ל-\(n\), את מספר התמורות שבהן מקום זה מקובע. לכל מקום נקבל אותו מספר – \(\left(n-1\right)!\), ויש \({n \choose 1}\) מקומות כאלו, ומכאן הכפל. בדומה, \({n \choose 2}\) מתאים למספר האפשרויות לבחור זוג מקומות לקבע, וכן הלאה.

בואו נכתוב שוב את הנוסחה שקיבלתי, בצורה יותר קומפקטית: \(D\left(n\right)=\sum_{k=0}^{n}\left(-1\right)^{k}{n \choose k}\left(n-k\right)!\). האם יש דרך לפשט אותה עוד יותר? ובכן, \({n \choose k}=\frac{n!}{k!\left(n-k\right)!}\) כך שאפשר לעשות כאן צמצום קטן ולקבל \(D\left(n\right)=\sum_{k=0}^{n}\left(-1\right)^{k}\frac{n!}{k!}=n!\left(\sum_{k=0}^{n}\frac{\left(-1\right)^{k}}{k!}\right)\). הקומבינטוריקה מביאה אותנו עד כאן ותו לא, אבל עכשיו החדו"א יכול להיכנס לפעולה.

כל מי שמכיר חדו"א ובוהה בנוסחה \(\sum_{k=0}^{n}\frac{\left(-1\right)^{k}}{k!}\) כנראה ירגיש משהו מצלצל לו – זה נראה כמו פונקציית האקספוננט \(e^{x}=\sum_{k=0}^{\infty}\frac{x^{k}}{k!}\), רק שכאן הטור סופי ולא אינסופי. במילים אחרות, \(\sum_{k=0}^{n}\frac{\left(-1\right)^{k}}{k!}=e^{-1}-\sum_{k=n+1}^{\infty}\frac{\left(-1\right)^{k}}{k!}\). אז קיבלנו שהסכום הוא "כמעט" \(\frac{1}{e}\), רק שיש גם שארית מעצבנת \(\sum_{k=n+1}^{\infty}\frac{\left(-1\right)^{k}}{k!}\) שצריך להבין מה בדיוק, או לפחות בערך, הגודל שלה. במקרה הספציפי שלנו זה קל במיוחד כי הטור הוא מה שנקרא "טור לייבניץ" – טור מהצורה \(\sum\left(-1\right)^{n}a_{n}\) כש-\(a_{n}\) שואפת מונוטונית לאפס, וידוע שסכום של טור שכזה, בערכו המוחלט, הוא קטן או שווה לגודל האיבר הראשון בו. כלומר, \(\left|\sum_{k=n+1}^{\infty}\frac{\left(-1\right)^{k}}{k!}\right|\le\left|\frac{\left(-1\right)^{n+1}}{\left(n+1\right)!}\right|=\frac{1}{\left(n+1\right)!}\).

אם כן, קיבלנו את הנוסחה \(D\left(n\right)=n!\cdot\left(e^{-1}+\xi\left(n\right)\right)=\frac{n!}{e}+n!\xi\left(n\right)\), כשכתבתי את השגיאה ב-\(\xi\) בדיוק כדי שתיראה מכוערת ונרצה להיפטר ממנה. מה אנחנו יודעים עליה? ש-\(\left|n!\xi\left(n\right)\right|\le\frac{n!}{\left(n+1\right)!}=\frac{1}{n}\). במילים אחרות, עבור \(n\ge3\), השגיאה קטנה מחצי. זה מאפשר לנו לטעון את הטענה הנועזת הבאה: \(D\left(n\right)=\left[\frac{n!}{e}\right]\), כאשר הסוגריים המרובעים פירושם "ערך שלם" – המספר השלם הקרוב ביותר ל-\(\frac{n!}{e}\). זה עובד מכיוון שלכל מספר ממשי, הערך השלם שלו הוא במרחק לכל היותר \(\frac{1}{2}\) ממנו, בעוד שכל מספר שלם אחר הוא מרחק של לפחות \(\frac{1}{2}\) ממנו, ולכן אם כל ה"תיקון" שנדרש כדי לעבור מ-\(\frac{n!}{e}\) ל-\(D\left(n\right)\) הוא פחות מחצי, הערך השלם יביא אותנו ל-\(D\left(n\right)\) בודאות. את זה ש-\(D\left(n\right)=\left[\frac{n!}{e}\right]\) גם עבור \(n=1,2\) אפשר לבדוק בצורה ישירה, והנה קיבלנו נוסחה סגורה ופשוטה ל-\(D\left(n\right)\). אפשר גם להסיק מסקנה הסתברותית – ככל ש-\(n\) שואף לאינסוף, כך ההסתברות לקבלת הפרת סדר כשמגרילים תמורה באקראי שואפת ל-\(\frac{1}{e}\); הנה לנו דוגמה נאה למקום שבו \(e\) צץ באופן טבעי לגמרי בבעיה קומבינטורית שבכלל לא מזכירה אותו.

הכללה והפחדה

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

אם כן, תהא \(X\) קבוצה כלשהי בת \(n\) איברים (אפשר לחשוב עליה כעל קבוצה של "תכונות" אם זה עוזר לנו). ניקח מרחב וקטורי \(V\) של כל הפונקציות \(f:\mbox{P}\left(X\right)\to\mathbb{R}\), כאשר \(\mbox{P}\left(X\right)\) פירושו קבוצת החזקה של \(X\) – אוסף כל תת-הקבוצות של \(X\). במילים אחרות, כל פונקציה \(f\) כזו מגדירה ערך כלשהו שמתאים לתת-קבוצה של \(X\). קל לראות ש-\(V\) הוא באמת מרחב וקטורי מעל \(\mathbb{R}\) (למעשה, \(\mathbb{R}\) לא ממש חשוב כאן וכל שדה אחר היה עובד באותה מידה). כעת נגדיר טרנספורמציה לינארית \(T:V\to V\) באופן הבא:

\(\left(Tf\right)\left(A\right)=\sum_{B\supseteq A}f\left(B\right)\)

כלומר, בהינתן \(f\), הפונקציה החדשה ש-\(Tf\) מגדירה היא כזו שערכה על כל תת-קבוצה \(A\subseteq X\) הוא סכום ערכי \(f\) על כל ה-\(B\) שמכילות את \(A\). חשבו על זה כך: \(f\left(A\right)\) אומרת כמה איברים ביקום שלנו מקיימים בדיוק את התכונות שבקבוצה \(A\) ושום דבר אחר; \(Tf\left(A\right)\) אומר כמה איברים ביקום שלנו מקיימים לפחות את התכונות שב-\(A\), ואולי עוד דברים. בדרך כלל את \(f\) קשה לחשב ואילו את \(Tf\) קל, ולכן מה שאנחנו רוצים לעשות הוא "להפוך" את \(T\); לקבל איכשהו מ-\(Tf\) את \(f\) עצמה. לצורך כך צריך שהטרנספורמציה הלינארית שלנו תהיה הפיכה, ועקרון ההכלה וההפרדה אומר שזה בדיוק מה שקורה, וגם נותן לנו את הנוסחה המדוייקת של \(T^{-1}\):

\(\left(T^{-1}f\right)\left(A\right)=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}f\left(B\right)\)

תכף נראה איך זה מתקשר לדברים שראינו עד כה, אבל לפני כן בואו נוכיח. מה שאנחנו בעצם רוצים להראות הוא שאם נגדיר טרנספורמציה לינארית \(S:V\to V\) על ידי \(\left(Sf\right)\left(A\right)=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}f\left(B\right)\) אז יתקיים ש-\(ST=TS=I\). עכשיו, כמו שבדרך כלל קורה באלגברה לינארית, כל מה שצריך לעשות הוא להציב והכל כבר מסתדר מעצמו. הבה ונראה מהו \(\left(TSf\right)\):

\(\left(TSf\right)\left(A\right)=T\left(\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}f\left(B\right)\right)=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}Tf\left(B\right)\)

\(=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}\left(\sum_{C\supseteq B}f\left(C\right)\right)\)

כעת ננקוט בתעלול הטכני הסטנדרטי של שינוי סדר הסכימה. הסכום שלמעלה שווה ממש לסכום הבא:

\(\sum_{C\supseteq A}\left(\sum_{A\subseteq B\subseteq C}\left(-1\right)^{\left|B-A\right|}\right)f\left(C\right)\)

האינדקס בסכום האמצעי הוא \(B\). אז למה \(\left|B-A\right|\) יכול להיות שווה? ברור שערכיו נעים בין 0 ובין \(m=\left|C-A\right|\). כמה קבוצות \(B\) מקיימות ש-\(\left|B-A\right|=i\) עבור \(0\le i\le m\)? ובכן, בדיוק כמספר האיברים לבחור \(i\) מתוך \(m\) האיברים של \(C\) שאינם ב-\(A\), כלומר \({m \choose i}\). לכן את הסכום האמצעי אפשר לכתוב גם כ-\(\sum_{i=0}^{m}\left(-1\right)^{i}{m \choose i}=\left(1-1\right)^{m}\) (כאן השתמשתי בבינום של ניוטון), ולכן אם \(m>0\) אז הסכום האמצעי שווה לאפס, ואם \(m=0\) אז הסכום האמצעי שווה ל-1 (אני משתמש כאן בקונוונציה לפיה \(0^{0}=1\), אבל מי שלא מאמין לי יכול לבדוק ולהיווכח בכך ש-\(\sum_{A\subseteq B\subseteq C}\left(-1\right)^{\left|B-A\right|}\) אכן שווה 1 כאשר \(A=C\), מה שמצדיק את השימוש בקונוונציה \(0^{0}=1\) כאן).

לסיכום, קיבלנו ש-\(\left(TSf\right)\left(A\right)=f\left(A\right)\), וזאת לכל \(A\), ולכן \(TS=I\) כנדרש. זה מסיים את הוכחת עקרון ההכלה וההפרדה הכללי ביותר שאני מכיר, אבל – מה בעצם עשינו כאן, לעזאזל?

התחלתי את הפוסט עם הנוסחה \(\left|\bigcup_{i=1}^{n}A_{i}\right|=\sum_{i=1}^{n}\left|A_{i}\right|-\sum_{1\le i<j\le n}\left|A_{i}\cap A_{j}\right|+\dots+\left(-1\right)^{n+1}\left|\bigcap_{i=1}^{n}A_{i}\right|\). כאן חשבנו על \(A_{i}\) בתור "קבוצת כל האיברים שמקיימים את התכונה ה-\(i\) לפחות" (לא בדיוק!), ולכן על \(A_{i}\cap A_{j}\) בתור כל האיברים שמקיימים לפחות את התכונות \(i,j\) וכן הלאה. בלשון הקבוצות של המשפט שלמעלה, \(S=\left\{ 1,2,\dots,n\right\} \) ו-\(f\left(A\right)=\left|\bigcap_{i\in A}A_{i}\right|\) (כן, יש לי כאן שימוש כפול מוזר ב-\(A\) וב-\(A_{i}\) במשמעויות שונות לגמרי. אל תגידו לי שזה מה שיחסל אתכם עכשיו).

הנוסחה שלעיל מתארת את \(\bigcup_{i=1}^{n}A_{i}\), שהוא מספר האיברים שמקיימים לפחות אחת מהתכונות, אבל בדרך כלל התעניינו דווקא במספר האיברים שלא מקיימים אף אחת מהתכונות, מה שגרם לנו לחסר את הגודל של \(\bigcup_{i=1}^{n}A_{i}\) ממספר האיברים הכולל ב"עולם" שלנו, שזו דרך אחרת להגיד "מספר האיברים שמקיימים לפחות אפס תכונות" (מעין "חיתוך ריק" שלא ממש ברור איך לכתוב אותו).

בואו נחדד את העניין, אם כן. נגדיר פונקציה\(f_{=}\left(A\right)\) ששווה למספר האיברים שמקיימים בדיוק את התכונות שב-\(A\). אנחנו מעוניינים לרוב למצוא את \(f_{=}\left(\emptyset\right)\), אבל לפעמים גם עבור קבוצות מחוכמות יותר. כעת, נגדיר גם \(f_{\ge}\left(A\right)\) בתור מספר האיברים שמקיימים לפחות את התכונות ב-\(A\), כלומר בדיוק \(f_{\ge}\left(A\right)=\left|\bigcap_{i\in A}A_{i}\right|\). כעת קל לראות שמתקיים הקשר

\(f_{\ge}\left(A\right)=\sum_{B\supseteq A}f_{=}\left(B\right)\) (הסבירו לעצמכם למה!) כלומר \(f_{\ge}=Tf_{=}\), ולכן \(f_{=}=T^{-1}f_{\ge}\), כלומר

\(f_{=}\left(A\right)=\sum_{B\supseteq A}\left(-1\right)^{\left|B-A\right|}f_{\ge}\left(B\right)\)

ובפרט עבור \(A=\emptyset\) נקבל

\(f_{=}\left(\emptyset\right)=\sum_{A}\left(-1\right)^{\left|A\right|}f_{\ge}\left(A\right)\)

וזוהי בדיוק נוסחת ההכלה וההפרדה המוכרת והאהובה שלנו, רק בניסוח יותר קומפקטי ויותר קל להבנה (כן! יותר קל! אחרי שבוהים בה הרבה, כנראה…).

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

גבישים כמו-מחזוריים וריצופים כן-מחזוריים

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

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

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


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

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

צורות בעלות סימטריה לסיבובים לא חסרות. נתחיל מהמעגל, שהוא מושלם מהבחינה הזו – כל סיבוב, בכל זווית שהיא, שצירו הוא מרכז המעגל מותיר את המעגל ללא שינוי. לכן המעגל הוא סימטרי עבור כל סיבוב סביב מרכז המעגל. עוד צורות סימטריות הן המצולעים המשוכללים – מצולע משוכלל הוא מצולע שאורכי כל צלעותיו וכל זוויותיו שוות (למשל – משולש שווה צלעות, ריבוע, משושה משוכלל וכו' וכו'). לא קשה לראות שמצולע משוכלל עם \(n\) צלעות הוא סימטרי ביחס לסיבוב בזווית של \(\frac{360}{n}\) מעלות (למשל: ריבוע סימטרי ביחס לסיבוב בזווית של 90 מעלות). הדוגמה הזו תשמש אותי בטרמינולוגיה בהמשך: "סימטריה ריבועית" היא סימטריה ביחס לסיבוב ב-90 מעלות, כמו במקרה של הריבוע; ולכן "סימטריה מחומשת" תהיה עבור סיבוב בזווית של \(\frac{360}{5}=72\) מעלות, סיבוב שהוא סימטרי עבור המחומש. כעת ברור מה שכטמן ראה: משהו שנראה כמו גביש אבל הפגין סימטריה ביחס לסיבוב בזווית של 72 מעלות (למעשה, הוא הפגין סימטריה ביחס לסיבוב ב-36 מעלות, כלומר כזו שמתאימה למצולע משוכלל עם 10 צלעות, אבל אני מעדיף לשמור את העניינים פשוטים).

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

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

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

זה מוביל להגדרה הבאה – קבוצת סימטריות שהסימטריות שלה להזזה נוצרות על ידי שתי הזזות בלתי תלויות נקראת חבורה קריסטלוגרפית מישורית; ואם זו קבוצת סימטריות של גביש בתלת מימד שהסימטריות שלה להזזה נוצרות על ידי שלוש הזזות בלתי תלויות היא נקראת חבורה קריסטלוגרפית מרחבית. ויש עוד שמות – למשל, Wallpaper group עבור חבורה מישורית וסתם Space group עבור חבורה מרחבית, וכדומה. המילה "חבורה" מציינת שקבוצת הסימטריות היא גם בעלת מבנה מסויים – אפשר תמיד להרכיב שתי סימטריות ולקבל סימטריה אחרת (הרכבת סימטריות פירושה הפעלה של אחת הסימטריות ואז הפעלה של השניה – למשל, הזזה בכיוון אחד ואז בכיוון אחר היא עצמה הזזה בכיוון שלישי שהוא תערובות של שניהם, ואם שתי ההזזות שבוצעו הותירו את הצורה ללא שינוי גם ההזזה המעורבת תותיר את הצורה ללא שינוי).

האתגר הראשוני של הקריסטלוגרפיה, אם כן, הוא למיין חבורות קריסטלוגרפיות. להבין אילו חבורות קריסטלוגרפיות יכולות בכלל להתקיים. בכל הנוגע לחבורות קריסטלוגרפיות מישוריות, התשובה היא שקיימות בדיוק 17 חבורות שכאלו ויש; חבורות קריסטלוגרפיות מרחביות יש הרבה יותר – 230 (אפשר גם לדבר על חבורות קריסטלוגרפיות במימדים גבוהים יותר ואז המספר שלהן הולך וגדל). המיון של החבורות הללו הוא בעיה מעניינת מאוד בתורת החבורות, אבל אני לא צריך לדבר עליו כאן; די לי לדבר על המשפט שמופיע בתחילת המיון, "משפט האיסור הקריסטלוגרפי" (Crystallographic restriction theorem), שהוא הצעד הראשון בדרך להבנה מי כן ומי לא יכול להיות חבורה קריסטלוגרפית.

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


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


כאן המשולשים מופיעים על צירי הסיבוב.

והנה דוגמה שבה יש (בין היתר) סימטריה ל-4-סיבובים, כלומר של 90 מעלות:


ועכשיו אפשר לדבר על המשפט הכללי: בחבורה קריסטלוגרפית סוגי הסיבובים היחידים שיכולים להופיע הם עבור 2,3,4,6-סיבובים (כלומר: 180,120,90 ו-60 מעלות). סיבובים בזוויות אחרות פשוט לא יכולים לתת סימטריה עבור אובייקט שכבר יש לו סימטריה להזזה בשני כיוונים שונים. זה בדיוק המשפט שהגביש של שכטמן הפר.

אם נסתכל על התמונה שבה שכטמן מדבר עם ראש הממשלה, כנראה שזה בדיוק מה שהוא מסביר לו:


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

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

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

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

מה שמובלע בהוכחה של ברגר היא העובדה שקבוצות האריחים שהוא בונה חייבות לרצף את המישור באופן לא מחזורי (כי עבור ריצוף מחזורי האלגוריתם של וואנג עובד). לרוע המזל, קבוצת האריחים שלו הייתה ענקית – 20,000 אריחים נדרשו כדי לממש אפילו תוכניות מחשב פשוטות. זמן מה אחריו רפאל רובינסון הציג הוכחה משופרת שבה היו רק בערך 100 אריחים שמרצפים את המישור באופן לא מחזורי, אבל גם 100 זה המון. מי שחיסל את הבעיה באופן מוחלט היה המתמטיקאי והפיזיקאי רוג'ר פנרוז, שמצא קבוצה של שני אריחים, שכל ריצוף של המישור על ידם אינו יכול להיות מחזורי. האריחים הללו מכונים אריחי פנרוז על שמו (למען האמת, פנרוז גילה כמה קבוצות שכאלו אבל נעזוב את זה). למען ההגינות יש לציין שברגר ורובינסון התעסקו עם אריחי וואנג, שהם מוגבלים יותר באופיים מאשר אריחי פנרוז.

הנה תמונה של אריחי פנרוז:


והנה (חלק מ-) ריצוף על ידי האריחים הללו:


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

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

משפט טורן והולדת תורת הגרפים האקסטרמלית

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

הפעם אני רוצה לעסוק בתחום דומה בקומבינטוריקה (תת-תחום של תורת רמזי? המעמד הרשמי לא ממש חשוב) – תורת הגרפים האקסטרמלית. כפי שניתן לנחש, האובייקטים שלנו כאן הם גרפים (אבל נו באמת – איזה אובייקט ביקום לא ניתן לתיאור על ידי גרף?) ואנחנו רוצים להבין את תכונותיהם של הגרפים הקיצוניים ביותר שמקיימים (או שלא מקיימים) תכונה כלשהי. באופן קצת יותר קונקרטי, עבור תכונה \(\Phi\) כלשהי של גרפים, שאלה מרכזית היא זו: מה המספר המקסימלי של קשתות שגרף עם \(n\) צמתים יכול להכיל ועדיין לקיים את התכונה \(\Phi\)? המספר הזה מסומן לרוב כ-\(\mbox{ex}\left(n,\Phi\right)\) (אפשר לחשוב עליו כפונקציה של \(n\) עם פרמטר \(\Phi\)). לא תמיד אפשר לדעת במדויק את \(\mbox{ex}\left(n,\Phi\right)\), כמובן, ולרוב מסתפקים בהערכה.

המקרה המעניין הראשון הוא זה שבו \(\Phi\) היא התכונה "להכיל תת-גרף מסויים". אז אנחנו שואלים את השאלה הקלאסית של תורת רמזי – מתי אובייקט הוא גדול דיו כדי שמבנה מסויים יצוץ בתוכו לבטח? ומשפט טורן מטפל בתת גרף פשוט במיוחד: קליק. קליק מגודל \(t\), שאותו אסמן ב-\(K_{t}\), הוא פשוט קבוצה של \(t\) צמתים שכולם מחוברים אלה לאלה בקשתות. שימו לב להבדל בין זה ומשפט רמזי, שמדבר על מספר הצמתים שצריך להיות בגרף לפני שיצוץ בו קליק מגודל מסויים או קבוצה בלתי תלויה מגודל מסויים; כאן מספר הצמתים \(n\) קבוע ונתון מראש ואנחנו רוצים לדעת מה מספר הקשתות; ולהבדיל ממשפט רמזי, כאן אנחנו יודעים את \(\mbox{ex}\left(n,K_{t}\right)\) במדויק וגם יודעים בדיוק איך הגרפים הקיצוניים (בעלי המספר המקסימלי של קשתות שאינם מכילים את \(K_{t}\)) נראים.

בואו נתחיל עם מקרה פרטי שהיה ידוע בימיו של טורן – \(K_{3}\), משולש. השאלה הראשונה, שעליה אתם יכולים לחשוב בעצמכם, היא איך אפשר לבנות גרף "גדול" (כלומר, עם הרבה קשתות – \(n\) קבוע, זוכרים?) שעדיין לא יכיל משולש. אספיילר אותה כעת מייד אז מי שרוצה לחשוב בעצמו, שיפסיק לקרוא.

התעלול הוא להשתמש במה שנקרא "גרף דו צדדי". גרף דו צדדי הוא כזה שניתן לחלק את צמתיו לשתי קבוצות – הטובים והרעים – כך שכל צומת שייך לאחת מהקבוצות, וכל קשת בהכרח מחברת בין טוב ורע; אין קשת בין שני טובים, או קשת בין שני רעים. בגרף כזה לא יכול להיות משולש, כי בקבוצה של שלושה קודקודים יש שני טובים (שאינם מחוברים בקשת) או שני רעים (שאינם מחוברים בקשת). מצד שני, בגלל שאנחנו יודעים שבגרף דו צדדי מובטח לנו שלא יהיה משולש אנחנו יכולים להתפרע ולהוסיף כמה קשתות שבא לנו כל עוד הן לא מחברות שני טובים או שני רעים. באופן כללי אם יש \(a\) טובים ו-\(b\) רעים וכל טוב מחובר לרע בקשת יהיו לנו \(ab\) קשתות בגרף. מכיוון ש-\(n=a+b\), זה אומר שיהיו לנו \(a\left(n-a\right)=na-a^{2}\) קשתות בגרף, והשאלה היא איזה ערך של \(a\) ייתן לנו את המקסימום. קצת חשבון דיפרנציאלי (אני לא אומר שאין דרכים אחרות, ועוד נראה כאלו) נותן בקלות את התשובה הלא מפתיעה – \(a=\frac{n}{2}\) (אם \(n\) אי זוגי מעגלים כלפי מטה או מעלה, זה לא משנה). כלומר המספר המקסימלי של קשתות מתקבל כאשר מחלקים את הגרף לשתי קבוצות שוות של צמתים, ואז יהיו \(\frac{n^{2}}{4}\) קשתות. כלומר, \(\mbox{ex}\left(n,K_{3}\right)=\frac{n^{2}}{4}\). כל זה היה ידוע בימיו של טורן; המשפט שלו הוא פשוט הכללה רדיקלית שנותנת את \(\mbox{ex}\left(n,K_{t}\right)\)לכל \(t\).

כדי לפשט טיפה את הסימונים מכאן ואילך אניח שאנחנו מנסים למצוא את \(\mbox{ex}\left(n,K_{t+1}\right)\); עוד שניה יהיה ברור לכולם למה עדיף לדבר על \(t+1\) כאן.

הצעד הראשון הוא לנסות ולבנות גרפים גדולים ככל האפשר שאינם מכילים קליק מגודל \(t+1\). ממש מתבקש להכליל כאן את הרעיון שכבר הצגתי – במקום גרף דו-צדדי, לקחת גרף \(t\) צדדי, כלומר כזה שבו הצמתים מחולקים ל-\(t\) קבוצות ואין קשת בין שני חברי אותה קבוצה (אבל כל צומת מקבוצה מסויימת יכול להיות מחובר לכל צומת מכל קבוצה אחרת). ההוכחה שאין בגרף כזה קליק מגודל \(t+1\) זהה: אם יש \(t+1\) צמתים יש לפחות שני צמתים מאותה קבוצה (זהו עקרון שובך היונים בפעולה) ולכן זוג צמתים בלי קשת ביניהם).

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

לצורך פשטות נניח מכאן ואילך ש-\(t\) מחלק את \(n\), אחרת סתם הסימונים שלנו יהיו מסורבלים בהרבה. במקרה הזה, כל הקבוצות יהיו מאותו גודל – \(\frac{n}{t}\). כמה קשתות יהיו? כמו שראינו קודם, בין כל שתי קבוצות של צמתים מחברות \(\frac{n^{2}}{t^{2}}\) קשתות; ויש לנו \({t \choose 2}=\frac{t\left(t-1\right)}{2}\) זוגות (למי שלא מכיר את הסימון הזה – נעים להכיר). לכן יש בסך הכל \(\frac{t\left(t-1\right)}{2}\cdot\frac{n^{2}}{t^{2}}=\frac{t-1}{t}\frac{n^{2}}{2}=\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\) קשתות.

כעת אפשר לנסח את משפט טורן. פורמלית, הוא אומר ש-\(\mbox{ex}\left(n,K_{t+1}\right)=\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\), אבל ניסוחים כאלו הם אחד מהדברים השנואים עלי במתמטיקה. לא כי הוא לא נכון או לא מדויק או כל דבר אחר, אלא כי אם זה מה שתראו למישהו מבחוץ הוא לא יבין את הקטע. אוקיי, אז יש לנו איזו נוסחה לא יפה במיוחד עבור \(\mbox{ex}\left(n,K_{t+1}\right)\), אז מה? הפואנטה כאן לטעמי היא שמשפט טורן אומר שהגרפים האקסטרמליים במקרה הזה הם אכן הגרפים ה-\(t\) צדדיים שבנינו – דרך הרבה יותר ציורית ויפה להבין את המספר \(\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\) (כמובן, לערך המספרי יש חשיבות ביישומים של המשפט). כך זה תמיד במתמטיקה – המטרה היא לא איזו נוסחה סגורה מפוצצת, אלא ההבנה של התופעה שמאחורי הנוסחה (הבנה שלא תהיה שלמה עד שההוכחות לא יסייעו לנו להבין למה הגרפים ה-\(t\) צדדיים הם אכן אקסטרמליים).

אני רוצה להציג שלוש הוכחות למשפט. הראשונה של טורן עצמו שהיא פשוטה ויפה וברורה. השניה של אלון וספנסר שהיא קסם וודו מוחלט, אבל ממחישה יפה את כוחה של השיטה ההסתברותית (שאלון וספנסר כתבו את הספר עליה, תרתי משמע). והשלישית היא אלמנטרית לחלוטין, מבהירה מיידית ובצורה מוחלטת למה הגרפים ה-\(t\) צדדיים הם האקסטרימליים, ולא ברור מי המציא אותה. כל ההוכחות מגיעות מהספר Proofs from THE BOOK שכולל גם שתי הוכחות שלא אראה כאן.

ראשית, ניסוח מדויק של המשפט שכוחו יפה גם ל-\(n\) שלא מתחלק על ידי \(t\): אם \(G\) הוא גרף בעל \(n\) צמתים ואין בו קליק מגודל \(t+1\) (כאשר \(t\ge2\)), אז מספר הקשתות ב-\(G\) הוא לא יותר מ-\(\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\).

נתחיל עם טורן. טורן מוכיח את המשפט באינדוקציה על \(n\), כש-\(t\) קבוע. כל עוד \(n\le t\) אז לא משנה אילו קשתות יהיו בגרף, לא יוכל להיות בו קליק מגודל \(t+1\) כי אין מספיק צמתים; לכן צריך לוודא שמספר הקשתות הכולל בגרף לא יכול לעלות על החסם. מספר הקשתות המקסימלי האפשרי בגרף עם \(n\) צמתים הוא \(\frac{n\left(n-1\right)}{2}\), ובעזרת אי השוויון \(n\le t\) מקבלים:

\(\frac{n\left(n-1\right)}{2}\le\left(t-1\right)\frac{n}{2}\le\frac{t-1}{t}\cdot\frac{n^{2}}{2}=\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\)

כך שעם זה סיימנו. החלק המעניין הוא לטפל במקרה שבו \(n>t\). מספיק להראות שבגרף עם מספר קשתות מקסימלי (ביחס לתכונה "לא מכיל את \(K_{t+1}\)) מתקיים החסם הנדרש, כי לכל גרף אחר אפשר להוסיף קשתות עד שמגיעים לגרף מקסימלי שכזה. גרף מקסימלי שכזה בהכרח יכיל את \(K_{t}\) (כי אם לא, הוא לא היה מקסימלי; הוספה של קשת לא הייתה יכול ליצור את \(K_{t+1}\) כי מ-\(K_{t+1}\) אפשר לקבל את \(K_{t}\) על ידי הסרה של קשת אחת וסילוק אחד הצמתים שמחוברים אליה). הרעיון הוא כעת לחלק את הגרף לשני חלקים: \(A\) תהיה קבוצת הצמתים של הקליק מגודל \(t\) הזה, ו-\(B\) תהיה קבוצת שאר הצמתים.

ב-\(A\) יש בדיוק \({t \choose 2}\) קשתות שהרי בין כל זוג צמתים שם יש קשת. על \(B\) אנחנו יכולים להשתמש בהנחת האינדוקציה כי מספר הצמתים בה קטן מ-\(n\), כך שאנחנו יודעים שיש בה לכל היותר \(\left(1-\frac{1}{t}\right)\frac{\left(n-t\right)^{2}}{2}\) קשתות. אילו עוד קשתות יכולות להתקיים בגרף? כאלו שמחברות את \(A\) עם \(B\). כל צומת ב-\(B\) יכולה להתחבר כמעט לכל הצמתים של \(A\), אבל רק כמעט; אם היא תתחבר לכל הצמתים של \(A\), אז היא יחד עם \(A\) יהוו קליק מגודל \(t+1\). לכן כל צומת מ-\(B\) מחוברת בקשת לכל היותר ל-\(t-1\) צמתים מ-\(A\). אלו כל האבחנות שצריך, והיתר הוא חשבון מכולת. אנחנו מקבלים שמספר הקשתות הכולל בגרף חסום על ידי:

\({t \choose 2}+\left(1-\frac{1}{t}\right)\frac{\left(n-t\right)^{2}}{2}+\left(n-t\right)\left(t-1\right)\)

אחרי סידור מחדש קטן מקבלים שזה שווה ל:

\(\left(t-1\right)\left[\frac{t}{2}+\frac{\left(n-t\right)^{2}}{2t}+\left(n-t\right)\right]=\left(t-1\right)\left[\frac{t}{2}+\frac{\left(n-t\right)\left(n+t\right)}{2t}\right]\)

\(=\left(t-1\right)\left[\frac{t^{2}+n^{2}-t^{2}}{2t}\right]=\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\)

כמו קסם, קיבלנו לבסוף בדיוק את החסם שרצינו.

כמובן, אין כאן שום קסם אמיתי, זה היופי בהוכחה הזו – התוצאה חייבת להתקבל, אין מנוס מכך. יש לנו כאן דוגמה קלאסית להוכחה באינדוקציה: ראשית, טורן מזהה מרכיב כלשהו שחייב להופיע בגרף אקסטרימלי כלשהו (\(K_{t}\)). האבחנה הזו היא המפתח לנצחון, ומאותו רגע ההמשך מתבקש: לפרק את הגרף, למתוח כמה קשתות שרק אפשר בין הרכיבים, ולהשתמש בהנחת האינדוקציה על מה שנשאר. בעצם טורן מראה כאן ש-\(\mbox{ex}\left(n,K_{t+1}\right)\) מקיים את נוסחת הנסיגה \(\mbox{ex}\left(n,K_{t+1}\right)=\mbox{ex}\left(n-t,K_{t+1}\right)+{t \choose 2}+\left(n-t\right)\left(t-1\right)\) עבור \(n>t\), רק שכאן אין לנו צורך לפתור את הנוסחה הזו כי כבר היה לנו ניחוש מוצלח לגבי הערך של \(\mbox{ex}\left(n,K_{t+1}\right)\) מלכתחילה (בסיטואציות קומבינטוריות אחרות לא יהיה לנו כזה ואז נוסחת נסיגה שכזו תעזור גם להבין מה בדיוק הערך שאנחנו מחפשים).

נעבור כעת להוכחה השניה, של אלון וספנסר. הם לוקחים גרף כלשהו \(G\) בעל \(n\) צמתים שמסומנים לצורך נוחות ב-\(v_{1},\dots,v_{n}\), מסמנים ב-\(d_{i}\) את הדרגה של הצומת \(v_{i}\), כלומר מספר הקשתות שמחוברות אליו. כעת, אם נסמן ב-\(\omega\left(G\right)\) את גודל הקליק הגדול ביותר ב-\(G\), אלון וספנסר טוענים שמתקיים:

\(\omega\left(G\right)\ge\sum_{i=1}^{n}\frac{1}{n-d_{i}}\)

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

אז איך הטענה מסיימת את ההוכחה? כאן שולפים כלי מתמטי סטנדרטי מהשרוול – אי שוויון קושי-שוורץ. לאי השוויון הזה מספר ניסוחים ואבחר את הניסוח הפשוט יחסית שרלוונטי עבורנו: אם \(a_{1},\dots,a_{n}\) ו-\(b_{1},\dots,b_{n}\) הן סדרות מספרים אז:

\(\left(\sum_{i=1}^{n}a_{i}b_{i}\right)^{2}\le\left(\sum_{i=1}^{n}a_{i}^{2}\right)\left(\sum_{i=1}^{n}b_{i}^{2}\right)\)

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

השימוש כאן בקושי-שוורץ הוא פשוט יחסית. נבחר \(a_{i}=\sqrt{n-d_{i}}\) ו-\(b_{i}=\left(\sqrt{n-d_{i}}\right)^{-1}\), נציב בנוסחה ונקבל:

\(n^{2}\le\left(\sum_{i=1}^{n}\left(n-d_{i}\right)\right)\left(\sum_{i=1}^{n}\frac{1}{n-d_{i}}\right)\le\omega\left(G\right)\sum_{i=1}^{n}\left(n-d_{i}\right)\)

עכשיו יש לנו עוד שני תעלולים לשלוף מהשרוול: ראשית, אנחנו מניחים ש-\(\omega\left(G\right)\le t\) – זו ההנחה הבסיסית שלנו, לפיה הגרף לא מכיל את הקליק \(K_{t+1}\). שנית, יש לנו דרך לקשר בין הדרגות של כל הצמתים בגרף ובין מספר הקשתות בו. אם מספר הקשתות הוא \(e\), אז בכל גרף (סופי) שהוא מתקיים השוויון \(2e=\sum_{i=1}^{n}d_{i}\), שכן כל קשת בגרף תורמת 1 לדרגות של שני הצמתים שהיא מחוברת אליהם. מכל אלה אפשר להסיק כעת:

\(n^{2}\le t\cdot\left(n^{2}-2e\right)\)

וכל שנשאר הוא ללהטט קצת כדי לחלץ את \(e\). פתיחת סוגריים, העברת אגפים, ונקבל:

\(2et\le n^{2}\left(t-1\right)\)

חלוקה ונקבל:

\(e\le\left(1-\frac{1}{t}\right)\frac{n^{2}}{2}\)

בדיוק מה שרצינו.

בינתיים זה היה טכני ולא הכי מעניין, אני חייב להודות; לב ההוכחה הוא בטענה \(\omega\left(G\right)\ge\sum_{i=1}^{n}\frac{1}{n-d_{i}}\) וההוכחה ההסתברותית שלה שאציג כעת.

במבט ראשון לא ברור איך הסתברות יכולה להשתחל לכאן. הגרף \(G\) נתון וקבוע; מה בדיוק נגריל ואיך? הרעיון של אלון וספנסר הוא להגריל סדר על הצמתים – פורמלית, פרמוטציה \(\pi\) כלשהי שלהם, כשכל פרמוטציה נבחרת בהסתברות שווה, \(\frac{1}{n!}\). נניח שהצמתים \(v_{1},\dots,v_{n}\) כבר מסודרים על פי הפרמוטציה הזו, ונגדיר קבוצת צמתים \(C_{\pi}\) שמכילה את כל הצמתים \(v_{i}\) שמחוברים בקשת לכל הצמתים שבאים לפניהם בפרמוטציה, כלומר לכל \(v_{j}\) כך ש-\(j<i\).

הנקודה המהותית כאן היא ש-\(C_{\pi}\) היא קליק. למה? ובכן, קחו ב-\(C_{\pi}\) את הצומת עם האינדקס המקסימלי; על פי הגדרה, הוא מחובר לכל הצמתים עם אינדקס קטן יותר ובפרט לכל צמתי \(C_{\pi}\). כעת קחו את הצומת המקסימלי הבא בתור… הבנתם את הרעיון.

יפה, אז הצלחנו להגדיר איכשהו מרחב הסתברות שמערב קליקים. אנחנו מעוניינים בחסם כלשהו על גדלי הקליקים, אז נגדיר משתנה מקרי \(X=\left|C_{\pi}\right|\) – גודל \(C_{\pi}\). בגלל האופן שבה \(C_{\pi}\) נבנתה, קל לפרק את \(X\) לסכום של אינדיקטורים (משתנים מקריים שמקבלים 0 או 1 בלבד): \(X=\sum_{i=1}^{n}X_{i}\) כאשר \(X_{i}\) מקבל 1 אם \(v_{i}\) מחובר בקשת לכל הצמתים שקדמו לו.

כעת השאלה הפשוטה היא – מה ההסתברות ש-\(X_{i}=1\)? מכיוון שכל הקשתות כבר נקבעו, זה תלוי בדרגה של \(v_{i}\): אם \(v_{i}\) מחובר ל-\(d_{i}\) צמתים, ההסתברות לכך שכל הצמתים שיהיו לפני \(v_{i}\) בפרמוטציה יהיו מתוך \(d_{i}\) הצמתים שהוא מחובר אליהם היא בעצם ההסתברות שמבין כל \(n-d_{i}\) הצמתים שאינם מחוברים אל \(v_{i}\), כולל \(v_{i}\) עצמו, יהיה זה \(v_{i}\) שמופיע ראשון. מכיוון שיש סימטריה בין כל \(n-d_{i}\) הצמתים הללו, ההסתברות לכך היא \(\frac{1}{n-d_{i}}\) (אתם מוזמנים לעשות חישוב פורמלי אם לא שוכנעתם).

זה מסיים את העניין אם זוכרים מה קורה בדרך כלל בשלב הזה בשיטה ההסתברותית. תוחלת של אינדיקטור היא ההסתברות שהוא יקבל 1, כלומר \(\mbox{E}\left[X_{i}\right]=\frac{1}{n-d_{i}}\). לינאריות התוחלת נותנת לנו כעת

\(\mbox{E}\left[X\right]=\mbox{E}\left[\sum_{i=1}^{n}X_{i}\right]=\sum_{i=1}^{n}\mbox{E}\left[X_{i}\right]=\sum_{i=1}^{n}\frac{1}{n-d_{i}}\)

ואנחנו מסיימים כי במרחב ההסתברות שלנו חייב להיות איבר שנותן ל-\(X\) לפחות את ערך התוחלת שלו, כלומר קליק שגודלו לפחות \(\sum_{i=1}^{n}\frac{1}{n-d_{i}}\).

שלא יהיה לכם ספק; אני לא מקבל שום אינטואיציה ל"מה הולך פה" מההוכחה הזו. היא פשוט מגניבה.

נעבור כעת להוכחה השלישית, שכנראה מבהירה הכי טוב "מה הולך פה". מה שההוכחה מראה הוא שהגרף האקסטרמלי חייב להיות גרף \(k\)-צדדי כלשהו. כבר הגענו קודם למסקנה שמבין הגרפים ה-\(k\) צדדיים, הכי טוב הוא גרף \(t\) צדדי שבו כל הצדדים כמעט מאותו גודל (הפרש 1 לכל היותר בין כל שני צדדים), כי אם זה לא כך ניתן להזיז צמתים ולהגדיל את מספר הקשתות (וגרף \(t+1\) צדדי כבר יכיל קליק מגודל \(t+1\)).

גרף \(k\)-צדדי כלשהו מאופיין בדרך כלל על ידי ההגדרה ה"גלובלית" שלפיה "יש חלוקה של צמתי הגרף ל-\(k\) קבוצות, כך ש…". אך למעשה, קיימת גם הגדרה "לוקלית" פשוטה במקרה שבו הגרף מכיל את כל הקשתות האפשריות: גרף הוא \(k\)-צדדי מלא, עבור \(k\) כלשהו, אם לכל זוג צמתים \(u,v\) שמחובר בקשת, וצומת נוסף \(w\), \(w\) חייב להיות מחובר ל-\(u\) או ל-\(v\).

הטענה בבירור מתקיימת בגרף \(k\) צדדי מלא – אם \(u,v\) מחוברים בקשת זה אומר שהם לא באותו צד, ולכן לא ייתכן ש-\(w\) יהיה גם בצד של \(u\) וגם בצד של \(v\) בו זמנית, ולכן הוא יהיה מחובר לאחד מהם (הרי הגרף מכיל כל קשת חוקית).

למה אם הטענה נכונה הגרף הוא \(k\) צדדי מלא? ובכן, למי שמכיר את המושג: כי היחס "\(u,v\) לא מחוברים בקשת" הוא יחס שקילות; ולמי שלא מכיר, אפשר לבנות את הצדדים כך – ניקח צומת תמים \(u\), ונגדיר את "הצד של \(u\)" בתור אוסף כל הצמתים ש-\(u\) לא מחובר אליהם. לא ייתכן שבקבוצה הזו יהיו שני צמתים \(v,w\) שמחוברים בקשת (כי אז העובדה ש-\(u\) לא מחובר לאף אחד מהם סותרת את הטענה שלנו), לכן זה אכן צד חוקי של גרף \(k\) צדדי. בנוסף, אם ניקח צומת \(v\) כלשהו בצד הזה, הוא יהיה חייב להיות מחובר לכל צומת שאינה באותו צד איתו; כי אם יש צומת \(w\) שאינה באותו צד איתו אז על פי הגדרת הצד, \(w\) מחובר ל-\(u\), ולא ייתכן ש-\(v\) לא יהיה מחובר לא ל-\(u\) ולא ל-\(w\).

יפה, אז יש לנו אפיון לוקלי פשוט, וכל שצריך להראות הוא שהאפיון מתקיים בגרף האקסטרמלי. נניח בשלילה שהוא לא, אז יש לנו שלושה צמתים בגרף: \(u,v,w\), כך ש-\(u,v\) מחוברים בקשת ואילו \(w\) לא מחובר לאף אחד מהם. הרעיון הוא לבנות עכשיו מהגרף הקיים גרף חדש שבו יש יותר קשתות ואותו מספר צמתים ועדיין אין בו את \(K_{t+1}\), בסתירה לאקסטרימליות של הגרף שלנו.

איך עושים את זה? פשוט: מעיפים מהגרף את אחד מהצמתים \(u,v,w\) שיש לו מעט קשתות ושמים במקומו עותק של אחד מהצמתים האחרים. אם למשל מתקיים ש-\(d\left(u\right)>d\left(w\right)\), אז נעיף מהגרף את \(w\); בכך איבדנו \(d\left(w\right)\) קשתות. כפיצוי, נוסף לגרף צומת \(u^{\prime}\) שמחובר בדיוק לאותם צמתים ש-\(u\) מחובר אליהם; זה ייתן לנו עוד \(d\left(u\right)\) קשתות, כלומר הרווחנו. לא קשה לראות שהוספת \(u^{\prime}\) לגרף לא יכולה ליצור קליק מגודל \(t+1\): אם יש קליק כזה, אז היה קליק כזה גם בגרף המקורי, רק עם \(u\) במקום \(u^{\prime}\) (לא ייתכן שיש קליק שמערב הן את \(u\) והן את \(u^{\prime}\) יחד, שכן אין קשת ביניהם).

באופן דומה מטפלים במקרה שבו \(d\left(v\right)>d\left(w\right)\). המקרה היחיד שנותר לנו הוא זה שבו \(d\left(w\right)\ge d\left(u\right),d\left(v\right)\). כאן נעיף מהגרף את \(u,v\) שניהם גם יחד ונשים שני עותקים של \(w\); הסיבה שבגללה נרוויח כך קשת היא שכשמסירים את \(u,v\) לא מאבדים \(d\left(u\right)+d\left(v\right)\) קשתות אלא רק \(d\left(u\right)+d\left(v\right)-1\) קשתות, שכן הקשת המשותפת של \(u,v\) מוסרת רק פעם אחת. זה מסיים את ההוכחה הזו.

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

פונקציות יוצרות – והפעם ברצינות (חלק ב')

אני רוצה להמשיך לדבר על פונקציות יוצרות והדברים המגניבים שעושים איתן, ובפוסט הזה ללכת לכיוונים עוד יותר טכניים מהפוסט הקודם (כי ככה זה במתמטיקה – כשמגיעים לדברים מתוחכמים, זה גם נהיה יותר טכני). בפוסט הקודם ראינו כי אם \(A,B\) הן מחלקות של אובייקטים עם פונקציות יוצרות \(a\left(x\right),b\left(x\right)\) אז הפונקציה היוצרת של \(A+B\) (איחוד זר של \(A,B\)) היא \(a\left(x\right)+b\left(x\right)\); הפונקציה היוצרת של \(A\times B\) היא \(a\left(x\right)b\left(x\right)\); והפונקציה היוצרת של \(A^{*}\) (סדרות סופיות של איברים מ-\(A\)) היא \(\frac{1}{1-a\left(x\right)}\). עם שלוש הבניות הללו כבר יצא לנו לפתור בעיה נחמדה באופן לא טריוויאלי (ספירה של עצים) – בואו נוסיף עוד כמה כלים לארסנל ונראה איך הם עוזרים לנו.

אני רוצה להציג כעת את הפונקציה היוצרת שמתאימה לבעיית החלוקות (חלוקה של מספר \(n\) היא כתיבה של \(n\) כסכום מספרים טבעיים קטנים ממנו, כאשר אין חשיבות לסדר האיברים בחלוקה). זו דוגמה חשובה – אולי החשובה ביותר – לבעיה שבה אין לנו נוסחה מפורשת עבור הפתרון אבל יש לנו פונקציה יוצרת פשוטה מאוד. בואו ניזכר ש-\(\frac{1}{1-x}\) שווה ל-\(1+x+x^{2}+x^{3}+\dots\); באותו האופן \(\frac{1}{1-x^{k}}\) שווה ל-\(1+x^{k}+x^{2k}+x^{3k}+\dots\) וכן הלאה. עכשיו, מה מיוצג לנו על ידי \(\frac{1}{1-x}\cdot\frac{1}{1-x^{2}}\)? אני טוען שזו הפונקציה היוצרת של הסדרה \(a_{n}\) כך ש-\(a_{n}\) הוא מספר הדרכים לכתוב את \(n\) כסכום של 2 ו-1. מדוע? ובכן, כי

\(\frac{1}{1-x}\cdot\frac{1}{1-x^{2}}=\left(1+x+x^{2}+\dots\right)\left(1+x^{2}+x^{4}+\dots\right)\)

וכשנפתח את הסוגריים, האיבר \(x^{n}\) יתקבל בדיוק כמספר הפתרונות בטבעיים של המשוואה \(y_{1}+2y_{2}=n\) (הסבירו לעצמכם מדוע!)

כבר אוילר הלך עם החשיבה הזו צעד אחד קדימה ואמר שאם כך, הפונקציה היוצרת עבור חלוקות בכלל, שבהן אין לנו מגבלה על גודל החלקים שאליהם אפשר לפרק את \(n\), הוא פשוט המכפלה \(\prod_{m=1}^{\infty}\frac{1}{1-x^{m}}\) (הסימן \(\Pi\) מציין מכפלה – אנחנו כופלים את כל האיברים מהצורה \(\frac{1}{1-x^{m}}\), עבור כל \(m\ge1\) טבעי). מכפלה אינסופית שכזו עשויה לגרום להרמת גבה, אבל כרגיל – טור החזקות שהוא תוצאת הכפל הוא בעל התכונה שכל מקדם שלו נקבע רק על פי מספר סופי של איברים, ולכן אין לנו כאן צורך לדבר על התכנסות בכלל והאינסופים שנכנסים למשחק לא משפיעים עלינו. זה נפנוף ידיים שמסתיר מאחוריו קצת יותר סיבוכים שלא אכנס אליהם.

הדוגמה הזו היא מקרה פרטי של בניה כללית שאכנה Multiset, ובקיצור – \(\mbox{MS}\). אם \(A\) היא מחלקה כלשהי, אז פורמלית אפשר להגדיר את \(\mbox{MS}\left(A\right)\) בתור \(\prod_{a\in A}\left\{ a\right\} ^{*}\) כאשר איברים "אינסופיים" מוצאים החוצה (הסבר מדויק יבוא אחרי שנבין מה לעזאזל הולך בהגדרה הבסיסית). בניסוח מילולי, איבר של \(\mbox{MS}\left(a\right)\) מורכב ממספר סופי של סדרות, כשבכל סדרה מופיע איבר כלשהו של \(A\) מספר סופי מסויים של פעמים.

ברור לי שגם התיאור הזה אבסטרקטי למדי אז הנה דוגמה קונקרטית. אפשר לחשוב על הטבעיים, \(\mathbb{N}=\left\{ 1,2,3,\dots\right\} \), בתור קבוצה של אובייקטים קומבינטוריים כאשר ה"גודל" של איבר \(t\in\mathbb{N}\) הוא פשוט \(t\) עצמו (כלומר, יש איבר בודד מגודל 1 – המספר 1; ואיבר בודד מגודל 13 – המספר "שלוש עשרה", וכן הלאה). לפורמליסטיים שבכם רק אעיר שאפשר להגדיר את \(\mathbb{N}\) הזו בתור \(\left\{ \bullet\right\} \cdot\left\{ \bullet\right\} ^{*}\), כאשר \(\bullet\) הוא סימון מוסכם לאיבר מגודל 1 ("אטום").

כעת, מהו \(\mbox{MS}\left(\mathbb{N}\right)\)? איבר לדוגמה בו ייראה כך: \(\left(\left(1,1,1\right),\left(2,2\right),\left(7\right),\left(13,13\right)\right)\) – זה אוסף של 4 סדרות; בסדרה הראשונה מופיע 1 בדיוק 3 פעמים, 2 מופיע פעמיים, וכדומה. ה"גודל" של האיבר הזה הוא סכום הגדלים של ארבעת הסדרות, והגודל שלהן בתורו הוא סכום הגדלים של האיברים שבהם; מכאן שגודל הסדרה הראשונה הוא 3, גודל הסדרה השניה 4, גודל השלישית 7 וגודל הרביעית 26 ולכן הגודל הכולל של האיבר הזה הוא 40. האיבר הזה, כפי שודאי כבר הבנתם, מייצג חלוקה של המספר 40, ובאופן כללי כל איבר בגודל 40 בתוך \(\mbox{MS}\left(\mathbb{N}\right)\) יתאים לחלוקה של המספר 40. לכן כמות האיברים מגודל 40 ב-\(\mbox{MS}\left(\mathbb{N}\right)\) היא בדיוק מספר החלוקות של 40 – בדיוק מה שרצינו.

בואו נחזור שניה להגדרה הפורמלית, רק עבור המתמטיקאים בחבורה – מי שהפסקה הזו מטרללת אותו יכול לדלג, זו פורמליסטיקה חשובה אבל לא קריטית להצגה פופולרית כמו פה. \(\prod_{a\in A}\left\{ a\right\} ^{*}\) היא הגדרה בעייתית אם \(A\) אינסופית, כי אין משמעות, למשל, לאיבר שמתקבל מהמכפלה \(\prod_{a\in A}\left\{ a\right\} \) – זה יהיה איבר מגודל אינסופי. כדי למנוע היווצרות של איברים כאלו צריך להשתמש בתעלול נוסף – נשתמש בסימון \(\prod_{a\in A}^{n}\left\{ a\right\} ^{*}\) כדי לתאר את המכפלה המתאימה שבה משתתפים כל אברי \(A\) עד האיבר שמספרו הסידורי הוא \(n\), תחת איזה סידור מוסכם מראש של אברי \(A\). כעת אפשר להגדיר \(\mbox{MS}\left(A\right)=\sum_{n=1}^{\infty}\prod_{a\in A}^{n}\left\{ a\right\} ^{*}\) – זה משיג בצורה פורמלית את מה שאני מקווה כבר ברור אינטואיטיבית.

עכשיו, נניח שאנחנו יודעים את הפונקציה היוצרת \(a\left(x\right)\) של \(A\); מהי הפונקציה היוצרת של \(\mbox{MS}\left(A\right)\)? כאן העסק מסתבך. ראשית, מה הפונקציה היוצרת של \(\left\{ a\right\} ^{*}\)? על פי מה שראינו בפוסט הקודם, היא \(\frac{1}{1-x^{\left|a\right|}}\) כש-\(\left|a\right|\) הוא הגודל של \(a\); הפונקציה הזו מתאימה לסדרה שכולה 0-ים פרט למקומות שהם כפולות שלמות של הגודל של \(a\) ובהם יש 1. מכאן, אם נלך עם האינטואיטציה של אוילר, שהפונקציה היוצרת שאנו מחפשים היא \(\prod_{a\in A}\frac{1}{1-x^{\left|a\right|}}\), שאותה אפשר לכתוב גם כ-\(\prod_{n=1}^{\infty}\left(\frac{1}{1-x^{_{n}}}\right)^{a_{n}}\), כאשר \(a_{n}\) הוא מספר האיברים מגודל \(n\) ב-\(A\). זו לא דרך הצגה יפה במיוחד כי המקדמים \(a_{n}\) פזורים להם בכל מקום – אנחנו רוצים תיאור שתופיע בו רק הפונקציה \(a\left(x\right)\) עצמה. לשם כך נשתמש בתעלול ידוע שהופך מכפלות לסכומים – שימוש בלוגריתם. כזכור, \(y=\exp\left(\log y\right)\) כאשר \(\exp\left(t\right)\) זו פשוט דרך תרבותית לכתוב \(e^{t}\) בלי לחרוג מהשורה.

אם כן: \(\prod_{n=1}^{\infty}\left(\frac{1}{1-x^{_{n}}}\right)^{a_{n}}=\exp\left(\log\prod_{n=1}^{\infty}\left(\frac{1}{1-x^{_{n}}}\right)^{a_{n}}\right)\), והביטוי הזה מתפשט לו והופך ל:

\(\exp\left(\sum_{n=1}^{\infty}-a_{n}\log\left(1-x^{n}\right)\right)\)

הצעד הבא דורש קצת היכרות עם לוגריתם וזהות סטנדרטית (ושימושית מאוד) מאנליזה: \(\log\left(1-x\right)=-\sum_{n=1}^{\infty}\frac{x^{n}}{n}\). אחרי שימוש בה, מקבלים:

\(\exp\left(\sum_{n=1}^{\infty}a_{n}\sum_{k=1}^{\infty}\frac{\left(x^{n}\right)^{k}}{k}\right)\)

ועכשיו מגיע טריק סטנדרטי נוסף – שינוי סדר הסכימה:

\(\exp\left(\sum_{k=1}^{\infty}\frac{1}{k}\left(\sum_{n=1}^{\infty}a_{n}\left(x^{k}\right)^{n}\right)\right)\)

וכעת הפאנץ' – מהו \(\sum_{n=1}^{\infty}a_{n}\left(x^{k}\right)^{n}\)? ובכן, על פי ההגדרה ממש, זהו \(a\left(x^{k}\right)\). לכן קיבלנו:

\(\exp\left(\sum_{k=1}^{\infty}\frac{a\left(x^{k}\right)}{k}\right)\)

וזוהי הפונקציה היוצרת של \(\mbox{MS}\left(A\right)\).

כן, אמרתי שזה הולך להיות יותר משוגע בהמשך, כן? (עם זאת, זה עדיין חומר בסיסי למדי…)

כמובן, כאן צריך לתהות מה זה בכלל \(\exp\) ו-\(\log\) בהקשר של טורי חזקות פורמליים. כדאי לזכור ש-\(\exp\left(t\right)=\sum_{n=0}^{\infty}\frac{t^{n}}{n!}\) הוא משהו שאפשר לתת לו משמעות בכל הקשר שמאפשר דיבורים על סכומים אינסופיים ובו יש משמעות לחזקות של \(t\) וכפל שלו בסקלר. כך מגדירים לעתים אקספוננט של מטריצות, וכך אפשר להגדיר פה אקספוננט של טורי חזקות. אני מקווה שהרעיון ברור כי איני רוצה להרחיב על כך יותר.

בואו נעבור עכשיו לדבר על משהו שונה. ראינו שהפונקציה היוצרת לחלוקות היא \(\prod_{n=1}^{\infty}\frac{1}{1-x^{n}}\); זו לא צורה סגורה, וכבר אמרתי שעל נוסחה סגורה למספר החלוקות עצמן (ולא לפונקציה היוצרת) אין בכלל מה לדבר – אז מה יצא לנו מכל זה? איך הפונקציה היוצרת עוזרת לנו? ובכן, היא עוזרת לנו לחשב את מספר החלוקות בצורה יעילה בהרבה מכוח גס; וזה, אם חושבים על זה, מה שאנחנו רוצים גם בנוסחה סגורה.

אם נותנים לנו את \(n\), איך נגלה כמה חלוקות יש לו? הגישה הנאיבית אומרת שפשוט נתחיל לחלק אותו ונראה כמה תוצאות שונות נקבל. בצורה הזו זמן הריצה שלנו יהיה חסום מלמטה על ידי מספר החלוקות של \(n\) – ואפשר לגלות בסוד שהמספר הזה הוא אקספוננציאלי ב-\(n\) (ניתוח טוב מאוד של המספר הזה הוא אחת מהתוצאות של הארדי ורמנוג'אן). בקיצור, לא אלגוריתם טוב. אפשר להציע לו כמה שיפורים, אבל מה שאני הולך לתאר עכשיו הוא גישה שונה שנותנת תוצאות טובות בהרבה; נוסחת נסיגה פשוטה יחסית שמאפשרת לחשב את מספר החלוקות של \(n\) בהתבסס על כך שאנחנו כבר יודעים את מספר החלוקות של המספרים שקטנים ממנו.

בואו נשתמש בסימון \(P\left(x\right)=\prod_{n=1}^{\infty}\frac{1}{1-x^{n}}\) (P מלשון Partition – חלוקה), ונסמן ב-\(p_{n}\) את מספר החלוקות של \(n\). כעת ניקח את \(P\left(x\right)\) ונתעלל בה על ידי לקיחת מה שנקרא "נגזרת לוגריתמית" – זה שם מפוצץ לכך שאנחנו מפעילים לוגריתם על \(P\left(x\right)\) וגוזרים את הכל. מה שמקבלים מזה הוא את \(\frac{P^{\prime}\left(x\right)}{P\left(x\right)}\); באגף ימין אחרי הפעלת לוגריתם נקבל \(-\sum_{n=1}^{\infty}\log\left(1-x^{n}\right)\) ואחרי גזירה – \(\sum_{n=1}^{\infty}\frac{nx^{n-1}}{1-x^{n}}\). נכפול את שני האגפים ב-\(x\) וקיבלנו את השוויון:

\(x\frac{P^{\prime}\left(x\right)}{P\left(x\right)}=\sum_{n=1}^{\infty}\frac{nx^{n}}{1-x^{n}}\)

כעת נכפול ב-\(P\left(x\right)\) את שני האגפים, וקיבלנו \(xP^{\prime}\left(x\right)=P\left(x\right)\cdot\sum_{n=1}^{\infty}\frac{nx^{n}}{1-x^{n}}\). במבט ראשון הנוסחה הזו מעוררת בי רצון לפרוץ בבכי, אבל היא באמת לא נוראה עד כדי כך: אגף שמאל הוא \(\sum_{n=1}^{\infty}np_{n}x^{n}\) (למה? ובכן, \(P\left(x\right)=\sum_{n=0}^{\infty}p_{n}x^{n}\) – מה קורה כשגוזרים איבר-איבר וכופלים ב-\(x\)?). מה שהולך באגף ימין כואב קצת יותר, בכלל ה-\(\frac{1}{1-x^{n}}\) שיש שם. מה שצריך לעשות הוא להשתמש בזהות \(\frac{1}{1-x^{n}}=\sum_{k=0}^{\infty}x^{nk}\), ואז מקבלים שאגף ימין הוא

\(P\left(x\right)\cdot\sum_{n=1}^{\infty}n\left(\sum_{k=1}^{\infty}x^{nk}\right)=\sum_{k=1}^{\infty}\left(\sum_{n=1}^{\infty}nx^{nk}\right)\)

את הכפל הזה אפשר לבצע על פי חוקי הכפל הרגילים של טורי חזקות. אנחנו רוצים לדעת מהו המקדם של \(x^{n}\); אז לכל \(j\) מ-\(1\) ועד \(n\), נניח ש-\(P\left(x\right)\) תורם את האיבר \(p_{n-j}x^{n-j}\) למכפלה ונותר להבין מה המקדם של \(x^{j}\) בטור הימני. בכל פעם שבה \(x^{j}\) מתקבל זה באמצעות מכפלה מהצורה \(j=nk\), כלומר \(n\) מחלק את \(j\); ועבור \(n\) הזה הערך שנתרם לסכום של המקדם הוא בדיוק \(n\). השורה התחתונה – המקדם של \(j\) יהיה בדיוק \(\sigma\left(j\right)\) – סכום המחלקים של \(j\) (כולל \(j\) עצמו). זו פונקציה מוכרת וחשובה בזכות עצמה.

הבנתם משהו? קל מאוד ללכת לאיבוד כאן, אבל הנה השורה התחתונה?

\(np_{n}=\sum_{j=1}^{\infty}\sigma\left(j\right)p_{n-j}\)

זו נוסחה רקורסיבית שמאפשרת חישוב יעיל למדי של \(p_{n}\) (פורמלית, הסיבוכיות היא \(O\left(n^{2}\right)\) לחישוב כל הערכים \(p_{1},\dots,p_{n}\)). והנוסחה הזו (שלדעתי היא אלגנטית למדי) הופקה באמצעות הפונקציה היוצרת \(P\left(x\right)\); זו המחשה לסוג הדברים שאפשר להפיק מפונקציות יוצרות בעולם האמיתי (וכפי שאנו רואים, זה לא קל לעיכול מיידי – אף שאין כאן מתמטיקה מחוכמת במיוחד).

אני רוצה לעבור עכשיו לדבר על סוג אחר של פונקציות יוצרות – פונקציות יוצרות אקספוננציאליות. הפונקציות היוצרות ה"רגילות" שבהן השתמשנו עד כה תופסות היטב מבנים לא מסומנים. כך למשל בחלוקות, \(3=1+1+1\) אבל כל ה"1"-ים הללו זהים, ולכן \(1+2=3\) נספר רק פעם אחת ולא שלוש פעמים (אם היה לנו "1 ירוק", "1 אדום" ו"1 כחול" היינו צריכים לספור את \(1+2=3\) לכל אחד משלושת צבעי ה-1-ים הללו). אולי הדוגמה הפשוטה ביותר לבעיה שעוסקת באיברים מסומנים היא תמורה שלהם – סידור של \(n\) המספרים מ-1 ועד \(n\) בשורה. אולי התוצאה הבסיסית ביותר שנלמדת בקומבינטוריקה הוא שמספר הסידורים הוא \(n!\), כך שהפונקציה היוצרת המתאימה היא \(\sum_{n=0}^{\infty}n!x^{n}\). זו פונקציה יוצרת בעייתית למדי; אם מנסים לחשוב עליה כעל אובייקט אנליטי ולא רק פורמלי, אז לא משנה איזה ערך נציב ב-\(x\) (מתוך המרוכבים), הטור הזה יתכנס רק עבור \(x=0\). אז במקום להסתבך עם פונקציות כאלו, "מנרמלים".

פורמלית, הפונקציה היוצרת האקספוננציאלית של \(a_{n}\) היא \(\sum_{n=0}^{\infty}\frac{a_{n}}{n!}x^{n}\), כלומר מחלקים את המקדם ב-\(n!\). שינוי קטן, אבל מועיל. תחת ההגדרה הזו, הפונקציה היוצרת עבור תמורות היא \(\sum_{n=0}^{\infty}\frac{n!}{n!}x^{n}=\frac{1}{1-x}\).

כמו במקרה של פונקציות יוצרות רגילות, כך גם כאן פעולות אלגבריות על הפונקציות היוצרות הן בעלות משמעות קומבינטורית. חיבור הוא בעל משמעות של איחוד זר, כמקודם; אבל כפל הוא בעל משמעות קצת שונה, שהיא זו שמאפשרת לנו לחשוב על הפונקציות היוצרות האקספוננציאליות בתור ייצוגים טובים ל"מבנים מסומנים". מכפלה היא אוסף של זוגות, כמקודם, אבל כל זוג מתקבל כך: בהינתן \(x\in X\) ו-\(y\in Y\) שהאטומים שלהם מסומנים (נוח לחשוב על \(x,y\) תמיד בתור גרפים עם סימונים לצמתים), בונים מהם את כל הזוגות האפשריים \(\left(x^{\prime},y^{\prime}\right)\) שבהם יש סימון כלשהו שעונה לדרישה שאם מסתכלים רק על הסימונים של \(x^{\prime}\) הם איזומורפיים לאלו של \(x\) מבחינת הסדר ביניהם, וכך גם עבור \(y^{\prime}\) (בנוסף גם דורשים שהמספרים יהיו בטווח \(1,\dots,n\) כאשר \(n\) הוא הגודל הכולל של הזוג; אחרת יווצרו לנו אינסוף זוגות כך עבור \(\left(x,y\right)\)). גם זה מבלבל קצת במבט ראשון אבל לא יהיה קריטי בהמשך.

בואו נגדיר עוד פעולה אחת ואז ניתן דוגמת מחץ. אם \(A\) היא מחלקה, נגדיר \(\mbox{SET}\left(A\right)\) בתור אוסף כל תת הקבוצות הסופיות של איברים מ-\(A\) (אם \(A\) היא מחלקה של גרפים, אז \(\mbox{SET}\left(A\right)\) היא מחלקה של קבוצות סופיות של גרפים). זו פעולה קצת יותר פשוטה מאשר \(\mbox{MS}\) של המקרה הלא מסומן, כי במקרה הלא מסומן היה צריך להתמודד איכשהו עם "אותו איבר שמופיע כמה פעמים" וכאן, בגלל שלכל איבר יש סימון ייחודי, זה לא קורה.

אם נסמן ב-\(\mbox{SET}_{k}\left(A\right)\) את אוסף כל הקבוצות מגודל \(k\) של איברים ב-\(A\), את הפונקציה היוצרת של זה קל למצוא בעזרת הלהטוט הבא: אם נספור את כל הסדרות מגודל \(k\), זה יהיה בדיוק \(A^{k}\) (חזקה מוגדרת כמו קודם); מכיוון שאין חשיבות לסדר, ויש \(k!\) סידורים שונים לסדרה מאורך \(k\), נקבל שהפונקציה היוצרת המתאימה היא \(\frac{a^{k}\left(x\right)}{k!}\) (אם זה מהיר לכם מדי, תנסו להוכיח זאת לעצמכם). עכשיו אפשר לקבל את \(\mbox{SET}\left(A\right)\) מייד מכך ש-\(\mbox{SET}\left(A\right)=\bigcup_{k=0}^{\infty}A^{k}\): הפונקציה היוצרת תהיה בדיוק \(\sum_{k=0}^{\infty}\frac{a^{k}\left(x\right)}{k!}\), ואת זה מסמנים באופן קומפקטי בתור \(\exp\left(a\left(x\right)\right)\).

בואו נעבור סוף סוף לדוגמה שלטעמי היא מרשימה למדי – עצים מסומנים עם "שורש". שורש הוא פשוט צומת שנבדל מכל היתר בכך שפרט למספר שלו, הוא גם נקרא "שורש" (יש להבדלה הזו שימושים רבים שלא אכנס אליהם). נסמן ב-\(T\) את המחלקה וב-\(T\left(x\right)\) את הפונקציה היוצרת המתאימה. ב-\(A\) אסמן שוב, כמו בפוסט הקודם, מחלקה בעלת איבר בודד. אז הפאנץ' הוא ש-\(T\) מקיימת את המשוואה הבאה: \(T=A\times\mbox{SET}\left(T\right)\) (הכפל הוא על פי ההגדרה החדשה שנתתי).

למה? ובכן, ממה מורכב עץ סופי עם שורש? מהשורש (זה \(A\)), כשאליו מצורף מספר סופי כלשהו של עצים (כולם מסומנים) – זה \(\mbox{SET}\left(T\right)\). השימוש בקבוצה מבהיר שאין חשיבות ל"סדר" שבו תת העצים מחוברים אל השורש (להבדיל ממה שעשינו בפוסט הקודם). זה מניב את הנוסחה הבאה עבור הפונקציה היוצרת: \(T\left(x\right)=x\cdot e^{T\left(x\right)}\), ולכאורה נתקענו – אין דרך להגיע לייצוג סגור ל-\(T\left(x\right)\) מהנוסחה האלגנטית-אך-מוזרה הזו. אז האם צריך להתייאש?

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

נניח שיש לנו טור חזקות \(\phi\left(u\right)=\sum_{k=0}^{\infty}\phi_{k}u^{k}\), ונניח גם ש-\(\phi_{0}\ne0\), מה שמבטיח שקיים הופכי ל-\(\phi\). עכשיו, הבה ונתבונן במשוואה \(f\left(x\right)=x\phi\left(f\left(x\right)\right)\); קיים לה פתרון יחיד, \(f\left(x\right)=\sum_{n=1}^{\infty}a_{n}x^{n}\). לצורך נוחות הסימון, אני אשתמש ב-\(\left[x^{n}\right]f\left(x\right)\) כדי להגיד "המקדם של \(x^{n}\) ב-\(f\left(x\right)\) (כלומר, \(a_{n}\)) וכך גם עבור \(\phi\) אשתמש בסימון דומה. מה שנוסחת ההיפוך של לגראנז' נותנת לנו הוא המקדמים של \(f\left(x\right)\):

\(\left[x^{n}\right]f\left(x\right)=\frac{1}{n}\left[u^{n-1}\right]\phi\left(u\right)^{n}\).

לפני שתאבדו אותי סופית, נראה איך זה עוזר לנו במקרה של \(T\left(x\right)=xe^{T\left(x\right)}\). כאן בבירור \(\phi\left(u\right)=e^{u}\) וזו, למזלנו, פונקציה פשוטה למדי. לכן נקבל:

\(\left[x^{n}\right]T\left(x\right)=\frac{1}{n}\left[u^{n-1}\right]e^{un}=\frac{1}{n}\cdot\frac{n^{n-1}}{\left(n-1\right)!}=\frac{n^{n-1}}{n!}\)

זה המקדם של \(T\left(x\right)\); ומכיוון ש-\(T\left(x\right)\) הוא פונקציה יוצרת אקספוננציאלית, יש להכפיל את המקדם ב-\(n!\) כדי לקבל את המספר האמיתי – \(n^{n-1}\) הוא מספר העצים המסומנים עם שורש. מכיוון שיש \(n\) בחירות אפשריות לשורש, אז על ידי חלוקה ב-\(n\) אנו מקבלים ש-\(n^{n-2}\) הוא מספר העצים המסומנים בכלל – וזו תוצאה מפורסמת למדי בקומבינטוריקה – משפט קיילי. לתוצאה יש הוכחות קומבינטוריות מקסימות, אבל העובדה שהיא מתקבלת מיידית כמעט מכלים סטנדרטיים בפונקציות יוצרות היא מרשימה מאוד לדעתי. כמובן שהסיפור לא נגמר כאן ושלל של תוצאות בעלות אופי דומה למשפט קיילי יכול להתקבל גם כן בעזרת טכניקות דומות.

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

פונקציות יוצרות – והפעם ברצינות

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

נתחיל עם המה ולמה. פונקציות יוצרות הן מושג בקומבינטוריקה אנומרטיבית – הענף שבו מתעסקים בשאלת "כמה?". בעיה קומבינטורית ממוצעת היא זו: כמה דרכים יש להחזיר ל-\(n\) אנשים את המעיל שהם מסרו בתחילת המסיבה כך שאף אחד לא יקבל בחזרה את המעיל שלו? כמה דרכים יש לפרק את המספר \(n\) לסכום של מספרים טבעיים קטנים או שווים לו? כמה ססמאות מאורך \(n\) אפשר לבחור? וכו' וכו'.

שימו לב שלא שאלתי שאלה בסגנון "כמה תוצאות אפשריות יש בלוטו?". זה מחדד את מה שאנחנו מדברים עליו כאן – בעיית ספירה שתלויה בפרמטר. בכל הבעיות שתיארתי למעלה כיכב \(n\) בתור פרמטר שמאפיין את ה"גודל" של האובייקטים שאנחנו סופרים כרגע. אני שם את המילה "גודל" במרכאות כי הפירוש שלה יכול להשתנות מבעיה לבעיה; מה שחשוב כאן הוא שאנחנו סופרים את כמות האיברים במחלקה אינסופית של אובייקטים, נקרא לה \(A\), שבה לכל \(n\) יש רק מספר סופי של אובייקטים מגודל \(n\), והאתגר שלנו הוא למצוא את \(a_{n}\) – מספר האובייקטים ב-\(A\) שהם מגודל \(n\), לכל \(n\).

האופן שבו אנחנו חושבים בדרך כלל על פתרון לבעיה כמו זו הוא נוסחה סגורה עבור \(a_{n}\). נוסחה סגורה היא ביטוי אלגברי פשוט שנותן לנו את \(a_{n}\) כפונקציה כלשהי של \(n\), למשל \(a_{n}=\frac{n\left(n+1\right)}{2}\) או \(a_{n}=\frac{n!}{\left(n-3\right)!}\) הן נוסחאות סגורות. לרוע המזל, בקומבינטוריקה נוסחאות סגורות הן עניין נדיר למדי ולרוב פשוט לא ניתן למצוא כאלו. זו הבעיה הבסיסית. בעיית החלוקה שלעיל של \(n\) למספרים טבעיים היא דוגמה לבעיה שלא ידועה לה נוסחה סגורה; לא מזמן כתבתי פוסט בעניין. לפעמים הנוסחה הסגורה היא "מוזרה" קצת באופיה – למשל, לבעיה עם המעילים יש נוסחה סגורה פשוטה: \(a_{n}=\left[\frac{n!}{e}\right]\), כאשר הסוגריים המרובעים פירושם לעגל את \(\frac{n!}{e}\) למספר הטבעי הקרוב ביותר, ו-\(e\) הוא פשוט הקבוע המפורסם (איך מגיעים לנוסחה הזו? זה עוד תרגיל חביב בקומבינטוריקה שאדבר עליו בפעם אחרת), אבל בדרך כלל פשוט אין נוסחה כזו. לפעמים יש נוסחה אבל היא מסובכת להחריד וקשה להבין ממנה משהו, בעיקר כשרוצים פריט מידע שלא דורש לדעת את \(a_{n}\) בדיוק מוחלט – למשל, רק את סדר הגודל של \(a_{n}\).

אם כן, לפעמים צריך גישה שונה לגמרי לבעיות קומבינטוריות ופונקציות יוצרות מציעות גישה שונה לגמרי שכזו. בעוד שנוסחה סגורה עבור \(a_{n}\) מתארת איבר בודד בסדרה, פונקציה יוצרת היא דרך לתאר את כל הסדרה (האינסופית!) "בבת אחת".

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

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

בהינתן הסדרה \(a_{n}\) (כש-\(n\ge0\)), הפונקציה היוצרת שמתאימה לסדרה היא הביטוי \(\sum_{n=0}^{\infty}a_{n}x^{n}\). אני בכוונה כותב "ביטוי" ולא "פונקציה", כי על הדבר הזה לא חושבים בהכרח בתור פונקציה. פונקציה פירושה שמציבים ערכים בתוך \(x\), אבל אף אחד לא מבטיח לנו שאם נציב ערך בתוך \(x\) התוצאה שנקבל תתכנס (במובן של חשבון אינפיניטסימלי). מבחינתנו, לפחות כרגע, היצור הזה הוא ביטוי פורמלי בלבד.

טוב, זה נשמע די מטופש, חייבים להודות, אבל כדאי לזכור שבמתמטיקה גם פולינומים הם כאלו. למשל, היצור \(x^{2}+7x\) – אנחנו יכולים לחשוב עליו בתור פונקציה, אבל אז נאבד חלק מהמידע – מה בדיוק המקדמים של כל חזקה של \(x\) (ולפעמים זה אובדן של ממש; כך למשל בשדה סופי עם \(q\) איברים הפולינום \(x^{q}-x\) והפולינום \(0\) מגדירים בדיוק את אותה פונקציה, אבל כפולינומים הם שונים). החשיבות של פולינומים באלגברה היא אדירה – למשל, בניית שדות הרחבה מתוארת, פורמלית, כבניה של חוגי מנה של חוגי פולינומים. למעשה, יצורים מהצורה \(\sum_{n=0}^{\infty}a_{n}x^{n}\) הם הכללות טבעיות של פולינומים; גם על כל פולינום אפשר לחשוב כיצור מהצורה הזו, עבור סדרה שכולה אפסים החל ממקום מסויים. לביטוי \(\sum_{n=0}^{\infty}a_{n}x^{n}\) קוראים "טור חזקות פורמלי".

אחת הסיבות שבגללן פולינומים הם יצורים מעניינים היא שיש להם מבנה אלגברי מעניין – פעולות חיבור וכפל שהופכות אותם למה שנקרא חוג (שהוא, אה, קבוצה שעל אבריה מוגדרות פעולות חיבור וכפל; כמובן שיש כמה דרישות ספציפיות מהחיבור והכפל הללו). בפרט, כפל פולינומים הוא פעולה מעניינת מאוד, וכפל של טורי חזקות הוא הכללה טבעית שלו. אם יש לנו שני טורי חזקות, \(a\left(x\right)=\sum_{n=0}^{\infty}a_{n}x^{n}\) ו-\(b\left(x\right)=\sum_{n=0}^{\infty}b_{n}x^{n}\), אז אפשר להגדיר חיבור וכפל שלהם כך (אני אשתמש ב-\(c\left(x\right)=\sum_{n=0}^{\infty}c_{n}x^{n}\) בתור תוצר הפעולה):

\(c\left(x\right)=a\left(x\right)+b\left(x\right)\) אם \(c_{n}=a_{n}+b_{n}\); זהו חיבור טבעי "איבר איבר".

\(c\left(x\right)=a\left(x\right)\cdot b\left(x\right)\) אם \(c_{n}=\sum_{i=0}^{n}a_{i}b_{n-i}\). זה אותו הדבר עם כמו עם כפל פולינומים; נסו להסביר לעצמכם למה זו הגדרה נכונה והגיונית. אפשר לחשוב על הכפל הזה כך – אנחנו לוקחים את שתי הסדרות וכותבים אותן זו מעל זו, "הופכים" את הסדרה של ה-\(b_{n}\)-ים, מזיזים אותה קצת (\(n\) צעדים) ואז אנחנו מקבלים שיש רק איזור חפיפה מוגבל בין שתי הסדרות. אנחנו כופלים כל איבר בזה שמתחתיו, וסוכמים את הכל. לפעולה הזו קוראים קונבולוציה, והיא מופיעה באינספור תחומים מתמטיים. כפל פולינומים וטורי חזקות תופס אותה באופן טבעי.

מה שצריך לשים לב אליו כאן הוא שלמרות ששני טורי החזקות הם אינסופיים, כל מקדם \(c_{n}\) נקבע באמצעות כמות סופית של איברים, כלומר \(c\left(x\right)\) מוגדר היטב בלי להיכנס בכלל לשאלות של התכנסות של טורים אינסופיים. זה בדיוק מה שמאפשר לנו להישאר פורמליים מבלי לגלוש לאנליזה.

בואו נעבור לדוגמה – הסדרה \(1,1,1,\dots\). האם יש משהו (אינסופי) פשוט מזה? הפונקציה היוצרת המתאימה היא \(1+x+x^{2}+x^{3}+\dots=\frac{1}{1-x}\). איך הגעתי לכך שאגף שמאל שווה ל-\(\frac{1}{1-x}\) אתם שואלים? אה, בקלות – סכום של טור הנדסי! אבל, אתם צועקים עכשיו, טור הנדסי אינסופי מתכנס רק כש-\(\left|x\right|<1\), ובכלל מה הולך כאן, אמרת שלא מדברים על התכנסות!

כאן אני שולף שפן מהכובע, ואני מקווה שאני מפיל אסימון כלשהו למי שמכיר פונקציות יוצרות רק בערך – את השוויון \(\sum_{n=0}^{\infty}x^{n}=\frac{1}{1-x}\) אפשר להוכיח באופן הכי פורמלי שאפשר באמצעות ההגדרות שכבר נתתי, ובלי להשתמש כלל באנליזה! מה שאנחנו רוצים להראות הוא ש-\(1=\left(1-x\right)\cdot\sum_{n=0}^{\infty}x^{n}\). אם נחשוב על זה קצת, על \(1\) אפשר לחשוב כטור חזקות פורמלי (שמתאים לסדרה \(1,0,0,\dots\)) וגם על \(\left(1-x\right)\) אפשר לחשוב כטור חזקות פורמלי (שמתאים לסדרה \(1,-1,0,0,\dots\)) ולכן הטענה שבשוויון למעלה היא בעצם טענה פשוטה על כפל של טורי חזקות.

אם כן, הבה ונסמן \(\sum_{n=0}^{\infty}c_{n}=\left(1-x\right)\cdot\sum_{n=0}^{\infty}x^{n}\). מהו \(c_{0}\)? על פי הגדרה, \(c_{0}=a_{0}b_{0}=1\cdot1=1\). יופי, ומהו \(c_{1}\)? על פי הגדרה, \(c_{1}=a_{0}b_{1}+a_{1}b_{0}=1\cdot1-1\cdot1=0\). ומה יהיה \(c_{2}\)…?

קל לראות ש-\(c_{n}\), לכל \(n\ge1\), יהיה אפס, כי תמיד נקבל \(c_{n}=a_{0}b_{n}+a_{1}b_{n-1}\) (כל שאר ה-\(a_{i}\)-ים מתאפסים) ומכיוון שכל ה-\(b_{i}\)-ים הם תמיד 1 ו-\(a_{0}=1,a_{1}=-1\) נקבל תמיד אפס. מכאן שקיבלנו את השוויון \(\sum_{n=0}^{\infty}x^{n}=\frac{1}{1-x}\) בצורה הכי פורמלית שרק אפשר (כל עוד זוכרים לחשוב על ביטוי מהצורה \(\frac{1}{f\left(x\right)}\) בתור "הפונקציה ההופכית של \(f\left(x\right)\); זו שכשכופלים אותה ב-\(f\left(x\right)\) מקבלים 1"; זה תרגיל נחמד להראות שלטור חזקות כלשהו קיימת פונקציה הופכית אם ורק אם המקדם הראשון בו שונה מאפס).

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

נניח ש-\(A,B\) הם קבוצות של אובייקטים. \(a_{n}\) הוא מספר האובייקטים מגודל \(n\) ב-\(A\) ו-\(b_{n}\) הוא מספר האובייקטים מגודל \(n\) ב-\(B\), ו-\(a\left(x\right),b\left(x\right)\) הפונקציות היוצרות המתאימות. מה מתאר \(a\left(x\right)+b\left(x\right)\)? ובכן, את הפונקציה היוצרת של \(A\cup B\) (הקבוצה שמכילה את כל האיברים של \(A\) וגם את כל האיברים של \(B\)), בתנאי ש-\(A,B\) זרות, כלומר ללא איברים משותפים (כי אחרת איבר משותף היה מופיע רק פעם אחת ב-\(A\cup B\) אבל נספר פעמיים). בשביל שהסימונים יישארו פשוטים אני אסמן ב-\(A+B\) תמיד את האיחוד \(A\cup B\) תחת ההסכמה שאם יש ב-\(A,B\) איברים זהים, כל אחד מהם זוכה לאיזה סימון ייחודי שמבדיל אותו כך שהאיחוד הוא תמיד זר (תרגיל – איך עושים כזה תעלול פורמלית?)

ומה מתאר \(a\left(x\right)\cdot b\left(x\right)\)? או, עכשיו זה נהיה כיפי. הוא מתאר את \(A\times B\) – אוסף הזוגות של איבר מ-\(A\) ואיבר מ-\(B\), אבל יש טוויסט כלשהו – בעצם בנינו כאן סוג חדש של אובייקטים – אובייקטים שהם זוגות, ולכן צריך להגדיר עבורם מושג חדש של "גודל". ההגדרה מתבקשת: הגודל של האיבר \(\left(a,b\right)\), כש-\(a\in A\) ו-\(b\in B\) הם איברים כלשהם (ממש לא בהכרח מאותו הגודל) הוא פשוט הגודל של \(a\) ועוד הגודל של \(b\). לא קשה לראות ש-\(a\left(x\right)\cdot b\left(x\right)\) אכן מתאר את הפונקציה היוצרת של \(A\times B\) תחת ההגדרה הזו.

אפשר כמובן לכפול קבוצה בעצמה; נסמן ב-\(A^{n}\) את מה שמקבלים כשכופלים את \(A\) בעצמה \(n\) פעמים (כדי לא להסתבך יותר מדי פורמלית, חשבו על כך כעל סדרה של \(n\) איברים מתוך \(A\), והגודל של הסדרה הוא סכום הגדלים של אבריה). כמו כן לצרכי נוחות הסימון מגדירים את \(A^{0}\) בתור קבוצה שמכילה איבר בודד מגודל 0 שמסומן ב-\(\varepsilon\) – כל מטרת היצור הזה היא לפשט לנו את הסימונים אז אל תחפשו בו יותר מדי משמעות.

כעת נגדיר את הפעולה הבאה: \(A^{*}=\bigcup_{n=0}^{\infty}A^{n}\). דהיינו, \(A^{*}\) מכילה סדרות מכל גודל סופי שהוא של איברי \(A\). נניח ש-\(a\left(x\right)\) היא הפונקציה היוצרת של \(A\); אז הפונקציה היוצרת של \(A^{*}\) היא – הפתעה הפתעה – \(\frac{1}{1-a\left(x\right)}\). קרוב לודאי שחלקכם צועקים כרגע "הא! תפסנו אותך! מה אם \(a\left(x\right)=1\) ותו לא?" ואתם צודקים – הבניה \(A^{*}\) היא בעייתית אם \(A\) מכיל איבר כלשהו מגודל 0, שכן אז הדרישה שלנו שלכל \(n\) יהיה רק מספר סופי של איברים מגודל \(n\) הולכת לפח (למשל, אם \(\alpha\) הוא איבר ב-\(A\) מגודל 0, ו-\(\gamma\) הוא איבר מגודל \(n\), אז אינסוף איברים ב-\(A^{*}\) שכולם מגודל \(n\) הם כל האיברים מהצורה \(\left(\gamma,\alpha,\alpha,\dots\alpha\right)\)), לכן עבור קבוצות \(A\) שכאלו ממילא אין משמעות קומבינטורית סבירה ל-\(A^{*}\); אבל לכל קבוצה אחרת \(\frac{1}{1-a\left(x\right)}\) מוגדר היטב. למה זה מה שיוצא? ובכן, מכללי החיבור והכפל שכבר הראיתי ברור שהפונקציה היוצרת של \(A^{*}\) היא \(1+a\left(x\right)+a^{2}\left(x\right)+\dots=\frac{1}{1-a\left(x\right)}\).

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

נגדיר \(A=\left\{ 0,1\right\} \) כשהגודל של 0,1 הוא 1. מיידי לראות ש-\(A^{*}\) היא בדיוק המחלקה שאנחנו מעוניינים בה (\(\varepsilon\) מתפרש כאן כסדרה חסרת איברים). מה הפונקציה היוצרת של \(A\)? פשוט מאוד, \(a\left(x\right)=2x\) (שני איברים מגודל 1 ותו לא). מכאן שהפונקציה היוצרת שאנחנו רוצים היא \(\frac{1}{1-2x}\), סוף הסיפור. זו גם פונקציה יוצרת שקל לפתח חזרה לטור חזקות כדי לקבל נוסחה מפורשת למקדמים: \(\sum\left(2x\right)^{n}=\sum2^{n}x^{n}\), כלומר יש \(2^{n}\) סדרות בינאריות מאורך \(n\). כמובן, זה דבר שקל לדעת גם בשיטות קומבינטוריות אחרות, אבל קיבלנו את זה כאן בדרך חדשה ושונה לגמרי – בעצם, דרך שהיא חפה כמעט לחלוטין מטיעונים קומבינטוריים (טיעונים שמוחבאים אי שם בהוכחה של ההתאמה בין פעולות אלגבריות על פונקציות יוצרות ופעולות קומבינטוריות על המחלקות המתאימות).

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

תחת ההגדרה הזו צץ תיאור פשוט מאוד של עצים באופן רקורסיבי – "עץ" הוא זוג שכולל צומת יחיד וסדרה של אפס או יותר עצים (הצומת הוא האיבר הראשון בזוג והסדרה היא האיבר השני). אם נסמן ב-\(G\) את מחלקת העצים וב-\(A\) קבוצה שיש בה איבר בודד מגודל 1 (\(A=\left\{ \bullet\right\} \) – חשבו על \(\bullet\) בתור צומת), אז קיבלנו את המשוואה הבאה שמגדירה את \(G\):

\(G=A\times G^{*}\)

המשוואה הזו היא בסך הכל תיאור פורמלי של התיאור המילולי שנתתי למעלה (זוג שכולל את הצומת הבודד של \(A\) ואז סדרה של עצים – \(G^{*}\) היא בדיוק זה). כעת, אם \(g\left(x\right)\) היא הפונקציה היוצרת של \(G\) ו-\(a\left(x\right)=x\) היא הפונקציה היוצרת של \(A\), נקבל מייד ש-\(g=\frac{x}{1-g}\). זה מוביל למשוואה \(g-g^{2}=x\), או בניסוח טיפה שונה \(g^{2}-g+x=0\), ועל ידי נוסחת השורשים הרגילה נקבל \(g=\frac{1-\sqrt{1-4x}}{2}\).

כמובן שעולות מיד שתי שאלות. ראשית, נוסחת השורשים נותנת שני פתרונות; למה \(\frac{1+\sqrt{1-4x}}{2}\) אינו הפתרון ה"נכון"? ושנית, מה זה בכלל \(\sqrt{1-4x}\) בהקשר ה"פורמלי" שלנו? ובכן, זהו טור חזקות שכאשר כופלים אותו בעצמו מקבלים את \(1-4x\). האם הוא בהכרח קיים? כאן נחלצת לעזרתנו תוצאה מוכרת – ההכללה של הבינום של ניוטון לחזקות לא שלמות:

\(\left(1+y\right)^{\alpha}=1+\alpha y+\frac{\alpha\left(\alpha-1\right)}{2!}y^{2}+\dots\). האופן שבו מוכיחים את הנוסחה הזו הוא באמצעות אנליזה – מפתחים את הפונקציה \(\left(1+y\right)^{\alpha}\) לטור חזקות. אנחנו עובדים בעולם פורמלי ולא יכולים להשתמש בנימוקים הללו אבל זה לא מונע מהבינום של ניוטון להצביע על האופן שבו \(\sqrt{1+y}\) חייב להיראות, אם יש לו משמעות כטור חזקות: הוא חייב להיות \(1+\frac{1}{2}y-\frac{1}{8}y^{2}+\frac{1}{16}y^{3}-\frac{5}{128}y^{4}+\dots\) (יש גם צורה כללית סגורה לביטוי: \(\sqrt{1+y}=\sum_{n=0}^{\infty}\frac{\left(-1\right)^{n}\left(2n\right)!}{\left(1-2n\right)\left(n!\right)^{2}4^{n}}y^{n}\) – לא הכי יפה, חייבים להודות). אם טורחים לשבת ולכפול את טור החזקות הזה בעצמו, פורמלית, מקבלים את \(1+y\), כך שגם מבחינה פורמלית לחלוטין אין לנו בעיות עם שורשים פשוטים.

כעת, אם מציבים במקום \(y\) את \(-4x\) מקבלים \(1-2x-2x^{2}-4x^{3}-10x^{4}+\dots\). אם לזה היינו מוסיפים 1 ומחלקים ב-2, היינו מקבלים תוצאה לא קומבינטורית בעליל – טור חזקות שיש לו מקדמים שליליים, כך שהפתרון \(\frac{1+\sqrt{1-4x}}{2}\) אינו יכול להיות הפתרון המתאים לבעיה שלנו; הפתרון חייב להיות \(\frac{1-\sqrt{1-4x}}{2}\), שנותן לנו את הסדרה \(x+x^{2}+2x^{3}+5x^{4}+\dots\). אם נאזור אומץ ונציב \(y=-4x\) בנוסחה הכללית שתיארתי למעלה ונבצע את כל הפישוטים, נקבל שהפונקציה היוצרת היא \(\sum_{n=1}^{\infty}\frac{\left(2n\right)!}{2\left(2n-1\right)\left(n!\right)^{2}}x^{n}\). אפילו את זה אפשר לפשט עוד טיפה אם שמים לב לכך ש-

\(\frac{\left(2n\right)!}{2\left(2n-1\right)\left(n!\right)^{2}}=\frac{\left(2n\right)\cdot\left(2n-1\right)\cdot\left(2n-2\right)!}{2\left(2n-1\right)n^{2}\left(\left(n-1\right)!\right)^{2}}=\frac{1}{n}{2n-2 \choose n-1}\)

כלומר, בסופו של דבר \(g\left(x\right)=\sum_{n=1}^{\infty}\frac{1}{n}{2n-2 \choose n-1}x^{n}\). שימו לב לטכניקות הלא קומבינטוריות בעליל שהשתמשנו בהן כאן; הקומבינטוריקה נגמרה באבחנה הפשוטה (והיפה) לפיה \(G=A\times G^{*}\); מכאן זה היה תהליך אלגברי/אנליטי סטנדרטי לגמרי – קצת מלוכלך כשעושים אותו ביד בפעם הראשונה, אבל לא משהו רציני למי שכבר משופשף בעניינים הללו ובוודאי שלא בעיה למערכת אלגברה ממוחשבת שתפקידה להתמודד עם משוואות כאלו. בסופו של דבר הגענו אפילו לנוסחה סגורה: מספר העצים הוא \(\frac{1}{n}{2n-2 \choose n-1}\). עכשיו כבר אפשר לגלות את הסוד: המספרים \(C_{n}=\frac{1}{n+1}{2n \choose n}\) מוכרים מאוד בקומבינטוריקה ונקראים "מספרי קטלן"; מה שהוכחנו פה הוא שמספר העצים על \(n\) קודקודים הוא בדיוק מספר קטלן ה-\(n-1\) (למי שמכיר את מספרי קטלן אולי נופל פתאום אסימון; מספרי קטלן ניתנים להגדרה באמצעות נוסחת נסיגה שגם היא משתמשת בקונבולוציה).

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

משפט רמזי

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

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

אוקיי, ולמה כשיש שישה אנשים זה כן עובד? נתחיל שוב מצ'נדלר. יש לו חמישה חברים שמשתתפים במשחק, ולכן לפחות שלושה מהם שונאים אותו, או שלפחות שלושה מהם אוהבים אותו (הפעם זה לא בדיוק "או" מתמטי – במובהק רק אחת משתי האפשרויות תתרחש) – זו דוגמה נאה לשימוש בעקרון שובך היונים הכללי יותר שאומר שאם מחלקים \(n\) עצמים ל-\(m\) תאים יש בהכרח תא שמכיל לפחות \(\left\lceil \frac{n}{m}\right\rceil \) עצמים (הסימון הזה הוא לערך שלם עליון – המספר הטבעי הקרוב ביותר מלמעלה ל-\(\frac{n}{m}\)).

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

התרגיל הבא בתור הוא להראות שאם יש 9 אנשים, אז מובטח שתהיה שלישיית שונאים או רביעיית אוהבים (או לחילופין, תהיה שלישיית אוהבים או רביעיית שונאים – הסבירו לעצמכם למה זה לא אותו דבר כמו לומר שתהיה רביעיית אוהבים או רביעיית שונאים, מה שדורש כבר 18 אנשים), ונראה לי שהעיקרון כבר ברור. השאלה שאנו שואלים את עצמנו היא – האם זה תמיד עובד? האם לכל \(r,s\) קיים מספר חברים, שנסמן \(R\left(r,s\right)\), כך שבקבוצה עם לפחות \(R\left(r,s\right)\) אנשים מובטחת לנו קבוצה של \(r\) אוהבים או קבוצה של \(s\) שונאים? משפט רמזי אומר שהתשובה חיובית בכך שהוא נותן חסם עליון על \(R\left(r,s\right)\) לכל \(r,s\). מה שדיברנו עליו בתחילת הפוסט הוא בדיוק המקרה של \(R\left(3,3\right)\) וראינו כי \(R\left(3,3\right)=6\).

ההוכחה של המשפט היא באינדוקציה, ואינדוקציה קצת יותר מחוכמת מהרגיל במובן זה שהיא "דו ממדית". ראשית שמים לב לכך ש-\(R\left(1,s\right)=R\left(r,1\right)=1\) תמיד, באופן די טיפשי – קבוצה של אדם בודד היא תמיד קבוצה של אוהבים/שונאים "באופן ריק". למי שזה נשמע לו לא הגיוני בעליל, תחשבו על זה כך – קבוצת אנשים היא קבוצה של אוהבים או שונאים כל עוד לא הוכח אחרת; כדי להוכיח שקבוצה איננה קבוצת אוהבים צריך להביא זוג שונאים בתוכה, וכדי להוכיח שהיא לא קבוצת שונאים צריך להביא זוג אוהבים בתוכה. בקבוצה בעלת אדם אחד אי אפשר להביא זוג שכזה ממילא, ולכן הקבוצה נחשבת הן לקבוצת אוהבים והן לקבוצת שונאים בו זמנית. כן, זה מוזר וקשה לעיכול למדי למי שטרם נתקל בשיקולים שכאלו, אבל במתמטיקה הם נפוצים למדי ותקינים לחלוטין.

השלב הבא באינדוקציה הוא זה: אנחנו רוצים למצוא חסם עליון על \(R\left(r,s\right)\) בהינתן שאנחנו כבר יודעים חסמים עליונים על \(R\left(r-1,s\right)\) ו-\(R\left(r,s-1\right)\). החסם העליון יהיה פשוט למדי – נוכיח שמתקיים \(R\left(r,s\right)\le R\left(r-1,s\right)+R\left(r,s-1\right)\), וחסל.

אם כן, הבה ונתבונן על קבוצה בעלת \(R\left(r,s\right)\) אנשים. ניקח איש אחד, נקרא לו צ'נדלר, ונחלק את שאר האנשים לשתי קבוצות – חברי צ'נדר ואויבי צ'נדלר. אני מניח שאתם מבינים לאן אני הולך – הפתרון של המקרה הכללי יהיה הכללה פשוטה של המקרה של \(R\left(3,3\right)\). מה שאנחנו רוצים לראות הוא שיש לצ'נדלר מספיק חברים או מספיק אויבים כדי להפעיל אחת מהנחות האינדוקציה.

אם לצ'נדלר יש לפחות \(R\left(r-1,s\right)\) חברים, סיימנו – בקבוצה הזו או שיש \(s\) אויבים (ואז סיימנו) או שיש בה \(r-1\) חברים ואז יחד עם צ'נדלר נקבל קבוצה של \(r\) חברים וסיימנו. בדומה, אם יש לו לפחות \(R\left(r,s-1\right)\) אויבים סיימנו באותו האופן. למה לא ייתכן שאין לו לא מספיק חברים ולא מספיק אויבים?

כדי לא להתבלבל נכניס עוד כמה סימונים למשחק. \(A\) יהיה מספר החברים של צ'נדלר, \(B\) יהיה מספר האויבים שלנו, וראינו ש-\(A+B+1=R\left(r-1,s\right)+R\left(r,s-1\right)\) (הפלוס 1 הוא כי גם את צ'נדלר סופרים). אז אם \(A<R\left(r-1,s\right)\) וגם \(B<R\left(r,s-1\right)\) זה אומר ש-\(A+B\le R\left(r-1,s\right)+R\left(r,s-1\right)-2\), כלומר שלא ייתכן ש-\(A+B+1=R\left(r-1,s\right)+R\left(r,s-1\right)\) (למי שעדיין לא רואה את זה, \(a<b\) שקול לאמירה ש-\(a\le b-1\) אם \(a,b\) הם טבעיים; זו אבחנה מועילה מאוד לעתים).

זה מסיים את ההוכחה; עוד הרחבה לא מסובכת מטפלת במקרה יותר כללי, שבו זוג אנשים יכול להיות יותר מסתם חברים או אויבים, אלא יש \(s\) סוגים שונים אפשריים של קשרים ביניהם – ושוב, אפשר להראות שלכל סדרת מספרים \(r_{1},r_{1},\dots,r_{s}\) קיימת כמות אנשים שהחל ממנה, מובטח שעבור \(i\) כלשהו יש קבוצה של \(r_{i}\) אנשים שהקשרים ביניהם הם רק מסוג \(i\). בניסוח אינטואיטיבי יותר ופחות פורמלי – במבנים גדולים מספיק חייבות לצוץ תבניות מסויימות (זה, על רגל אחת, הרעיון של תורת רמזי; משפט רמזי מטפל בסוג ספציפי של תבניות – בלשון מתמטית, הוא מטפל בתת-גרפים מונוכרומטיים של גרף עם קשתות צבועות).

לסיום, הנה שאלה קטנה וחביבה. ראינו ש-\(R\left(3,3\right)=6\), כלומר שאם יש 6 אנשים מובטחת לנו שלישיית חברים או שלישיית שונאים, וש-5 אנשים אינם מספיקים. אפשר להראות גם ש-\(R\left(4,4\right)=18\). אם כן, מהו \(R\left(5,5\right)\)?

באופן מפתיע למדי, ממבט ראשון, התשובה אינה ידועה עד היום. משפט רמזי אמנם נותן חסם עליון פשוט על \(R\left(5,5\right)\), אבל לא עוזר למצוא את הערך המדויק שלו. בדי עמל הצליחו המתמטיקאים להראות ש-\(43\le R\left(5,5\right)\le49\), אבל זהו זה. הרי לכם בעיה פתוחה במתמטיקה שתיאוריה הוא אלמנטרי דיו כדי להיות מוסבר בפוסט קצר. אתם עשויים לתהות מה הקושי הגדול כל כך – האם לא ניתן לגייס מחשבים לעבודה ולעשות חיפוש ממצה כלשהו? נאמר, ניקח את כל הקבוצות האפשריות של יחסי אהבה/שנאה על 43 אנשים ונבדוק לכל אחת… כן, ובכן, תשכחו מזה. אם יש לנו 43 אנשים אז יש לנו \(\frac{43\cdot42}{2}=903\) זוגות בסך הכל. לכל אחד מהם אנחנו יכולים לבחור, באופן בלתי תלוי באחרים, ביחס אהבה/שנאה, כך שיש לנו כבר \(2^{903}\) קבוצות אפשריות. המספר \(2^{903}\) הוא גדול. ממש, ממש גדול. כמה גדול? גדול להחריד גם בהשוואה למספרים הגדולים שדיברתי עליהם בפוסט הזה. אז חיפוש ממצה הוא כיוון אבוד לחלוטין; הכרחי יהיה לעשות הרבה עבודת הכנה מתמטית תיאורטית כדי שתהיה תקווה להריץ איזה חיפוש מחשב שגם יתן את התוצאה הנכונה. ונניח שנצליח, האתגר הבא יהיה מציאת \(R\left(6,6\right)\). כדי להבין עד כמה הקפיצה הזו בקושי בין \(R\left(5,5\right)\) ו-\(R\left(6,6\right)\) תהיה משמעותית כדאי לתת את הבמה לרגע לג'ואל ספנסר שמצטט את ארדש:

Erdős asks us to imagine an alien force, vastly more powerful than us, landing on Earth and demanding the value of R(5,5) or they will destroy our planet. In that case, he claims, we should marshal all our computers and all our mathematicians and attempt to find the value. But suppose, instead, that they ask for R(6,6). In that case, he believes, we should attempt to destroy the aliens.

הציטוט הנפלא הזה לבדו שווה את כל הפוסט.

חלוקות וההשערה של רמנוג'אן

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

נתחיל מזה שהכותרת הבומבסטית לא שגויה לחלוטין – אכן, עושה רושם שנתקבלה תשובה כלשהי לתעלומה בת מאה שנים לערך. הכוכבת של התעלומה הזו היא מה שנקרא "פונקציית החלוקה", \(p\left(n\right)\). פונקציית החלוקה מתאימה לכל מספר טבעי \(n\) את מספר הדרכים שבהן ניתן לתאר אותו כסכום של מספרים טבעיים, בלי חשיבות לסדר שבו הם מופיעים. למשל, את 3 אפשר לתאר גם בתור 3 (סכום שמכיל רק איבר אחד – המספר הטבעי 3), וגם בתור \(1+1+1\), וגם בתור \(1+2\) וגם בתור \(2+1\) אבל שתי החלוקות האחרונות הן אותו הדבר עד כדי שינוי הסדר שבו האיברים מופיעים ולכן הם נספרים פעם אחת. לכן \(p\left(3\right)=3\).

עבור מספרים גדולים יותר חופש הפעולה שלנו גדול יותר ומתקבלות הרבה יותר חלוקות; למשל, עבור \(5\) כבר יש לנו 7 חלוקות:

\(5=1+1+1+1+1=1+1+1+2=1+2+2=2+3=1+1+3=1+4\)

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

פונקצית החלוקה מגדירה סדרה של מספרים טבעיים, \(p\left(0\right),p\left(1\right),p\left(2\right),\dots\). הסדרה הזו נראית כך:

\(1,1,2,3,5,7,11,15,22,30,42,56,77,\dots\)

(היי! 42 בפנים!)

מה שמתמטיקאים אוהבים לעשות עם סדרות שכאלו באופן כללי הוא לגלות את החוקיות בהן. סטודנטים לקומבינטוריקה מקבלים לפעמים רושם שגוי לפיו לבעיות קומבינטוריות אמור להיות פתרון שהוא "נוסחה סגורה" – כלומר, נוסחה קצרה ופשוטה ועם פעולות אלמנטריות בלבד שמערבת את \(n\) ומחזירה בדיוק את המספר שאנו מחפשים. הנוסחה \({n \choose k}=\frac{n!}{k!\left(n-k\right)!}\) שמתארת את מספר האפשרויות לבחור \(k\) מתוך \(n\) אובייקטים ללא חשיבות לסדר היא דוגמה נאה לנוסחה סגורה שכזו. גם \(2^{n-1}\) היא נוסחה סגורה נאה למספר החלוקות של \(n\) שבהן יש חשיבות לסדר (תרגיל: הוכיחו את הנוסחה הזו!)

למרבה הצער, ל-\(p\left(n\right)\) אין אף נוסחה סגורה פשוטה. זה לא מקרה חריג; זה מקרה נפוץ ביותר בקומבינטוריקה "אמיתית". המתמטיקאי לסלו לובאס (László Lovász) פותח את ספרו Combinatorial problems and exercises בשורה

There is no rule which says that enumeration problems, even the simplest ones, must have solutions expressible as closed formulas.

אני טורח ומציין זאת במפורש כדי לשבור במעט את הרושם השגוי שעשוי להתקבל ממבט חטוף בלבד בקומבינטוריקה – מבט שבו רואים רק את אותן בעיות שכן נפתרות באופן יפה, ובכך לרכך קצת את התמיהה על כך של-\(p\left(n\right)\) אין נוסחה מפורשת יפה למרות שהיא כל כך פשוטה.

כמובן, השאלה הבאה היא איך אני יודע שאין לה נוסחה כזו והיא פשוט טרם נמצאה. ובכן, קצת מביך לומר, אבל אני לא יודע את זה. אני אפילו לא בטוח מה ייחשב "נוסחה פשוטה" בעיני הקורא. יש נוסחאות שדי קל לפסול – למשל, אם \(p\left(n\right)\) הייתה פולינום מדרגה נמוכה היה קל למצוא אותו על ידי אינטרפולציה (בהינתן פולינום מדרגה \(d\) ו-\(d+1\) ערכים שונים שלו אפשר למצוא את הפולינום במדויק). גם נוסחאות נסיגה לינאריות פשוטות אפשר למצוא אם יש לנו מספיק איברים מהסדרה, ויש עוד תעלולים שלא אכנס אליהם כרגע. כך שאם הנוסחה של \(p\left(n\right)\) הייתה ממש פשוטה, כבר היו מוצאים אותה. אבל הוכחה כללית יותר אני לא מסוגל לתת.

כל זה כמובן לא אומר שלא יודעים כלום על \(p\left(n\right)\). התוצאה הראשונה שמוזכרת בכל ספר לימוד הוא הפונקציה היוצרת הנאה של \(p\left(n\right)\): \(\sum_{n=0}^{\infty}p\left(n\right)x^{n}=\prod_{k=1}^{\infty}\left(\frac{1}{1-x^{k}}\right)\). למי שזה לא אומר לו כלום – לא נורא, לא נשתמש בפונקציה היוצרת כאן, היא פה רק כקוריוז לסקרנים (ואתגר: הוכיחו שזו אכן הפונקציה היוצרת!)

אבל הפונקציה היוצרת לא נותנת לנו הערכה של הגודל של \(p\left(n\right)\) עבור \(n\) נתון. הערכה כזו הוכחה לראשונה בידי הארדי ורמנוג'אן בשנת 1918:

\(p\left(n\right)\sim\frac{1}{4n\sqrt{3}}e^{\pi\sqrt{\frac{2n}{3}}}\)

וזו ההזדמנות לספר משהו על הצמד המוזר הזה, הארדי-רמנוג'אן. הארדי היה מתמטיקאי בריטי מפורסם שפעל בתחילת המאה ה-20. הספר שכתב עם Wright עדיין נחשב לאחד מספרי המבוא הטובים ביותר לתורת המספרים הקיימים ואני בהחלט ממליץ עליו לכל קורא של הבלוג. הארדי גם ידוע בזכות הספרון שלו, "A Mathematician's Apology" (לא, זו לא התנצלות), שהוא אחד מהתיאורים הטובים ביותר שקראתי של "מה עובר בראש של מתמטיקאי" (ובנוסף, מכיל גם את הבעת האושר של הארדי על כך שלתחום העיסוק שלו – תורת המספרים – לא נמצא שום שימוש מעשי והבעת תקווה שכך יהיה לנצח. ארבעים שנה לאחר מכן הפכה תורת המספרים לכלי חשוב בקריפטוגרפיה).

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

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

The limitations of his knowledge were as startling as its profundity. Here was a man who could work out modular equations and theorems… to orders unheard of, whose mastery of continued fractions was… beyond that of any mathematician in the world, who had found for himself the functional equation of the zeta function and the dominant terms of many of the most famous problems in the analytic theory of numbers; and yet he had never heard of a doubly periodic function or of Cauchy's theorem, and had indeed but the vaguest idea of what a function of a complex variable was…

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

רמנוג'אן כתב למתמטיקאים בריטים, וכפי שבדרך כלל קורה בדברים כאלו, רובם פשוט לא הבינו אותו ומה הוא רוצה. הוא הפציץ אותם בנוסחאות מטורפות לחלוטין וללא הוכחות כלל. לבסוף הוא כתב גם להארדי. הארדי בהתחלה חשב שמדובר ברמאות – חלק מהנוסחאות היו מוכרות לו, וחלק נראו הזויות לחלוטין. עם זאת, הוא השתכנע שכנראה יש בהן משהו ופתח בהתכתבות עם רמנוג'אן, ששיאה בבואו של רמנוג'אן לאנגליה ועבודה משותפת עם הארדי במשך כחמש שנים, בהן הוכיחו יחד השניים רבים ממשפטיו של רמנוג'אן. כאשר הארדי נשאל מה הייתה תרומתו הגדולה ביותר למתמטיקה הוא ענה "גילויו של רמנוג'אן", ואת התרשמותו ממנו ניתן לראות בכך שב"דירוג מתמטיקאים" שהוא המציא פעם הוא נתן לעצמו 25, להילברט (אחד מגדולי המתמטיקאים של תקופתו, ומתמטיקאי שנחשב כבעל ידע בכל תחום אפשרי של המתמטיקה) נתן 80 ולרמנוג'אן נתן 100.

אבל תקופת העבודה המשותפת שלהם יחד הייתה קצרה למדי – רק חמש שנים, שלאחריהן רמנוג'אן שב להודו. בריאותו התרופפה באנגליה והוא לא אהב את החיים שם, אך גם החזרה להודו לא סייעה לו והוא מת שם ממחלה בגיל 32, ובכך הצטרף למועדון המכובד של גאונים מתמטיים שמתים בגיל צעיר להחריד יחד עם אבל (מת משחפת בגיל 27), אייזנשטיין (מת גם כן משחפת, בגיל 29) וגלואה (מת בדו קרב מיותר ומטופש בגיל 20). רק כדי לאזן את הכף ולהיות קצת אופטימיים כדאי להזכיר כאן כמה מתמטיקאים גאונים שנפטרו בשיבה טובה ואחרי שהמשיכו בעבודתם פחות או יותר עד להיום האחרון – למשל גאוס, אוילר וארדש.

טוב, מספיק עם הסקירה ההיסטורית, בואו נדבר על מה שרמנוג'אן עשה. כבר אמרתי שהוא גילה איכשהו את הנוסחה \(p\left(n\right)\sim\frac{1}{4n\sqrt{3}}e^{\pi\sqrt{\frac{2n}{3}}}\), אבל לא על זה מדברים בכתבה של Ynet אלא על תגלית אחרת שלו הקשורה לפונקציה הזו (היו לו כמה וכמה) – נוסחאות שניתן לתאר באופן הבא:

\(p\left(5k+4\right)\equiv0\left(\mbox{mod 5}\right)\)

\(p\left(7k+5\right)\equiv0\left(\mbox{mod 7}\right)\)

\(p\left(11k+6\right)\equiv0\left(\mbox{mod 11}\right)\)

מה זה אומר? ובכן, \(5k+4\) בא לייצג את סדרת המספרים \(5,9,14,19,24,\ldots\) שמתקבלת כאשר מציבים מספר טבעי ב-\(k\). דרך אחרת לנסח את זה היא בתור "מספר כלשהו שכאשר מחלקים אותו ב-5 מקבלים שארית 4". בדומה, \(7k+5\) מייצג כל מספר טבעי שהוא שכאשר מחלקים אותו ב-7 מקבלים 5, וכדומה.

ה-\(\equiv0\left(\mbox{mod 5}\right)\) מייצג, במקרה זה, את הטענה "מתחלק ב-5". למה לכתוב את זה כל כך מסובך? כי לסימון \(a\equiv b\left(\mbox{mod n}\right)\) יש משמעות כללית יותר שאותה רוב המתמטיקאים מכירים, ונוח להשתמש בסימון הזה גם למטרה זו, וגם נראה הרבה משוואות כאלו בהמשך הפוסט. פורמלית, המשמעות של \(a\equiv b\left(\mbox{mod n}\right)\) היא "\(a-b\) מתחלק ב-\(n\)", או בניסוח שקול – "כאשר מחלקים את \(a\) ב-\(n\) מתקבלת אותה שארית כמו זו שמתקבלת כאשר מחלקים את \(b\) ב-\(n\)".

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

רמנוג'אן גם הוסיף את ההערה "נראה כי אין תכונות פשוטות דומות עבור אף מודולוס ראשוני פרט לאלו" (מודולוס הוא מה שמופיע אחרי ה-\(\mbox{mod}\) – מה שבודקים את החלוקה בו). ההערה הזו נותרה תעלומה זמן רב – לא ברור כיצד ניתן בדיוק לנסח אותה באופן מתמטי, ואפשר רק לסמוך על האינטואיציה של רמנוג'אן – והכתבה ב-Ynet עוסקת במאמר שבין היתר מציע לה הסבר מסויים.

שנים אחרי רמנוג'אן הצליח המתמטיקאי אטקין למצוא משוואות מודולריות נוספות באותה רוח. למשל:

\(p\left(1977147619k+815655\right)\equiv0\left(\mbox{mod 19}\right)\)

ברור כי המשוואה הזו דומה לקודמות שהצגתי, אבל גם ברור שהיא אינה פשוטה כמוה, בגלל שהמודולוס 19 אינו מופיע בתור המקדם של \(k\) באגף שמאל, אלא מספר מסובך יותר.

זה אומר, לצערי, שיש בכתבה ב-Ynet טעות: הטענה שלהם ש-

במילים אחרות, לא קיימת שום סדרת \(p\left(n\right)\)-ים שכל אבריה מתחלקים ב-13, ב-17, ב-19 וכן הלאה. בשנים שחלפו מאז, הוכיחו חוקרים שרמנוג'אן צדק בנוגע לחזקות של 5, 7 ו-11.

איננה נכונה, והמשוואה לעיל מראה את זה. הפירוש המדויק של דברי רמנוג'אן הוא יותר עדין – ככל הנראה מה שאני ציינתי למעלה, על כך שהמודולוס צריך להיות גם המקדם של \(k\) (אבל אולי גם אני טועה).

רמנוג'אן לא הסתפק במשוואות שלעיל, הוא גם שיער משוואה שאפתנית הרבה יותר עבור מספרים שמורכבים מאותם שלושה ראשוניי קסם, 5,7,11. הנוסחה הייתה כדלהלן: אם \(\delta=5^{a}7^{b}11^{c}\), כלומר מספר כלשהו שמורכב משלושת ראשוניי הקסם, וכמו כן \(\lambda\) הוא מספר טבעי המקיים \(24\lambda\equiv1\left(\mbox{mod }\delta\right)\), אז

\(p\left(\delta k+\lambda\right)\equiv0\left(\mbox{mod }\delta\right)\)

המשוואה הזו מכלילה את קודמותיה; למשל, עבור \(\delta=11\) (שניתן לכתוב כ-\(5^{0}7^{0}11^{1}\)) ו-\(\lambda=6\) אנו מקבלים ש-\(24\lambda=144\equiv1\left(\mbox{mod }11\right)\) (שכן \(144-1=143\) ו-\(143=11\cdot13\)), ולכן מקבלים את המשוואה \(p\left(11k+6\right)\equiv0\left(\mbox{mod }6\right)\). המשוואה החדשה הזו של רמנוג'אן אלגנטית ונפלאה ולכן מאוד מצער לגלות שהיא לא נכונה. רמנוג'אן המסכן שיער את השערתו על בסיס בחינת 200 הערכים הראשונים של \(p\left(n\right)\) – כנראה טבלה מקיפה יותר לא הייתה זמינה אז (אילו רק היה רמנוג'אן חי בעידן המחשבים!). שנים לאחר מכן, לאחר שהטבלה הורחבה וכללה 300 ערכים, התגלה כי \(p\left(243\right)\) הוא דוגמה נגדית להשערה של רמנוג'אן – הוא לא התחלק ב-\(7^{3}\) אף על פי ש-\(24\cdot243\equiv1\left(7^{3}\right)\). מסתבר שהבעיה היא רק בראשוני הסורר 7, והיא ניתנת לתיקון פשוט יחסית: \(p\left(\delta k+\lambda\right)\equiv0\left(\mbox{mod }\delta^{\prime}\right)\) כאשר \(\delta^{\prime}\) מתקבל מ-\(\delta\) על ידי שינוי החזקה של 7 בתוך \(\delta\) במקרה שבו חזקה זו היא גדולה מ-0: אם \(b\) היא החזקה המקורית, החזקה החדשה תהיה \(b^{\prime}=\left\lfloor b/2\right\rfloor +1\) (במילים: קחו את \(b\), תחלקו ב-2, תעגלו כלפי מטה ותוסיפו 1 לתוצאה). כבר אמרתי שבמתמטיקה תוצאות "יפות" מושלמות לא תמיד קיימות? אז הנה דוגמה שהפילה אפילו את רמנוג'אן האדיר – מאיפה תיקון מעצבן שכזה חייב לצוץ ולמה דווקא ב-7, אין לי מושג.

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

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

בואו נעבור לתאר את אחת מהתוצאות של המשפט, לה הם קוראים משפט 1.1. בפשטות, הם אומרים שעבור ראשוניים שגדולים מאותם 5,7,11 הקסומים אבל קטנים או שווים ל-31 מתקיימות משוואות מודולריות דומות לאלו של רמנוג'אן, פרט לכך שבאגף ימין של המשוואה אין אפס, אלא מעין "עותק קטן יותר" של אגף שמאל. למה הכוונה? הנה משוואה לדוגמה:

\(p\left(13^{3}n+1007\right)\equiv6\cdot p\left(13n+6\right)\left(\mbox{mod 13}\right)\)

זו משוואה עבור הראשוני 13. היא אומרת שמודולו 13, יש סדרה של ערכים של \(p\left(n\right)\) עם הפרש של \(13^{3}\), שנראית בדיוק כמו סדרת ערכים מסויימת של \(p\left(n\right)\) עם הפרש של 13, כאשר אותה סדרת ערכים מוכפלת ב-6. אתם מוזמנים לעשות את החישוב, זה עובד.

הטענה הכללית יותר מנוסחת באופן קצת יותר מסורבל ועמוס הנחות, אבל ככה זה – כאמור, אל תצפו שהכל יהיה נוסחאות נוצצות ופשוטות. אצטט אותה מהמאמר: עבור ראשוניים \(5\le l\le31\) (למה \(l\) ולא \(p\), שבדרך כלל מסמן ראשוני? ובכן, כי \(p\) מסמן את פונקציית החלוקה ואנחנו לא רוצים להתבלבל) וחזקה \(m\ge1\) מתקיים שאם \(b_{1}\equiv b_{2}\left(\mbox{mod }2\right)\) עבור טבעיים \(b_{2}>b_{1}\ge2m-1\) אז עבור מספר \(A\) מסויים שתלוי ב-\(l,b_{1},b_{2},m\) מתקיימת המשוואה

\(p\left(\frac{l^{b_{2}}k+1}{24}\right)\equiv A\cdot p\left(\frac{l^{b_{1}}k+1}{24}\right)\left(\mbox{mod }l^{m}\right)\), לכל \(k\) טבעי שעבורו השבר יוצא מספר שלם (אין משמעות לפונקצית החלוקה על שברים…)

בדוגמה שלעיל \(b_{2}=3\) ו-\(b_{1}=1\) ו-\(m=1\) ו-\(l=13\), ואז יוצא ש-\(A=6\). תרגיל למתקדמים: נסו להבין כיצד ה-1007 וה-6 נובעים מהדרישה שלנו להצטמצם למקרים שבהם החלוקה ב-24 אינה מניבה שבר.

כעת אני מקווה שקצת יותר ברורות הפסקאות הבאות של המאמר:

הנוסחאות האלה אינן "פשוטות" – כלומר הן אינן מראות שה- \(p\left(n\right)\)-ים מתחלקים בחזקות של 13; תחת זאת, הן מקשרות בין השאריות של פעולות חילוק כאלה.

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

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

ההערה של רמנוג'אן על כך שאין נוסחאות פשוטות דומות עבור ראשוניים גדולים מ-11 באה לידי ביטוי במאמר שאותו \(A\) במשפט שלעיל יהיה 0 כאשר הראשוני הוא 5,7 או 11, אבל יהיה שונה מ-0 עבור ראשוניים גדולים יותר. המאמר גם נכנס להסבר עמוק יותר של הסיבה לכך אבל אני לא מבין כלום – וגם את מה שאני מבין, אני לא מבין איך להסביר.

אם כן, נעבור הלאה אל סוף המאמר ב-Ynet, בו אומרים כי

בתוצאה נפרדת שגם היא הוכרזה בינואר, תיארו אונו ושותף אחר שלו את הנוסחה הראשונה שמחשבת את \(p\left(n\right)\) לכל n, מבצע שחמק מתיאורטיקנים של תורת המספרים במשך מאות שנים.

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

\(p\left(n\right)=\frac{1}{24n-1}\cdot\mbox{Tr}\left(n\right)\)

טוב, זה לא אומר כלום, נכון? מהו \(\mbox{Tr}\left(n\right)\)? המאמר מגדיר אותו כ-\(\sum_{Q\in Q_{n}}P\left(\alpha_{Q}\right)\), אבל מי שינסה להבין את זה בלי הרקע המתאים עוד יותר יצא מדעתו – אני לא אנסה לתת הסבר שאני חצי מבין כאן. השורה התחתונה מבחינתנו היא שמדובר על סכום סופי (ותלוי ב-\(n\)) של מספרים אלגבריים – כלומר, מספרים מרוכבים שקיים פולינום במקדמים רציונליים שמאפס אותם. זה שיפור ביחס לנוסחה הטובה ביותר שהייתה ידועה עד היום, שעירבה סכומים אינסופיים; אבל האם זה באמת משפר את יכולת החישוב שלנו ביחס לאלגוריתמים שיש היום (ואינם רעים עד כדי כך)? לא יודע, אבל נראה לי שלא; לא הצלחתי למצוא ניתוח סיבוכיות במאמר. והאם הנוסחה היא "פשוטה"? כנראה לא באופן שחשבתם שהיא תהיה. אני לא אומר זאת כדי להמעיט מגודל ההישג, חלילה; רק כדי למנוע יצירת רושם שגוי לגביו.

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

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

השיא הוא בטוקבק הבא:

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

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

נוסחה מפורשת למציאה של מספר החלוקות של המספר N+1 בהינתן מספר החלוקות של N, או בהינתן המספר הראשוני P למצוא את הראשוני הראשון Q כך שQ גדול מP, וכו' – ישפרו קודם כל את סיבוכיות זמן הריצה של אלגוריתמי קידוד והצפנה, ו"על הדרך" גם יוכיחו שיש בעיות NP-קשות שיש להן אלגוריתם פתרון פולינומי, וזה כבר פתרון ל "שאלת מיליון הדולר" P=NP שיהיה מפתח לכמות בלתי נתפסת של שינויים בתחומי המתמטיקה, מדעי המחשב והמדע באופן כללי.

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

אז כמה הבהרות פשוטות:

  1. קיים אלגוריתם יעיל מאוד (מילר-רבין) לבדיקת ראשוניות, גם של ראשוניים בני מאות ספרות. אז בדיקה האם מספר הוא ראשוני – בעיה זו פתורה. בהינתן מספר, למצוא את הראשוני הקטן ביותר שגדול ממנו – גם זו לא ממש בעיה (פשוט בודקים אחד אחד את הבאים אחריו). אלו לא מהבעיות המרכזיות במתמטיקה ובמדעי המחשב היום. וכן, מילר-רבין הסתברותי, ויש גם אלגוריתמים לא הסתברותיים, פרקטיים פחות אבל לא יותר מדי פחות. מה שהיא כן בעיה פתוחה חשובה היא בעיית הפירוק לגורמים של מספר; זה ממש לא אותו דבר.
  2. אמנם, מספר שלא קיימת לו חלוקה בה כל המחלקים שווים ושונים מ-1 הוא ראשוני, אבל אני לא מכיר אלגוריתמים לבדיקת ראשוניות/פירוק לגורמים שמסתמכים על חלוקות.
  3. פתרון בעיית הראשוניות לא יוכיח ש-P=NP (למעשה, כאמור, בעיית הראשוניות כבר נפתרה). אפילו פירוק יעיל לגורמים לא יוכיח ש-P=NP.

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

אז מה לפיוצ'רמה ולתורת החבורות?

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

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

המתמטיקה לא יכולה לסבול תיאורים מילוליים כאלו. צריך לעשות סדר ולכתוב את הכל במסודר. ראשית כל ננסה להבין איזה אובייקט מתמטי יש לנו כאן – המושג המתאים הוא תמורה (ובעברית: פרמוטציה), אחד מהמושגים הבסיסיים שבתורת החבורות (אם כי יש להודות שאין הרבה תורת החבורות בפוסט הזה – הרעיונות הם בעיקרם קומבינטוריים). תמורה של \(n\) מספרים או אותיות מתארת החלפה ביניהם – כל מספר עובר למספר אחר מהקבוצה. התיאור של "כל אדם עובר לגוף אחר" הוא די מדוייק כאן. הנה הדרך שבה מתארים את התמורה שעברו אליס, בוב וצ'רלי: \(\left(\begin{array}{ccc}a & b & c\\c & a & b\end{array}\right)\). ה-\(a,b,c\) שלמעלה מסמלים את המוחות של אליס, בוב וצ'רלי; ה-\(c,a,b\) שלמטה מסמלים את הגופים שאליהם הם עברו. \(a\) מעל \(c\) אומר "אליס עברה לגוף של צ'רלי", ו-\(b\) מעל \(a\) אומר שבוב עבר לגוף של אליס, וכן הלאה. המצב התקין שבו כל אחד בגוף האמיתי שלו מתואר על ידי \(\left(\begin{array}{ccc}a & b & c\\a & b & c\end{array}\right)\) (דבר כזה נקרא "תמורת הזהות"). לא יודע מה איתכם, אבל לי הרבה יותר קל להבין את הסיטואציה כשאני רואה \(\left(\begin{array}{ccc}a & b & c\\c & a & b\end{array}\right)\) מול העיניים. זה לקח חשוב לדעתי – סימונים מתמטיים נועדים לעשות את החיים קלים יותר, למרות שלעתים קרובות אוהבים להציג אותם כדברים קשים ומבלבלים.

כיצד ניתן להמשיך מהמצב הנוכחי? מכיוון ש-\(a\) רוצה לחזור ל-\(a\), וכרגע הוא ב-\(c\), אז מתבקש להחליף את הגוף של \(c\) עם הגוף של \(a\). זה יעביר אותנו לסיטואציה \(\left(\begin{array}{ccc}a & b & c\\a & c & b\end{array}\right)\) – תמורה שזהה לקודמת פרט לכך ש-\(a,c\) בשורה התחתונה החליפו את מקומותיהם. אבל זה מצב בעייתי כי החלפת הגופים של \(b,c\) כבר בוצעה פעם אחת ולא חוקי לבצע אותה שוב. אז עושה רושם שאי אפשר לתקן את הסיטואציה המעוותת על ידי הכנסת דמות חדשה אחת לתמונה. האם אפשר עם שתיים? כמובן שהפרק חיש קל יוצר ערבוביה איומה ונוראית מכל הדמויות בסדרה, אבל לבסוף הכל בא על מקומו בשלום כשמסתבר שאכן, אפשר לתקן כל מהומה שכזו – ולא משנה כמה הדמויות התערבבו, ולא משנה כמה החלפות כבר בוצעו (ולכן "נשרפו" ואסור להשתמש בהן יותר) אם מכניסים לתמונה שתי דמויות חדשות שאפשר להשתמש בהן.

הכותב של הפרק, קן קילר, הוא בעל דוקטורט במתמטיקה, ולכן כנראה החליט להתייחס לבעיה שהוא עצמו יצר ברצינות ולא סתם לנפנף אותה הצידה. הוא ישב וטרח לפתור אותה בעצמו (זו לא בעיה קשה במיוחד, אבל גם לא סטנדרטית לגמרי – האיסור על שימוש חוזר באותה תמורה מסבך את העניינים), וכתב הוכחה שמציגה את הפתרון, ובסופו של דבר גם הציג אותה בפרק עצמו (כמובן, צריך להיות זריזים ולהקפיא את המסך כדי לקרוא אותה בשלמותה אבל אנשים טובים כבר טרחו והעלו את התמונה המתאימה לרשת) ובפרק אפילו רואים איך האלגוריתם פועל במקרה הספציפי שלו. זה ללא ספק המופע הרציני ביותר של מתמטיקה שראיתי אי פעם בסדרת טלוויזיה או בסרט; זה בדיוק איך שלדעתי צריך לעשות את זה. כל הכבוד לפיוצ'רמה!

אם כן, מה הפתרון? קילר משתמש בתעלול נפוץ שנוקטים בו כשעוסקים בתמורות – כל תמורה אפשר לפרק למכפלת מעגלים זרים. למה הכוונה? ובכן, נניח שנתונה לנו תמורה כללית כלשהי. נבחר באופן שרירותי את אחד מהמשתתפים במשחק ונסמן אותו ב-\(1\). כעת, נסמן את מי ש-\(1\) עבר אליו כ-\(2\), ואת מי ש-\(2\) עבר אליו כ-\(3\) וכן הלאה. מתישהו חייב להופיע מישהו שכבר סימנו במספר כי יש רק מספר סופי של משתתפים במשחק. כלומר, יש מספר \(k\) שעובר למספר שכבר ראינו. אבל לאן \(k\) יכול לעבור בכלל? הוא לא יכול לעבור ל-\(2\), כי \(2\) כבר תפוס – \(1\) עבר אליו. וגם ל-\(3\) הוא לא יכול לעבור מאותה סיבה, וכן הלאה; אם כן, הוא יכול לעבור רק ל-\(1\). זהו ה"מעגל" המדובר – \(1\) עובר ל-\(2\), ו-\(2\) עובר ל-\(3\) וכן הלאה. מסמנים זאת כ-\(\left(\begin{array}{cccc}1 & 2 & \cdots & k\\2 & 3 & \cdots & 1\end{array}\right)\) (ולעתים גם כ-\(\left(123\dots k\right)\) אבל לא אשתמש כאן בסימון זה).

עכשיו, ייתכן מאוד שלא תפסתי את כל המשתתפים בתמורה באופן הזה. אם כן, פשוט אקח מישהו שטרם סימנתי, אסמן אותו ואתחיל לבנות מעגל חדש החל ממנו. כך למשל התמורה \(\left(\begin{array}{cccc}1 & 2 & 3 & 4\\3 & 4 & 1 & 2\end{array}\right)\) ניתנת לתיאור כמכפלת שני המעגלים \(\left(\begin{array}{cc}1 & 3\\3 & 1\end{array}\right)\left(\begin{array}{cc}2 & 4\\4 & 2\end{array}\right)\) (אם כי אם ננקוט בשיטה שהצעתי, המספור של האיברים יהיה שונה). הפאנץ' פה הוא שיספיק לנו לטפל בכל מעגל בנפרד ו"לתקן" אותו, כל עוד לא נעבור על הכלל שלפיו אסור לבצע את אותה החלפה יותר מפעם אחת.

אם כן, נניח שיש לנו את המעגל \(\left(\begin{array}{cccc}1 & 2 & \cdots & k\\2 & 3 & \cdots & 1\end{array}\right)\). מה עושים? קילר מציע קודם כל להכניס למשחק שני שחקנים חדשים, \(x,y\). נקבל את התמורה \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\2 & 3 & \cdots & 1 & x & y\end{array}\right)\). כעת הוא מציע להחליף את מי שבגוף של \(1\) עם מי שבגוף של \(x\) – הוא מסמן זאת כ-\(\left\langle 1,x\right\rangle \). בפועל זה אומר להחליף את שני המספרים בשורה התחתונה של התמורה שמעליהם, בשורה העליונה, מופיעים \(1\) ו-\(x\). כלומר, נקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & 3 & \cdots & 1 & 2 & y\end{array}\right)\).

עכשיו קילר מציע לבצע את \(\left\langle 2,x\right\rangle \). נקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & 2 & \cdots & 1 & 3 & y\end{array}\right)\). אני מניח שהרעיון ברור כעת – "תיקנו" את \(2\), ואם נבצע את \(\left\langle x,3\right\rangle \) נתקן גם את 3 וכן הלאה. אז למה לא מספיק להשתמש ב-\(x\) וחסל? כי אם נמשיך להשתמש ב-\(x\) לכל אורך הדרך, בסופו של דבר נגיע לתמורה \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & 2 & \cdots & k & 1 & y\end{array}\right)\) וכדי לתקן אותה נזדקק להחלפה \(\left\langle 1,x\right\rangle \) שכבר ביצענו. פתרון אפשרי אחד הוא לבצע כעת \(\left\langle x,y\right\rangle \) ולקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & 2 & \cdots & k & y & 1\end{array}\right)\) ולאחר מכן לבצע \(\left\langle 1,y\right\rangle \) ולקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\1 & 2 & \cdots & k & y & x\end{array}\right)\) אבל אז אמנם תיקנו את המעגל המקורי, אך במחיר החלפה של \(x,y\) שכבר לא נוכל לתקן (כי ביצענו את \(\left\langle x,y\right\rangle \)).

לכן קילר מציע להפסיק את השימוש ב-\(x\) אי שם באמצע הדרך. הוא מציע לעשות את זה במקום שרירותי שהוא מסמן ב-\(i\), ואני אדגים את זה עבור \(i=1\). כלומר, אני מבצע רק את ההחלפה \(\left\langle x,1\right\rangle \) ומקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & 3 & \cdots & 1 & 2 & y\end{array}\right)\). כעת קילר מכניס את \(y\) לפעולה; אם \(x\) ביצע את כל ההחלפות עד \(\left\langle x,i\right\rangle \), אז מעתה ואילך יתבצעו החלפות \(\left\langle y,i+1\right\rangle \) ומעלה. כלומר, אני מבצע את ההחלפה \(\left\langle y,2\right\rangle \) ומקבל \(\left(\begin{array}{cccccc}1 & 2 & \cdots & k & x & y\\x & y & \cdots & 1 & 2 & 3\end{array}\right)\), ואז מבצע את \(\left\langle y,3\right\rangle \) ובכך "מתקן" את 3, וכן הלאה וכן הלאה עד שאני מקבל \(\left(\begin{array}{cccccc}1 & 2 & 3\cdots & k & x & y\\x & y & 3\cdots & k & 2 & 1\end{array}\right)\). כלומר, גם \(x\) וגם \(y\) נמצאים עכשיו בתוך שטח האויב, אבל קל מאוד לתקן את זה – מבצעים \(\left\langle y,1\right\rangle \) ו-\(\left\langle x,2\right\rangle \) (ובאופן כללי: \(\left\langle x,i+1\right\rangle \)). אלו שתי החלפות שמובטח לי שטרם עשיתי (כי את ההחלפות עם \(x\) הפסקתי ב-\(\left\langle x,i\right\rangle \) ואת ההחלפות עם \(y\) התחלתי רק מ-\(\left\langle y,i+1\right\rangle \)). והופס – אני אקבל \(\left(\begin{array}{cccccc}1 & 2 & 3\cdots & k & x & y\\1 & 2 & 3\cdots & k & y & x\end{array}\right)\). זה בדיוק הפתרון שקיבלתי גם קודם, בהבדל משמעותי אחד: כעת טרם ביצעתי את ההחלפה \(\left\langle x,y\right\rangle \)! אני יכול לבצע אותה כעת ולקבל שהכל שב על מקומו בשלום. שימו לב שכל ההחלפות שביצעתי היו מהצורה \(\left\langle x,i\right\rangle \) ו-\(\left\langle y,i\right\rangle \) עבור \(1\le i\le k\) כלשהם. כלומר, כל החלפה עירבה את \(x\) או את \(y\) ולכן לא ייתכן שנבצע החלפה "אסורה" – פשוט כי כל ההחלפות שהביאו את התמורה למצבה הנוכחי היו בין זוגות שבהם לא הופיע לא \(x\) ולא \(y\).

אלא מה? זה פותר מעגל אחד, אבל אמרנו שהתמורה הכללית עשויה להיות מורכבת ממספר מעגלים. הבעיה הזו נפתרת עם אבחנה פשוטה אבל מקסימה: לא חייבים להזדרז ולתקן את ההחלפה בין \(x\) ו-\(y\); אפשר לשלוח אותם לטפל במעגל הבא בתור, ולא רק שזה יעבוד באותו האופן, זה גם יחזיר את \(x,y\) לגופים המקוריים שלהם בלי הצורך להחליף אותם במפורש (למה?). כמובן, ייתכן שנצטרך לשלוח אותם לטפל במעגל נוסף, ואז הם שוב יתחלפו… אבל בסופו של דבר, אחרי שנסיים עם כל המעגלים, אחד משניים: או שהם בגוף המקורי שלהם ואז אין בעיה, או שהם הוחלפו, ואז נבצע את ההחלפה \(\left\langle x,y\right\rangle \) ששמרנו לסוף, ונסיים.

כעת כל מה שנותר לעשות הוא לחכות לפרק של פיוצ'רמה שיציג את ההוכחה של המשפט האחרון של פרמה, בתקווה ששולי הפרק אינם צרים מלהכילה.

כל כך קשה לבחור…

אני ממשיך את סדרת הפוסטים שלי על קומבינטוריקה ברמה תיכונית, והפעם אני רוצה לנקוט בגישה "מתמטית" לדברים שכבר גילינו. המתמטיקאי תמיד מנסה לבחון מחדש את ההנחות שלו ולהקל על הדרישות בכדי להכליל את התוצאות שלו, וזה גם מה שאני רוצה לעשות. הנוסחה המרכזית שגילינו עד כה הייתה כי \(\frac{n!}{k!\left(n-k\right)!}\), שאותו סימנו בקיצור \({n \choose k}\) וכינינו "מקדם הבינום"(מסיבות שהסברתי בפוסט קודם) הוא מספר הדרכים לבחור \(k\) מתוך \(n\) עצמים. אלא שכאן יש לי שתי הנחות סמויות: שהבחירה היא ללא החזרה, וללא חשיבות לסדר. בפוסט הזה אנסה להסביר מה זה אומר, ומה מקבלים כשמשחקים עם ההנחות הללו.

בואו נזכור מה \({n \choose k}\) אומר באמצעות דוגמה: בלוטו, אם נשכח לרגע מהמספר הנוסף, נבחרים שישה מספרים מתוך 49. הבחירה הזו היא ללא חשיבות לסדר: אם המכונה הגרילה קודם כל את 1 ואז את 2, זו אותה הסיטואציה מבחינתנו כמו זו שבה המכונה הגרילה קודם כל את 2 ורק אז את 1. די ברור שאם הייתה חשיבות לסדר, המשחק היה הופך לקשה פי כמה, כי לא היה מספיק לנחש מי יזכה; היה צריך לנחש גם באיזה סדר הם יופיעו.

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

הנה תרגיל בקומבינטוריקה: אם סוגי הבחירות השונות נקבעים לפי השאלות א) האם יש חשיבות לסדר או לא ו-ב) האם יש החזרה או לא, כמה סוגי בחירות יש? התשובה היא כמובן 4 (מעקרון הכפל). הבה ונטפל בכולן. בכל המקרים יהיה מדובר על בחירה של \(k\) אובייקטים כשיש \(n\) אובייקטים לבחור מהם.

ובכן, בחירה בלי החזרה ובלי חשיבות לסדר היא כמו שראינו \({n \choose k}\). לפעמים משתמשים גם בסימון המבלבל \(C_{n}^{k}\) וקוראים לזה "צירופים", אך זה הרבה פחות מקובל במתמטיקה ואני לא משתמש בסימונים הללו אף פעם.

נעבור לבחירה בלי החזרה אך עם חשיבות לסדר, מה שנקרא לעתים בעברית "חליפות"ומסומן ב-\(A_{n}^{k}\). הדרך לחשב את מספר האפשרויות לבחור בלי החזרה ועם חשיבות לסדר \(k\) מתוך \(n\) עצמים היא פשוטה למדי כי אפשר לחשוב עליה כתהליך דו-שלבי: קודם כל נבחר \(k\) עצמים מתוך ה-\(n\) בלי חשיבות לסדר, ואז נבחר את האופן שבו "מסדרים"אותם. כבר ראינו שיש \({n \choose k}\) אפשרויות לבחור את העצמים בלי חשיבות לסדר, ושבהינתן \(k\) עצמים יש \(k!\) דרכים לסדר אותם, כך שהתוצאה היא \({n \choose k}k!=\frac{n!}{k!\left(n-k\right)!}k!=\frac{n!}{\left(n-k\right)!}\). אפשר גם להגיע לתוצאה הזו בדרך ישירה: בהתחלה יש לנו \(n\) איברים לבחור מהם, אחר כך יש לנו \(n-1\) איברים, אחר כך \(n-2\) וכן הלאה… עד שבסופו של דבר יש לנו \(n-k\) איברים ואז אנחנו כבר לא בוחרים. נקבל את המכפלה \(n\cdot\left(n-1\right)\cdot\left(n-2\right)\cdots\left(n-k+1\right)\) (ה-\(+1\) בסוגר האחרון נובע מכך שהבחירה האחרונה מתבצעת רגע לפני שאנו נשארים עם \(n-k\) איברים) – לא קשה לראות שמכפלה זו אכן שווה ל-\(\frac{n!}{\left(n-k\right)!}\), אבל היא יותר מסורבלת לכתיבה. שימו לב, אגב, שאם היינו בוחרים \(k=n\) היינו מקבלים את התוצאה \(n!\) – כלומר, הכללנו גם את הרעיון של סידור \(n\) איברים בשורה.

אני רוצה להציג עוד נקודת מבט שתכליל הן את הצירופים והן את החליפות, ותיתן לנו עוד נוסחה מאוד פופולרית. בואו נחשוב לרגע שיש לנו \(n\) כדורים, ש-\(k\) מתוכם אדומים והיתר כחולים, ואנחנו שואלים את עצמו בכמה דרכים ניתן לסדר אותם בשורה. שימו לב שכל הכדורים מאותו צבע נראים לנו זהים – אם נחליף את המקומות של שני כדורים בעלי אותו צבע נקבל תוצאה שנראית לנו זהה לקודמת, ולכן אין צורך לספור אותה שוב. מה עושים? דרך אחת היא זו: ראשית נחשוב על כל הכדורים כעל אובייקטים שונים זה מזה, ואז יש \(n!\) דרכים שונות לסדר אותם בשורה. כעת צריך "לתקן"את הספירות הכפולות שביצענו, והדרך לעשות זאת היא לספור בכמה דרכים שונות ניתן לשנות את הסדר הפנימי בין הכדורים האדומים, ובכמה דרכים שונות ניתן לשנות את הסדר הפנימי בין הכדורים הכחולים, ולחלק בתוצאה זו. יש \(k\) כדורים אדומים ולכן \(k!\) סידורים פנימיים שלהם, ובאופן דומה יש \(\left(n-k\right)!\) סידורים פנימיים של הכדורים הכחולים, ולכן התוצאה היא \(\frac{n!}{k!\left(n-k!\right)}\) – בדיוק \({n \choose k}\) וזה לא כל כך מפתיע כי אפשר לחשוב על הסידור הנ"ל כעל "בחר \(k\) מקומות עבור הכדורים האדומים ושים את הכחולים ביתר". למעשה, הגישה הזו הייתה האופן שבו הוכחתי את הנוסחה עבור \({n \choose k}\) מלכתחילה.

כעת להכללה המבוקשת – מה קורה אם יש לי כדורים אדומים, ירוקים, צהובים וכחולים? ומה אם יש עוד צבעים? באופן כללי אפשר לחשוב על כך ש-\(n\) האיברים מתחלקים לקבוצות, כך שמספרי האיברים בקבוצות הם \(k_{1},k_{2},\dots,k_{t}\). קבוצה יכולה להכיל גם איבר בודד; לכן אנחנו יכולים להניח שה-\(k\)-ים מתארים את כל האיברים, כלומר מתקיים \(n=k_{1}+k_{2}+\dots+k_{t}\). על פי אותו הגיון שתיארתי קודם, מספר הסידורים האפשריים בשורה של האיברים הללו, כשאנחנו מתעלמים מהסידורים הפנימיים בין איברים מאותו צבע, הוא \(\frac{n!}{k_{1}!k_{2}!\cdots k_{t}!}\). שימו לב ש-\({n \choose k}\) מתאים למקרה בו יש לנו בדיוק שתי קבוצות, ואילו מספר החליפות, \(\frac{n!}{\left(n-k\right)!}\) מתאים בדיוק למקרה שבו יש לנו \(n-k\) עצמים זהים והיתר שונים זה מזה (כך שהנוסחה היא בעצם \(\frac{n!}{\left(n-k\right)!1!1!\cdots1!}\) ואין צורך לכתוב את ה-\(1\)-ים במכנה כי \(1!=1\)). למה הסיטואציה הזו אכן מתארת חליפות? כי ניתן לחשוב על כך שאנחנו מניחים על העצמים שלנו פתקים שבהם או שכתוב מספר כלשהו מ-\(1\) עד \(k\) (שמתארים את מספרם בבחירה) או שכתוב עליהם "לא נבחר", וכל פתקי ה"לא נבחר" זהים זה לזה ויש \(n-k\) מהם.

טוב, אז זה מסיים את עניין הבחירה בלי החזרות. הבה ונעבור לבחירה עם החזרות – שימו לב שכאן \(k\) יכול להיות גדול מ-\(n\) כי האיברים לא יכולים "להיגמר" לנו. הסיטואציה כאן מאוד מעניינת – מצד אחד, אם יש חשיבות לסדר הנוסחה פשוטה ביותר (כה פשוטה שאני ממליץ לכם לנסות ולהמציא אותה לבד לפני שתקראו מה שאכתוב). מצד שני, הנוסחה עבור בחירה עם החזרות אך בלי חשיבות לסדר היא קשה יחסית – כה קשה שאיני חושב שמלמדים אותה כלל בתיכון, אפילו אם כן לומדים קומבינטוריקה. למרות זאת הדגש צריך להיות על הקושי היחסי: הנוסחה אינה נוראית כלל ואני מקווה שעד סיום הפוסט יוכלו כל הקוראים לפתח אותה בעצמם.

הנוסחה לבחירה עם החזרה ועם חשיבות לסדר היא תוצאה ישירה של עקרון הכפל. תהליך הבחירה שלנו הוא בן \(k\) שלבים; בכל שלב אנחנו בוחרים אחת מ-\(n\) אפשרויות שונות. יש לנו אם כן בסך הכל \(n\cdot n\cdots n=n^{k}\) אפשרויות שונות. קל להתבלבל ולשכוח מי במעריך החזקה ומי בבסיס (כלומר, האם זה \(k^{n}\) או \(n^{k}\)) ולכן אני ממליץ לנקוט בגישה הבאה: כמה מספרים דו ספרתיים יש, אם מרשים גם לאפס להופיע (כלומר, \(3\) הוא המספר ה"דו ספרתי" \(03\) וכדומה)? \(2^{10}\) או \(10^{2}\)? ובכן, \(2^{10}=1024\) כך שברור שיש כאן בעיה; לעומת זאת \(10^{2}\) מתאים בדיוק, וזה לא מפתיע כי מספר דו ספרתי מורכב מבחירה של אחת מ-10 הספרות האפשריות בתור ספרת האחדות, ואחת מ-10 הספרות האפשריות בתור ספרת העשרות.

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

הדרך הנוחה ביותר לתאר זאת היא באמצעות סיפור מעשיות. בחירה של \(k\) מתוך \(n\) איברים ללא חשיבות לסדר ועם החזרה ניתן לתאר בתור סידור כדורים בתאים: נניח שיש לנו שורה של \(n\) תאים ממוספרים, ו-\(k\) כדורים זהים. אנחנו זורקים כדורים לתוך התאים ובסוף רואים מה קיבלנו. אם בתא מס' 1 יש שני כדורים, אנחנו אומרים שבחרנו את האיבר מס' 1 בדיוק שתי פעמים; אם בתא 2 אין כדורים כלל אנו אומרים שאת איבר מס' 2 בכלל לא בחרנו, וכן הלאה.

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

בגישה הזו מה שאני "בוחר" הוא את המקומות שבהם אני רוצה לשים את המחיצות. על פניו כל רווח בין שני כדורים, או בין כדור והקיר, הוא מיקום חוקי. יש \(k\) כדורים ולכן \(k+1\) רווחים (ציירו שני כדורים ותראו את שלושת הרווחים: מימין לכדור הימני, משמאל לשמאלי, ובין שניהם). לכן יש לי בחירה של \(n-1\) איברים מתוך קבוצה של \(k+1\) איברים, בלי חשיבות לסדר ועם החזרה, כי אפשר לבחור באותו רווח כמה פעמים… היי, רגע, אז מה בעצם השגתי כאן? אני עדיין תקוע עם בעיה של בחירה עם החזרה ולא שיפרתי כלום!

אם לגלוש לרגע למתמטיקה יותר מתקדמת, כשכזה דבר קורה זה לא בהכרח סוף העולם. אפשר לחזור על אותו תהליך שוב ושוב ולראות האם זה הופך את הבעיה בהדרגה לפשוטה יותר. לרוע המזל, זה לא מה שקורה כאן – מבעיה של בחירת \(k\) מתוך \(n\) עברתי לבעיה של בחירת \(n-1\) מתוך \(k+1\), ואם אעשה את התעלול שוב אחזור לבעיה של בחירת \(k\) מתוך \(n\). צריך להוסיף עוד תעלול לתמונה, אם כך. והתעלול הזה פשוט – אני הולך לאסור על תאים ריקים.

הטענה שלי היא כזו: מספר הדרכים השונות לחלק \(k\) כדורים ל-\(n\) תאים (בלי חשיבות לסדר) שווה בדיוק למספר הדרכים השונות לחלק \(n+k\) כדורים ל-\(n\) תאים כשבסוף החלוקה אין תאים ריקים. למה? זה פשוט: כי נתחיל את החלוקה בלשים כדור אחד בכל תא. כך הבטחנו שמה שחייב להתקיים, מתקיים, ואז \(k\) הכדורים שנותרו אפשר לחלק בשקט ובלי מגבלות כלשהן. אם כן, המרנו את הבעיה שלנו לבעיה אחרת, שאותה יהיה לנו קל יותר לתקוף.

נחזור לבעיית השמת המחיצות. אם אסור שיהיו תאים ריקים, זה אומר שאסור לשים שתי מחיצות בין אותו זוג כדורים, ואסור לשים מחיצה בין כדור ובין הקיר. מצד שני, יש לנו הפעם \(n+k\) כדורים, ולכן יש בסך הכל \(n+k-1\) רווחים שבהם ניתן לשים את \(n-1\) המחיצות. הפעם הבחירה היא בלי החזרות כי כאמור, אסור לשים שתי מחיצות בין אותו זוג כדורים – אסור לבחור פעמיים באותו רווח שבין כדורים. לכן יש לנו בחירה של \(n-1\) איברים מתוך \(n+k-1\) איברים, וזה בדיוק \({n+k-1 \choose n-1}\), ואת זה ניתן לכתוב גם כ-\({n+k-1 \choose k}\). בזאת מצאנו את הנוסחה לשיטת החלוקה הרביעית והאחרונה.

לפני שנסיים להפעם אני רוצה לתאר שימוש פשוט אחד בבחירה עם החזרה ובלי חשיבות לסדר, שבינתיים אולי נראית מפחידה ומסובכת ולא מועילה כלל. נביט במשוואה \(x_{1}+x_{2}+\dots+x_{n}=k\), כאשר \(k\) הוא מספר שלם והערכים שאנחנו מרשים למשתנים לקבל הם רק ערכים שלמים אי שליליים (משוואות כאלו צצות בפועל! בעולם האמיתי! תאמינו לי!). כמה פתרונות יש למשוואה הזו? בדיוק מספר האפשרויות לבחור \(k\) איברים מתוך \(n\), עם החזרה ובלי חשיבות לסדר. למה? אשאיר זאת כתרגיל לקורא.