בפוסט הזה אני מארחת את גיסי, אריאל אדלמן. הוא מהנדס באינטל, נשוי לאחותי, ויש לו תחביב מעניין: שינון ספרות הפאי. קבלו את אריאל במחיאות כפיים סוערות.
=========
לשינון של הפאי הגעתי בשנת 2012, כשדיברתי על הנושא עם מישהו מהעבודה שלי בשם אתגר, ואמרתי לו שזה לא כ”כ קשה לזכור 100 ספרות, ושכל אחד יכול. אז לא הצלחתי לשכנע אותו לנסות גם כן, אבל ניסיתי בעצמי, והתחלתי לשנן את הספרות של הפאי (שהן אינסופיות, שכן מדובר במספר אי-רציונלי). אחרי יומיים הוא בחן אותי על 100 ספרות, והצלחתי עם טעויות בודדות. משם לקחתי את האתגר, והמשכתי עד לשינון של כ-3,000 ספרות (שיא הגינס היה למיטב זכרוני בסביבות 67,000 ספרות).
מובן שאין שום טעם מעשי בשינון ספרות הפאי, הרי רק 2-3 ספרות אחרי הנקודה מספיקות לכל חישוב סביר, אבל מה שמשך אותי להמשיך זה האתגר וההנאה שבבניין השינון.
את השינון אני מבצע בשיטה די נפוצה (ששמעתי עליה מכמה כיוונים שונים), של תרגום כל ספרה לאות אחת או יותר, בניית מילים, ומהן בנייה של סיפור אסוציאטיבי. כך למשל 1 מתורגם אצלי ל”א” או “ק”, 2 מתורגם ל”כ” או “ב” וכן הלאה (בעיקר עם דימיון לגימטריה). חלק מהסיפור גם מכיל מספרים אותם אני לא מתרגם בכלל, למשל רצף של 999999 שמופיע אחרי כ-790 ספרות (מספרים על פיזיקאי מפורסם שסיפר שהוא היה רוצה לשנן את פאי עד הרצף הזה, כדי שהוא יוכל להקריא את הרצף, להיעצר שם, ובעצם לייצר את הרושם שמדובר במספר רציונלי ושהוא בעצם יודע את כל הספרות של הפאי בע”פ). המיפוי אינו חד ערכי כל מספר (למעט 4 ו-5) יכול להיות מיוצג ע”י יותר מאות אחת. רק ככה יש לי מספיק גמישות לייצר מגוון של מילים באמצעות האותיות – ובעצם מכל רצף אני יכול לייצר אינספור מילים, גם תוך השימוש באותיות הניטרליות, שהן אהו”י מ’ ו-נ’. כך למשל מהספרות 24, אני יכול לייצר את המילים: “כד”, “בד”, “כידון”, או אפילו: “נמוך מדי”. את מ’ ו-נ’ החלטתי להפוך לאותיות ניטרליות כי הן אותיות שעוזרות להרכיב הרבה מילים. בהתחלה מיפיתי אותן ל-4 ול-5, אבל אז גיליתי שקשה לי להרכיב מילים חדשות. מהרגע שהפכתי אותן לניטרליות )בערך בסביבות הספרה ה-500) נהיה לי הרבה יותר קל לייצר מילים חדשות.
במקצועי אני מהנדס, וחלק ניכר מהעבודה שלי הוא לכתוב סקריפטים שיהפכו תהליכים שגרתיים וחוזרים על עצמם לאוטומטיים. לכן אך טבעי היה שגם בנושא של שינון פאי אבצע אוטומציה למה שאפשר. למשל, כחלק מהתהליך של מציאת המילים לסיפור, בניתי אקסל וכתבתי בו כל מיני מילים, וכתבתי סקריפט שבאמצעותו הוא יחפש בתוך הפאי את המילים האלה: יצרתי שתי עמודות – עמודה אחת עם כל האותיות ועמודה אחת עם הערך המספרי של כל אות. אחרי זה יצרתי עמודה עם המון מילים, ולפי המיפוי שלי, תוך התחשבות באותיות הניטרליות ותוך שימוש ב-substr, הוא עובר אות אות, ממיר אותה לרצף המספרים ומחפש אותם בפאי (הפאי שמור לי בתא אחר בגליון). את קיום המילה בתוך הפאי הוא מחפש החל מהמיקום הנוכחי שלי.
מצ”ב הגליון שלי. בעמודות L ו-M קיימות הנוסחאות שממירות את המלים למספרים, ומחפשות את המספרים בפאי.

כך למשל הכנסתי את שמות כל החברים שלי, ורובם אכן נמצאו בתוך הפאי, וכך גם מצאתי את הדוגמאות בהמשך. השיטה הזו חסכה לי עבודה רבה כי במקום שהכיוון יהיה מהמספרים לאותיות, מה שלא תמיד מאפשר להגיע לרמה יצירתית מספקת בקלות, אני לפעמים פועל בכיוון ההפוך, מה שיוצא מאד יעיל כשאני מחפש מילים ארוכות.
הסיפור שנוצר הוא מין עולם כזה שהוא רק שלי, שכיף להיכנס אליו כשאני עובר על המספרים. הסיפור מכיל הרבה אסוציאציות מהעולם הקרוב אלי – אנשים שאני מכיר, אירועים שחוויתי וכו’, ולכן יש לי קרבה לסיפור. אזכיר 2 דוגמאות:
- באופן מקרי לחלוטין, אותו אתגר שהזכרתי קודם מופיע בעצמו בפאי, כמעט ברצף מוחלט (יש רק את הספרה 1 שמפרידה בין השם שלו לשם המשפחה שלו). הרצף שהשם שלו נותן הוא של 9 ספרות! הסיכוי לכך ממש אפסי. כשנתקלתי בתהליך השינון בשעה 23:00 ביום חמישי, התקשרתי אליו מיד נפעם מהתגלית. גם הוא התלהב.
- כחלק מהסיפור שלי התקבל הרצף הבא: משה קצב, אולמרט, שוטר, להושיב כלא. משה קצב=6102, אולמרט=1359, שוטר=695, להושיב כלא=6231 (רימיתי פה קצת, כשאיחדתי את ה-2 של ב’ ושל כ’). נראה לי שזה בסביבות הספרה ה-2,800. את הרצף הזה ייצרתי רק לאחר האירועים. מובן שלו זה קרה לפני, זה היה הרבה יותר מגניב.
עד עכשיו הסברתי בעיקר את תהליך הבנייה, שהוא לא פשוט בעצמו – כי צריך כל הזמן למצוא מילים שונות, ולייצר אסוציאציות שאני מסוגל לזכור – אך כלל לא הזכרתי את תהליך הזכירה. הזיכרון שלי לטווח קצר יכול לעבוד די טוב על כ-50 ספרות, אבל אחרי 10 דקות אני כבר לא ממש זוכר כלום, ובטח שלא 3,000 ספרות. לשם כך, יצרתי סקריפט ב-perl, שבודק אותי באופן אינטראקטיבי. אני כותב לו מאיזו ספרה אני רוצה לשנן, ולאחר מכן אני מתחיל לכתוב את הספרות. הסקריפט מאשר לי את הספרה כשהיא מופיעה על המסך, וכשאני טועה, הספרה לא נכתבת. בסוף השינון הוא מסכם לי את כמות הטעויות וכמות הספרות ששיננתי. ללא סקריפט הייתי מתקשה מאד לשנן: לאנשים אין סבלנות לשמוע ולבדוק כ”כ הרבה ספרות, וסתם תוכנה שמשווה את הקלט שלי לפאי עצמו גם לא מספיק טובה, כי יכולה להיות לי טעות נגררת או קושי להבין בדיוק איפה הטעות. אין לי ספק שהסקריפט שיפר מאד את טווח המספרים שאני זוכר.
$pi =<Digits of pi> use Term::ReadKey; ReadMode 4; $last_index=0;$memorizing=1;$mistake_counter=0; #Choose an index in PI to start memorizing from, default is from the beginning $current_index=shift||0; #Print the digits before the index if not 0 if ($current_index>0) { print substr($pi,0,$current_index); } while ($memorizing==1) { #waiting for key pressed while (not defined ($key = ReadKey(-1))) { # No key yet } $s=substr($pi,$current_index,1); ## pressed the correct digit if ($s eq $key) { print "$s"; $last_index=$current_index; $current_index++ } elsif ($key eq "e") { # end $memorizing=0; } elsif ($key eq "d") { # Not a real mistake so decrease from counter $mistake_counter--; } else { # Wrong digit, but don't count multiple mistakes at this digit if ($last_index<$current_index) { $mistake_counter++; $last_index=$current_index; } } } $current_index-=2; print "\nnumbers: $current_index\nmistakes:$mistake_counter\n";
דרך נוספת שבה אני משנן, לא קשורה לסקריפטים אלא לתחביב נוסף שיש לי – ג’אגלינג. אחי הצעיר חולק איתי את שני התחביבים הללו, ויש תרגיל משותף של ג’אגלינג שהמצאנו, אז הוספנו טוויסט לתרגיל, שכל פעם שהכדורים עוברים מאחד לשני, אחד מאיתנו אומר מספר בתורו. אח שלי שינן את הפאי עד 200, אך השיא שלנו במסירות ג’אגלינג הוא רק בסביבות ה-100 כי זה השלב בו הכדורים כבר מתחילים להתפספס בגלל ריכוז היתר בשינון. ללא שינון אנחנו מצליחים בהעברות כדורים רבות יותר מ-100.
אין לי איזה יעד ברור בכמות הספרות שאזכור, ובעיקר אמשיך לשנן כשמתחשק לי. לכן יש הפרשים של שנים בין עבודות שונות של שינון/בנייה. יש מרווחים מאד גדולים בין תקופות שינון שונות. את ההתחלה אני תמיד זוכר די טוב, אך אני צריך לרענן את עצמי כל פעם על החלקים המאוחרים יותר. כשאני חוזר לחלקים שאני לא זוכר זה תמיד נראה לי מוכר, אבל אחרי תקופה ארוכה אני בדרך כלל לא מצליח לחבר יותר מכמה מילים שם.
כמו שציינתי, אין גם ממש מטרה לכל השינון, אך כנראה אמשיך בשביל ההנאה מהאתגר והשקיעה בסיפור עצמו. כשאנשים שומעים על תחביב השינון שלי הם כמובן חושבים שזה די מוזר, אך די מרשים. השנה, כבכל שנה, מתקיימת תחרות דקלום הספרות השנתית באוניברסיטה העברית במסגרת חגיגות יום הפאי. דחו את זה קצת וזה לא תמקיים ביום הפאי, שזה מעולה כי זה מאפשר לי להשתתף בה (ביום הפאי יש לי ארוע חברתי אחר. מעניין אם יחלקו שם פאי).

Piledhigheranddeeper at English Wikipedia
עדכון מחגיגות יום הפאי (18/3/18)
ו… הוא עשה זאת!!!
אריאל ניצח בתחרות דקלום הפאי שנערכה בחגיגות יום הפאי במחלקה למתמטיקה באוניברסיטה העברית. הוא דיקלם את מספר ספרות הפאי הרב ביותר – 2000 ספרות!
אריאל היה המתחרה האחרון, ומהמתחרים שלפניו המקסימום שהגיעו אליו היה 1600 ספרות (מספר מדהים מצד עצמו!). לכן ברגע שאריאל עבר את הסיפרה ה-1600 היה ברור שהוא ניצח, אבל הוא המשיך עוד בשביל הכיף (!).
הוא נעצר בספרה ה-2000 על אף שהוא יכול היה להמשיך עד 3000 פשוט מפני שלשופטים היו רק 2000 הספרות הראשונות (פסימיים שכמותם…). ואולי גם מפני שרצו לחזור להרצאות (הדקלום נמשך 20 דקות…).
אריאל בחור צנוע אז אין תמונה שלו עם הפרס. אז הנה הפרס לבד
מדהים! הוא נשמע ממש בחור לעניין!
אכן! ואשתו גם – ממש בחורה לעניין!