אתרים עם משימות למתכנתים
כמעט כל המשאבים באוסף הם באנגלית, כך שתהיה לך הזדמנות לא רק לתרגל פתרון בעיות קידוד וחידות, אלא גם לקבל תרגול נוסף בשימוש באנגלית בתכנות.-
אחד המשאבים הפופולריים ביותר בשפה האנגלית עם משימות למתכנתים. בו תוכלו למצוא יותר מ-200 משימות ברמות מורכבות שונות, אותן ניתן לפתור ישירות באתר המקוון באמצעות אחת מ-10 שפות התכנות הזמינות (כולל Java).
-
Programming Praxis הוא בלוג פופולרי המפרסם באופן קבוע משימות מעניינות והכי חשוב רלוונטיות למתכנתים. נפוץ עבור מגוון שפות תכנות. האתגרים נועדו לעזור למקודדים להתעדכן בשינויים האחרונים בטכנולוגיה ובגישות לתכנות בפועל.
-
TopCoder היא קהילה פעילה של מתכנתים שאוהבים לפתח ולפתור בעיות שונות. משימות חדשות מתפרסמות באופן קבוע, שהפתרון המוצלח שלהן לא רק יספק הזדמנות לתרגל ולהגדיל את משאבי האנוש שלך, אלא גם לקבל פרסים כספיים.
-
CodeKata הוא בלוג עם הרבה בעיות מקוריות ושנונות למדי למתכנתים, שהומצא על ידי דייב תומאס, אחד מחברי הספר המפורסם פרגמטי מתכנת ("המתכנת הפרגמטי. הדרך מהשוליה למאסטר"). הבעיות באתר CodeKata מגוונות, והפתרונות רלוונטיים לעבודת תכנות אמיתית.
-
שופט אוניברסיטת פקין אונליין עבור ACIP/ICPC
JudgeOnline של אוניברסיטת פקין עבור ACIP/ICPC הוא עמוד של אוניברסיטת פקין המכיל משימות למתכנתים מתחרויות ותחרויות שונות. האתר מתעדכן באופן שוטף, ניתן לפתור בעיות בזמן אמת, והפתרונות מוערכים על ידי ועדה של מומחים מאוניברסיטת פקין.
-
עוד אתר ותיק ומוכר עם משימות רציניות ולא טריוויאליות. "פרויקט אוילר הוא אוסף של בעיות מתמטיות ותכנות מורכבות שדורשות יותר מסתם ידע במתמטיקה כדי לפתור. הבעיות משתנות במורכבותן והגישה מבוססת על למידת שרשרת אינדוקטיבית. כלומר, לאחר שתפתרו בעיה אחת, תגלו מושג חדש שיאפשר לכם לפתור בעיות אחרות שבעבר לא היו נגישות להבנה", אומרים יוצרי המשאב.
-
ה- Daily WTF היא קהילת תכנות פופולרית נוספת הפועלת על עיקרון Bring Your Own Code (BYOC), כלומר מפתחים חולקים קוד מקור משלהם כדי לפתור בעיות מקוריות שונות. "המטרה של BYOC היא פשוטה: לספק לך, כמפתח תוכנה, את ההזדמנות לשפר את כישורי התכנות שלך על ידי פתרון בעיה שהיא קצת יותר מעניינת מהדברים הרגילים והמשעמים", נכתב באתר.
-
אתר מצוין בשפה הרוסית עם משימות אלגוריתמיות המשמשות לבדיקת כישורי מומחים במהלך ראיונות טכניים בחברות כמו גוגל, פייסבוק ואחרות. מוצגות בעיות רבות, כולל מקוריות, ברמות קושי שונות.
-
אתר סופר ידוע שבו "מתכנתים משוגעים מתחרים על תהילה ופרסים מגניבים". תחרויות מתקיימות פעם או פעמיים בשנה, ושמותיהם של מתכנתים מכובדים מתפרסמים בעמוד הראשי של המשאב, מה שבהחלט מושך התעניינות מצד מעסיקים מבטיחים.
-
אחד הארכיונים הגדולים ביותר בשפה הרוסית של בעיות תכנות עם מערכת בדיקה אוטומטית. המקור העיקרי למשימות לארכיון הוא תחרויות באוניברסיטה הפדרלית של אורל, אליפויות אוראל ואירועי תכנות אזוריים אחרים. Timus Online Judge גם מאפשר לך לקחת חלק בגרסאות מקוונות של רוב התחרויות המתקיימות באופן קבוע באוניברסיטה הפדרלית של אוראל.
5 משימות מעניינות
הנה כמה חידות מעניינות למי שלא יכול לחכות להתחיל.-
חידת בלנדר מסטיב ג'ובס
אתגר: מצטמקים לגודל של ניקל וזורקים לבלנדר. המשקל שלך ירד כך שצפיפות הגוף שלך נשארת זהה. הלהבים יתחילו להסתובב לאחר 60 שניות. המעשים שלך?
זוהי משימה קלאסית המזוהה בדרך כלל עם סטיב ג'ובס, מייסד אפל. כשג'ובס חזר לאפל ב-1997, הוא ראיין באופן אישי כל עובד בחברה והשתמש במשימה זו כאחד המבחנים הראשונים שלו.
פִּתָרוֹן:
У данной задачи больше одного решения, так How она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь How можно плотнее к днищу блендера, чтобы его лезвия крутorсь над вами.
-
Сколько людей было на конференции?
Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?
Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.
Классическое решение:
Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так How это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.
Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
= (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
= n ^ 2 -n = 132
= (n-12) (n + 11) = 0;
= n = 12 ИЛИ n = -11Вариант -11 исключен, поэтому ответ: 12 человек.
-
Бар и 25 стульев.
Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.
Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место How можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда How все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?
Решение:
Первый человек должен сесть на стул 9 or 17 (из-за симметрии, не имеет значения, Howое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так How оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 or 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.
-
Деньги в карманах и религия.
Интересно составленная задача на нахождение алгоритма.
בעיה: לגבר יש כסף בכיס, הסכום הכולל שלו הוא בין 90 ל-95 דולר. בדרך הוא מבקר במספר מקדשים. ברגע שהוא נכנס למקדש, כספו מוכפל, ובסופו של דבר הוא תורם 100 דולר לכל מקדש. כתוצאה מכך, הכיס שלו מתרוקן לאחר ביקור במקדש האחרון. עכשיו השאלה היא: כמה כסף היה לו בהתחלה ובכמה מקדשים הוא ביקר?
פִּתָרוֹן:
אנחנו מתחילים לספור מהמקדש האחרון:
לאחר ביקור במקדש האחרון (1) נשאר לו 0 כסף, אז => (0 + 100) / 2 = 50. היו לו 50 דולר לפני ביקור במקדש האחרון
לפני ביקור במקדש הקודם (2), היה לו (50 + 100) / 2 = 75.
לפני ביקור במקדש הקודם (3), היה לו (75 + 100) / 2 = 87.5.
לפני ביקור במקדש הקודם (4), היה לו (87.5 + 100) / 2 = 93.75.
לפני ביקור במקדש הקודם (5), יש לו (93.75 + 100) / 2 = 96.875 - הכמות עולה על התנאים ההתחלתיים.
תשובה: לאדם היו במקור 93.75$ וביקר ב-4 מקדשים. -
תקרית בשטח.
ולבסוף, עוד בעיה קלאסית ישנה, אפשר אפילו לומר דמוי אקורדיון, בעיית חשיבה לוגית.
בעיה: אדם מת נמצא בשדה חיטה. הוא החזיק את הגפרור בחוזקה בידיו. למה האיש מת?
פִּתָרוֹן:
האיש טס במטוס עם שלושה נוסעים אחרים. המנוע נתקע והמטוס החל ליפול. הגברים גילו שיש רק שלושה מצנחים לארבעה מהם והחלו לשלוף גפרורים. אחד מהם משך קצר ונאלץ לקפוץ ללא מצנח.
GO TO FULL VERSION