אני מחפש בת-זוג (מלאה ונשית)
מכיוון שזה יותר חשוב מהרהורים פילוסופיים וכד'.. אני שם בפרונט (תרתי
משמע?..) את החלק עם הציור של מה שאני מחפש חיצונית בבת-זוג ורק אח"כ את שאר. אז
הנה דוגמא לבחורה (דימיונית) שהיא בערך הטעם שלי, לפחות כללית עם דגש על
מבנה גוף:
כאמור זה תיאור כללי (כלומר יש 'דרגות חופש' לטעם
שלי ואין מודל אחד ויחיד) של מה שאני מחפש חיצונית בבת-זוג ומה מושך אותי. אני תמיד מדגיש שאני מחפש מישהי אך ורק למטרה רצינית
(אז... אני חוזר על זה שוב). על הצדדים האחרים (שלא פחות חשובים) של מה שאני
מחפש בבת-זוג כתבתי
כאן (בגלישה מסלולר נא לבחור דווקא בגירסה לא סלולרית). עלי כתבתי
כאן (שני הנ"ל מקושרים כאן בבלוג ברשימות מצד ימין). האי-מייל שלי (לבחורות מתאימות, או מי מטעמן) לפניות הוא
[email protected].
פיתרון החידה המחשבית
את החידה שאני עומד לתת את פיתרונה, אפשר למצוא בפוסט בקישור הזה.
תזכורת קצרה: המשימה היתה לכתוב תוכנית בשפת תיכנות פשוטה (שתוארה בחידה)
שקולטת מס' שלם חיובי N ופולטת את i ו- i^2 (i ו-i בריבוע) עבור i מ-1 ועד
N, אבל לעשות זאת רק עם פעולות חיבור, השמה (=) ולולאה אחת (הפרטים
המדוייקים כאמור בפוסט של החידה).
אבל... לפני שאתן את הפיתרון אציין כיצד בכלל 'המצאתי' אותה (לא ראיתי
חידה כזו וחשבתי עליה בעצמי). הכל התחיל בזה שראיתי בTV (בהקלטה) את "לעוף
על המיליון" בערוץ 10. אחת השאלות שם היתה כמדומני "כמה זה 12 בריבוע?".
התשובה כמובן היא 144. אחרי זה חשבתי על זה שאת כל הריבועים (=מספר בריבוע)
של מספרים שלמים חיוביים קטנים אני זוכר בעל-פה ולא מחשב בכל פעם מחדש,
למשל אני זוכר בע"פ את (רשימה חלקית):
1,4,9,16,25,36,49,64,81,100,121,144,169 ועוד... ואז "נתקעתי" ב-14
בריבוע שלא זכרתי בעל-פה, אז חישבתי בראש והגעתי כמובן ל-196. מיד שמתי לב
שמדובר באותן ספרות של 13 בריבוע... ידוע שההפרש של מספרים בעלי אותן ספרות
הוא מספר שהוא מכפלה של 9 (אולי לא ניסחתי את הנ"ל במדוייק, אבל הבנתם,
אני מקווה, את הרעיון). ההפרש כאן הוא אכן מכפלה של 9 או 9*3 או 27, אבל זו
היתה רק הערת אגב... ואז שמתי לב ש-27 שווה ל-13 + 14, כלומר לסכום של
המספר הנוכחי שהעלנו בריבוע והמספר הקודם שהועלה בריבוע. ואז... רציתי
לבדוק האם זה כך גם במקרה הכללי של שני מספרים עוקבים?
נזכרתי בנוסחא מהתיכון: a^2 - b^2 = (a+b)*(a-b)
אם נבחר שני מספרים עוקבים אז נוכל לסמן: a = b + 1 ואז a - b = 1. נציב את הנ"ל בנוסחא לעיל ונקבל ש:
a^2 - b^2 = a + b או:
a^2 = b^2 + a + b
כלומר בהינתן לנו הריבוע של המספר השלם החיובי הקודם, נוכל לחשב את ריבוע הנוכחי ע"י הוספת שני המספרים הנ"ל (לדוגמא, במקרה שהתחלתי ממנו: 13 + 14 + 2^13 = 2^14). עכשיו די קל לכתוב תוכנית כנ"ל והנה הפיתרון שלי:
Var Int N,I,P,S
S = 0
P = 0
Input N
For I = 1 to N
S = S + I + P
PrintLine I," ",S
P = I
Next I
המשתנה P זוכר את ה-I הקודם והוא נועד לא להפר את תנאי החידה, כלומר שאסור חיסור. אם חיסור היה מותר יכולנו לכתוב במקום P את I-1.
[גם כאן ועידכונים על עידכונים כאן]
לילה טוב לכם/ן קוראי וקוראותי החביבים והחביבות.