Робочий аркуш «Алгоритми та складність» з відповідями

Безкоштовний робочий аркуш для друку «Алгоритми та складність»: 8 задач від легких до рівня іспиту, з ключем відповідей. Роздрукуйте його або збережіть як PDF.

Для викладачів: можна безкоштовно друкувати, копіювати й використовувати на заняттях. Кожен новий аркуш має нові значення і власні відповіді. Будемо вдячні за посилання на ExamProblems на сторінці вашого курсу.

Ім’я: ____________________   Дата: ____________

1.Легка

Які три кроки алгоритму «розділяй і володарюй»?

  1. AПрочитати, обчислити, записати
  2. BВгадати, перевірити, повторити
  3. CРозділити, підкорити, об'єднати
  4. DВідсортувати, знайти, повернути
2.Легка

Що з наведеного зростає найповільніше зі збільшенням n?

  1. AO(n)
  2. BO(log n)
  3. CO(n log n)
  4. DO(n²)
3.Легка

Що таке алгоритм?

  1. AСтруктура даних, що зберігає числа
  2. BМова програмування, призначена для запису математичних формул
  3. CБудь-яка комп'ютерна програма з графічним інтерфейсом
  4. DСкінченна послідовність чітко визначених кроків, що розв'язує задачу
4.Середня

Жадібний алгоритм:

  1. AВикористовує лише рекурсію
  2. BПеребирає всі можливі розв'язки
  3. CЗавжди дає оптимальний розв'язок
  4. DНа кожному кроці робить локально найкращий вибір
5.Середня

Чи правильно казати, що алгоритм O(n²) є також O(n³)?

  1. AНі, бо «велике O» завжди має вказувати точну швидкість зростання функції
  2. BНі, бо для великих n n³ менше за n²
  3. CТак, бо «велике O» — верхня межа, а n² зростає не швидше, ніж n³
  4. DТак, але лише якщо n менше за 100
6.Середня

Функція виконує один цикл із n ітерацій, а потім окремо ще один цикл із n ітерацій. Яка її часова складність?

  1. AO(n²)
  2. BO(n)
  3. CO(2ⁿ)
  4. DO(log n)
7.Складна

Яке визначення класу NP правильне?

  1. AЗадачі, які неможливо розв'язати за поліноміальний час
  2. BЗадачі, що не є поліноміальними
  3. CЗадачі, які не може розв'язати жоден алгоритм
  4. DЗадачі розпізнавання, відповіді «так» для яких можна перевірити за поліноміальний час за наявності сертифіката
8.Складна

Проблема зупинки показує, що:

  1. AСлід уникати циклів
  2. BЖоден алгоритм не може для кожної програми та вхідних даних визначити, чи зупиниться вона
  3. CКожна програма врешті-решт зупиняється
  4. DДеякі програми працюють швидше на швидших комп'ютерах, тож зупинка залежить від апаратного забезпечення

Ключ відповідей

  1. 1. C · Розділити, підкорити, об'єднати
  2. 2. B · O(log n)
  3. 3. D · Скінченна послідовність чітко визначених кроків, що розв'язує задачу
  4. 4. D · На кожному кроці робить локально найкращий вибір
  5. 5. C · Так, бо «велике O» — верхня межа, а n² зростає не швидше, ніж n³
  6. 6. B · O(n)
  7. 7. D · Задачі розпізнавання, відповіді «так» для яких можна перевірити за поліноміальний час за наявності сертифіката
  8. 8. B · Жоден алгоритм не може для кожної програми та вхідних даних визначити, чи зупиниться вона

Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.