Хороший спосіб навчитися вирішувати питання на InterviewStreet [закрито]


10

Можливий дублікат:
як я можу адаптуватись до викликів, які проводяться перед інтерв'ю?

InterviewStreet - нова компанія, яка по суті діє як фільтр для компаній, щоб знайти програмістів, які можуть кодувати. Моя проблема в тому, що моя математика є досить слабкою, і я хотів би вивчити її, навіть якщо вона з нуля, щоб мати можливість вирішувати такі питання, як це на їхньому сайті:

Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007

Тепер, будь ласка, НЕ публікуйте відповідь на це питання, вона береться безпосередньо від InterviewStreet і не повинна розміщуватися тут. Це не відповідь, яку я шукаю в цій темі. Що я задаю - це більш фундаментальне питання, на яке, напевно, можуть відповісти деякі з хакерів у спільноті SO.

Як готується до такого питання? Які ресурси для мене доступні для вивчення / вивчення того, як вирішити подібний тип проблеми? Чи покрито це на відкритому курсі MIT? Академія хана? Якісь книги? Я навіть не впевнений, з чого почати вирішувати проблему вище, і хотів би дізнатися, які кроки я можу зробити для цього.


не зрозумійте мене неправильно - мені дуже подобаються подібні запитання (маленькі головоломки на вихідні) - але я дійсно не думаю, що ви знайдете хороші програми з тими - ви знайдете математичних вундеркіндів (це може бути добре programmig) - і всі ми знаємо, що ці люди роблять код, але людина поруч із ним ніколи не зможе прочитати їхній код :) ... хочете знати, чи хтось хороший? Сядьте та поповніть програмувати пару годин з цією людиною, і ви дізнаєтесь набагато більше, ніж якщо йому станеться подобатися загадок Гарднера
Карстен

Відповіді:


9

Найчастіше питання інтерв'ю розроблені для перевірки ваших навичок вирішення проблем, не потребуючи спеціальних знань. Але для вашого запитання деякі математичні знання безумовно допоможуть. Як мінімум, вам потрібно буде зрозуміти визначення понять "позитивний інтеграл" та "модуль". Вступний курс з теорії чисел може бути корисним, можливо, цей з OCW .

Я б також рекомендував Project Euler для зразкових задач - це чудовий спосіб розвивати свої знання з математики та програмування. Виберіть мову і починайте працювати через вправи.


6

Ви не можете підготуватися до подібних проблем, просто запам'ятавши книгу. Єдиний спосіб бути хорошим у вирішенні проблем - це робити багато і багато проблем. Я пропоную отримати книгу алгоритмів та структури даних і прочитати її. Це значно прискорить процес.

Пам’ятаю, кілька років тому я ціле літо (5+ годин на день) проводив, займаючись розв’язанням подібних проблем просто заради розваги.

Є ряд місць, де ви можете це зробити. Проект Ейлер - хороша відправна точка. У Інтернет-судді UVa також є безліч проблем.


Це певна прихильність. Чи вважаєте ви, що це допомогло вам у ваших загальних можливостях програмування?
Даррен Янг

3
Абсолютно. Я брав участь у Олімпіаді з обчислювальної техніки США в середній школі і перейшов від "ніхто" до топ-20 у США. Щодо програмування "реального світу", я думаю, що можу з повною впевненістю сказати, що мої навички були значно загострені. Зараз я не кажу, що всі повинні виходити і робити те, що я зробив, але я думаю, що варто витратити трохи часу, щоб відтворити свої навички вирішення проблем. Ви дійсно можете багато чому навчитися, і це безумовно застосовно до розробки програмного забезпечення.
tskuzzy

0

Ця конкретна проблема вимагає знати базову теорію чисел, зокрема такі ідеї, як факторинг складених чисел, деякі властивості простих чисел та розуміння відносно простих пар чисел.

Інші проблеми на сайті вимагають розуміння великої нотації O, простих структур даних, основних алгоритмів, таких як сортування та комбінаторика. Я пройшов 3 з 5 проблем, і майже закінчив свою 4-ю, і я не використав жодних конкретних знань після мого першого курсу занять CS в коледжі. Однак, це важкі проблеми. Деякі з них потребують дивовижної кількості математичної інтуїції.

Щоб підготуватися до подібного роду матеріалів, ви повинні бути хорошими у вирішенні математичних задач. Погляньте на олімпіаду (якщо ви в середній школі) або іспит Путнама (якщо ви в коледжі) і виконайте проблеми з практикою, які ви знайдете. Їм важко, але ти з часом стаєш кращим.

Крім того, не робіть спочатку питання з 30 пунктів - Запитання чотирикутника. Це найскладніше на сьогоднішній день.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.