четвер, серпня 16, 2012

Задача про 1000 пляшок та 10 стаканів

Сьогодні на співбесіді в 1 айтішну компанію, мене запитали, чи зможу я вирішити задачу на логіку? Я звісно відповів що зможу, тому що в мене майже 2 вищі освіти (ХАІ та КПІ). Але коли мене спитали я розгубився. Це для мене нормальна річ, я завжди вирішую такі задачі коли я можу спокійно зосередитися над рішенням. Та задача виявилася досить простою.

Ось її опис: Є 1000 пляшок та 10 стаканів, в 1 пляшці є отрута. 10 людей одночасно ковтають з цих стаканів, тобто є лище 1 спроба. Одна людина ковтає лише з 1 стакану. Після того, як хтось  загинув (1 чи декілька людей, чи всі відразу), треба визначити де саме отрута (в якій пляшці).

Ось рішення цієї задачі:

Якщо в нас є 1 стакан, то ми можемо визначити 2 пляшки, тобто або людина загине, або ні. Це ми можемо представити як 0,1 (0 - живе, 1 - загинув). Якщо в нас є 2 стакана ми можемо визначити 4 пляшки, це ми можемо представити як таку собі схемку:


1 стакан (2 комбінації (пляшки), або живе, або загинув)

0
1

2 стакана (4 комбінації (пляшки), або всі живі, або лівий загинув, або правий, або всі вмерли)

00
10
01
11

3 стакана (8 комбінацій (пляшок))

000
100
010
001
110
011
101
111

І так далі. Це може представити як 2 в ступені n. Тобто 2 в 0 ступені це 1. 2 в 1 ступені це 2, 2 в 3 ступені це 8, 2 в 4 ступені це 16 ... Тобто щоб визначити вірно де саме отрута нам треба 10 стаканів, тому що 2 в 10 ступені, це 1024.


Ще приведу приклад як можна наглядно продемонструвати як наливається отрута в чашки:
Уявімо, що кружки це пляшки, а квадрати це стакани, з яких п"ють люди. Одна пляшка вважається виключеною (відокремлена квадратом), вона буде з отрутою, якщо всі вип"ють, та залишаться живими. Якщо скажімо ми беремо комбінацію 101, тобчто 1 чашка з отрутою та остання з отрутою, то в якій пляшці отрута? Вірно, в тій яка наливає тільки в 2 крайні стакани. Якщо ми візьмемо комбінацію 100, то в якій пляшці отрута? Вірно в тій, яка наливає тільки в перший стакан, тобто сама ліва крайня.

Маю, надію все виклав зрозуміло :)






Немає коментарів:

Дописати коментар

Що таке база данних?

База данних — це спеціальна система зберігання, організації та пошуку інформації. Вона містить дані у вигляді таблиць, записів та інших стру...