פורסם ב זה רק קוד, מתכוננות לראיונות

מחשבון כבקשתך – חלק א'

זמן קריאה: 16 דקות

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

8÷2*(2+2) = 8÷2*4 = 4*4 = 16

ואפשר להתייחס אליו כך –

8÷2*(2+2) = 8/(2*(2+2)) = 8/(2*4) = 8/8 = 1

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

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

מחשבון כבקשתך -חלק ב'

זמן קריאה: 9 דקות

בחלק א' של פוסט זה הסברתי שאני רוצה לבנות מחשבון שיוכל לקבל קונפיגורציה של קונבנציית כתיבה, ולפתור תרגילים בהתאם.
הרעיון הגיע מהתרגיל  (2+2)2÷8 שהוא ביטוי שיש לו שתי תוצאות שונות בעבור שתי קונבנציות כתיבה שונות.
בחלק הראשון של הפוסט בניתי את המחשבון שלי, ובחלק הנוכחי אני רוצה להוסיף לו קונפיגורציות.

להמשיך לקרוא "מחשבון כבקשתך -חלק ב'"
פורסם ב זה רק קוד, מתכוננות לראיונות

הכפלה ללא הכפלה

זמן קריאה: 10 דקות

נתונים שני מספרים שלמים וחיוביים.
המשימה היא לכתוב פונקציה רקורסיבית שמחזירה את תוצאת המכפלה של שני המספרים, בלי להשתמש בכפל או בחילוק.
מותר להשתמש בחיבור חיסור ו-bit shifting, וצריך להשתמש במינימום פעולות.

להמשיך לקרוא "הכפלה ללא הכפלה"
פורסם ב זה רק קוד, מתכוננות לראיונות

קבוצת חזקה

זמן קריאה: 4 דקות

נתונה קבוצת איברים שכולם שונים זה מזה.
המשימה היא לכתוב אלגוריתם שמחזיר את כל תתי הקבוצות האפשריות.

אני אתחיל מדוגמא קטנה כדי להיזכר בכל סוגי תתי הקבוצות שיש –

A = {1,2,3} subsets = {{},{1},{2},{3},{1,2},{2,3},{1,3},{123}}

סבבה, מהדוגמא שלי אני יכולה לראות את כל תתי הקבוצות שאני צריכה לייצר – הקבוצה הריקה, הקבוצה המלאה, כל תתי הקבוצות שמכילות בדיוק איבר אחד מהקבוצה, כל תתי הקבוצות שמכילות בדיוק שני איברים מהקבוצה וכן הלאה…

להמשיך לקרוא "קבוצת חזקה"