3. У студентській групі всі студенти знають хоча б одну із трьох мов програмування. 6 – знають Паскаль, 8 – С, 7 – Java. 3 знають Паскаль та Java, 4 – Java та С, 5 – С та Паскаль. Три студенти знають усі три мови.
1) Скільки всього студентів у групі?
2) Скільки з них знають лише одну алгоритмічну мову?
3) Рівно 2 мови?
Будь ласка з рішенням
Answers & Comments
Ответ:
1. Для того, щоб визначити, скільки студентів у групі, можна застосувати метод попарного вирізання. Це означає, що усі студенти, які знають хоча б дві мови, будуть вирізані зі списку. Спочатку виріжемо тих, хто знає три мови: у списку залишаються 6 - 3 = 3 студенти, що знають Паскаль. Далі виріжемо тих, хто знає Паскаль та Java: у списку залишаються 3 - 3 = 0 студентів, що знають Паскаль. Таким чином, усі студенти, які знають Паскаль, вирізані. Тепер виріжемо тих, хто знає Java та С: у списку залишаються 8 - 4 = 4 студенти, що знають С. Та ж саму операцію виконаємо і з тими, хто знає С та Паскаль: у списку залишаються 4 - 5 = -1 студентів, що знають С. Таким чином, усі студенти, які знають С, вирізан. Далі виріжемо тих, хто знає Java: у списку залишаються 7 - 3 - 4 - 5 = -5 студентів, що знають Java. За зазначеними операціями не залишилося жодного студента, який знав б хоча б одну мову. Таким чином, у групі було рівно 0 студентів.
2. Скільки студентів знають лише одну алгоритмічну мову, не вказано у запитанні.
3. Рівно 2 мови знають ті студенти, які віднімаються у третьому кроці методу попарного вирізання: 3 студенти, що знають Паскаль та Java, 4 студенти, що знають Java та С, та 5 студентів, що знають С та Паскаль. Загалом рівно 2 мови знають 3 + 4 + 5 = 12 студентів.
Зауваження: наведена процедура не дає коректних результатів, тому що в ній виконуються операції з від'ємними числами. Для правильного розрахунку кількості студентів, які знають рівно дві мови, можна застосувати таку процедуру:
Знаходимо кількість студентів, які знають усі три мови: 3 студенти.
Знаходимо кількість студентів, які знають тільки одну мову: 6 студентів, що знають Паскаль + 8 студентів, що знають С + 7 студентів, що знають Java = 21 студент.
Кількість студентів, які знають рівно дві мови, дорівнює загальній кількості студентів, які знають хоча б одну мову, мінус ті, хто знають усі три мови, та мінус ті, хто знають тільки одну мову: (6 + 8 + 7) - 3 - 21 = 12 студентів.
Таким чином, рівно 2 мови знають 12 студентів.