ראיון הייטק פגישה 3

Post on 18-Jul-2015

55 views 2 download

transcript

3פגישה 2015

(с) Igor Kleiner

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

PROGRAMMING INTERVIEWS EXPOSED

ABOUT COURSE

REMINDER

QUESTION 5

CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?שאלות למראיין•

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?שאלות למראיין•?כמה יש מטבעות מכל סוג•

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?שאלות למראיין•אינסוף? כמה יש מטבעות מכל סוג•

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?שאלות למראין•אינסוף? כמה יש מטבעות מכל סוג•

?האם סדר שבו מחזירים את העודף חשוב•(1,1,1,2) or (1,2,1,1)

QUESTION 5

CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?שאלות למראין•אינסוף? כמה יש מטבעות מכל סוג•

?האם סדר שבו מחזירים את העודף חשוב•(1,1,1,2) or (1,2,1,1) -לא משנה

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?חסם עליון הכי פשוט•

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?חסם עליון הכי פשוט••F(n)<=n

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?חסם עליון הכי פשוט•

•F(n)<=n

?יותר טובחסם עליון •

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?חסם עליון הכי פשוט••F(n)<=n

?יותר טובחסם עליון ••F(n)<=n/2+1

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

פתרון נאיבינעבור על כל האפשרויות להרכיב עודף מלכל

כך שסכום המטבעות שווה מטבעות nהיותר ונחזיר את האפשרות עם כמות מינימאלית , n-ל

של המטבעות

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי להחזיר •1,2,5,10כאשר ברשותינו מטבעות nעודף

פתרון נאיבינעבור על כל האפשרויות להרכיב עודף מלכל

, n-כך שסכום המטבעות שווה למטבעות nהיותר ונחזיר את האפשרות עם כמות מינימאלית של

המטבעות?סיבוחיות

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי להחזיר •1,2,5,10כאשר ברשותינו מטבעות nעודף

פתרון נאיבינעבור על כל האפשרויות להרכיב עודף מלכל

, n-כך שסכום המטבעות שווה למטבעות nהיותר ונחזיר את האפשרות עם כמות מינימלית של

המטבעותO(4^(n/10)): סיבוחיות

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

?פתרון נוסף

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

פתרון חמדני–פתרון נוסף

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

פתרון חמדני–פתרון נוסף ?מה כאן יהי פתרון חמדני

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

פתרון חמדני–פתרון נוסף ?מה כאן פתרון חמדני

?האם פתרון חמדני תמיד אופטימיל

QUESTION 5CHANGE-MAKING PROBLEM

מהי כמות מינימלית של מטבעות שצריך כדי •כאשר ברשותינו מטבעות nלהחזיר עודף

1,2,5,10

פתרון חמדני–פתרון נוסף ?מה כאן פתרון חמדני

?האם פתרון חמדני תמיד אופטימיל?מתי פתרון חמדני אופטימלי ומתי לא

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

דוגמאת11 =

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

דוגמאת11 = (10)+(1)

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

דוגמאת26=(10)*2+(5)*1+111 = (10)+(1)

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

דוגמאת26=(10)*2+(5)*1+111 = (10)+(1)

?סיבוכיות

פתרון חמדני?מה כאן פתרון חמדני

10ניקח כמות מקסימלית של מטבעות 5מטבעות ניקח כמות מקסימלית של

2ניקח כמות מקסימלית של מטבעות 1מטבעות ניקח כמות מקסימלית של

דוגמאת26=(10)*2+(5)*1+111 = (10)+(1)

O(4*n^2)? סיבוכיות

?האם פתרון חמדני תמיד אופטימלי

?נחשוב על דוגמא•

?האם פתרון חמדני תמיד אופטימלי

?נחשוב על דוגמא•1,7,10ניתן להשתמש רק במטבעות •14נניח שיש להחזיר •:פתרון אופתימלי•:פתרון חמדני•

?האם פתרון חמדני תמיד אופטימלי

?נחשוב על דוגמא•1,7,10ניתן להשתמש רק במטבעות •14נניח שיש להחזיר •(7)(7)פתרון אופתימלי•

(1) (1) (1) (1) (10):פתרון חמדני•

?האם פתרון חמדני תמיד אופטימלי

?נחשוב על דוגמא•1,7,10ניתן להשתמש רק במטבעות •14נניח שיש להחזיר •(7)(7)פתרון אופתימלי•

(1) (1) (1) (1) (10):פתרון חמדני•

מסקנה פתרון חמדני לא תמיד אופטימלי•פתרון חמדני יהי ... ,1,2,4,8,16עבור מטבעות •

אופטימלי

?האם פתרון חמדני תמיד אופטימלי

?נחשוב על דוגמא•1,7,10ניתן להשתמש רק במטבעות •14נניח שיש להחזיר •(7)(7)פתרון אופתימלי•

(1) (1) (1) (1) (10):פתרון חמדני•

מסקנה פתרון חמדני לא תמיד אופטימלי•פתרון חמדני יהי ... ,1,2,4,8,16עבור מטבעות •

אופטימלי

QUESTION 5CHANGE-MAKING PROBLEM 5

:תכנות דינמי•F(n)נגדיר פונקצית מטרה ( 1•

QUESTION 5CHANGE-MAKING PROBLEM 5

:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=F(0)= F(1) F(2)-קל לרות ש•

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

1F(0)=0 F(1)=1-קל לראות ש•

F(2)=

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

ננסה לבנות נוסחא כללית•

• F(n)= [ , , , ]

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

ננסה לבנות נוסחא כללית•

• F(n)= [1+, , , ]

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

ננסה לבנות נוסחא כללית•

• F(n)= [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

ננסה לבנות נוסחא כללית•

• F(n)= ??? [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

ננסה לבנות נוסחא כללית•

• F(n)= min [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית –F(n)נגדיר פונקצית מטרה ( 1•

nשל מטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

F(n) = min [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

F(3) = min [1+F[2],1+F[1]]= min [2,2] = 2 (2)

F(4) = min [1+F[3],1+F[2]]= min [3,2] = 2 (2)

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית של –F(n)נגדיר פונקצית מטרה ( 1•

nמטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

F(n) = min [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

F(3) = min [1+F[2],1+F[1]]= min [2,2] = 2 (2)

F(4) = min [1+F[3],1+F[2]]= min [3,2] = 2 (2)

F(5) = min [1+F[4],1+F[3],1+F[0]= 1 (5)

F(6) = min [1+F[5],1+F[4],1+F[3]] = 2 (3)

QUESTION 5CHANGE-MAKING PROBLEM 5

1,2,5,10:תכנות דינמי•כמות מינימלית של –F(n)נגדיר פונקצית מטרה ( 1•

nמטבעות שצריך כדי להחזיר עודך

=1F(0)=0 F(1)=1 F(2)-קל לראות ש•

F(n) = min [1+F(n-1),1+F(n-2),1+F(n-5),1+F(n-10)]

אקספוננציאלית באורך הקלטO(n)סיבוכיות

האם כדאי לגלות שאתה יודע את הפתרון של שאלה

אין תשובה מדעית •

האם כדאי לגלות שאתה יודע את הפתרון של שאלה

אין תשובה מדעית•אם אתה לא בטוח שאתה יודע את הפתרון •

הנכון כך שתוכל להסביר אותו כנרא שאין צורך להגיד שאתה יודע את הפתרון

האם כדאי לגלות שאתה יודע את הפתרון של שאלה

אין תשובה מדעית•אם אתה לא בטוח שאתה יודע את הפתרון •

הנכון כך שתוכל להסביר אותו כנרא שאין צורך להגיד שאתה יודע את הפתרון

ל"אם אתה יודע תשובה ולא יודע פתרון כנ•

האם כדאי לגלות שאתה יודע את הפתרון של שאלה

אין תשובה מדעית•ייתכן שיתנו , אם תגלה שאתה יודע את התפרון•

לך שאלה יותר קשה ועליך להחליט מה יותר מתאים לך

?האם כדאי להוסיף תמונה לקורות חיים

כן•לא•לא חשוב•

?האם כדאי להוסיף תמונה לקורות חיים

כן•לא•לא חשוב•

אין תשובה מדעית•

QUESTION 6

WALK ON SQUARE BOARD

n*nנתון לוח שחמט בגודל •

(1,1)בן אדם מתחיל טיול מנקודה •

בכל צעד מותר ללכת צעד אחד ימינה או צעד •. אחד למעלה

?קיימים(n,n)-ל (1,1)-כמה מסלולים שונים מ•

QUESTION 6

WALK ON SQUARE BOARD

QUESTION 6

WALK ON SQUARE BOARD

?שאלות למראיין•?האם שאלה ברורה•

?איך ניגש לפתרון•

QUESTION 6

WALK ON SQUARE BOARD

?שאלות למראיין•?האם שאלה ברורה•

?איך ניגש לפתרון•?דוגמאות פרטיות•תכנון דינמי•פונקציה יוצרת •קימבינטיריקה•

QUESTION 6

WALK ON SQUARE BOARD

?שאלות למראיין•?האם שאלה ברורה•

?איך ניגש לפתרון•?דוגמאות פרטיות•תכנון דינמי•פונקציה יוצרת •קימבינטיריקה•

פרטיותדוגמאות

פרטיותדוגמאות

פרטיותדוגמאות

פרטיותדוגמאות

?מה זה

פרטיותדוגמאות

C(0,0), C(1,2) C(2,4), C(3,6), … C(?,?)

פרטיותדוגמאות

C(0,0), C(1,2) C(2,4), C(3,6), … C(n-1,2*(n-1))

הוכחה קומבינטורית

= ארך של המסלול •

הוכחה קומבינטורית

(n-1)2= ארך של המסלול •

יש לבחור איפה נעשה צעד שמולה •

הוכחה קומבינטורית

(n-1)2= ארך של המסלול •

יש לבחור איפה נעשה צעד שמולה •צעדים שמולה(n-1)יש •: ולכן התשובה היא•

הוכחה קומבינטורית

(n-1)2= ארך של המסלול •

יש לבחור איפה נעשה צעד שמולה •צעדים שמולה(n-1)יש •С(n-1,2*(n-1)): ולכן התשובה היא•

תכנות דינמי

:נגדיר פונקציית מטרה(1•

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

(?,?)Fהמטרה שלנו היא לחשב •

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

F(1,1)המטרה שלנו היא לחשב •

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

F(1,1)המטרה שלנו היא לחשב •

:נתחיל חישוב מהסוף•

• F(n,n)=1

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

F(1,1)המטרה שלנו היא לחשב •

:נתחיל חישוב מהסוף•

• F(n,n)=1 F(n-1,n)=F(n,n)=1 F(n,n-1)=F(n,n)=1

F(n-1,n-1)=F(n-1,n)+F(n,n-1)=2

תכנות דינמי

שווה לכמות F(i,j): נגדיר פונקציית מטרה(1•(n,n)לנקודה (i,j)מסלולים מנקודה

F(1,1)המטרה שלנו היא לחשב •

:נתחיל חישוב מהסוף•

תכנות דינמי

תכנות דינמי

פונקציה יוצרת

מספיק לפתח לטור טיילור פונקציה•

(1+x)^(2*(n-1))

לסיכום

לא צריך לפחד או להלחץ•

לסיכום

לא צריך לפחד או להלחץ•בדרך כלל קיים םספר פתרונות•

לסיכום

לא צריך לפחד או להלחץ•בדרך כלל קיים םספר פתרונות•אפשר להתחיל מפתרון הפשוט ולנסות לשפר •

אותוכדאי לקרוא ולהבין טוב את השאלה•כדאי לשתף בדרח מחשיבה את המראיין•