Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2019, 19:21
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Как решить следующую задачу (Diverse Deputation)?
Всем привет. Недавно увидел такую задачу. Но возникли сложности с решением. Был бы благодарен вашей помощи.

There are m men and w women. A deputation of exactly 3 people has to be formed from them. A deputation is diverse if and only if it contains at least one man and at least one woman. How many distinct ways are there to select a diverse deputation of 3 people? Two deputations are different if and only if one deputation has a member which the other does not have.
Find the number of ways to select a diverse deputation of 3 people.

Function Description
Complete the function diverseDeputation in the editor below. The function must return an integer which is the number of ways to select a diverse deputation from m men and w women.


Constraints
0 ≤ m, w ≤ 1000


/*
* Complete the 'diverseDeputation' function below.
*
* The function is expected to return an INTEGER.
* The function accepts following parameters:
* 1. INTEGER m
* 2. INTEGER w
*/

function diverseDeputation(m, w) {
// Write your code here
}

Последний раз редактировалось gsdev99, 06.06.2019 в 19:25.
Ответить с цитированием
  #2 (permalink)  
Старый 07.06.2019, 06:06
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

return m*(m-1)*w/2 + w*(w-1)*m/2;
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2019, 09:41
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Большое спасибо. А вы могли бы кратко объяснить?
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2019, 10:02
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Есть два вида делегации: либо ммж, либо мжж. В первом случае есть m(m-1)/2 вариантов выбрать двух чуваков и w вариантов выбрать телочку. Во втором наоборот. Вот так и получается. Основы комбинаторики.
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2019, 10:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Alexandroppolus,
а почему не так?
m*(m-1)*w + (w - 1)*(w - 2)*(m-2);
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2019, 15:35
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

рони,
Не совсем понял, как такая формула возникла.
Ответить с цитированием
  #7 (permalink)  
Старый 07.06.2019, 15:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Alexandroppolus,
немного другой вариант
m*(m-1) * w/2 + (w - 1)*(w - 2)* (m-2)/2;
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2019, 15:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Проверяем по минимальному набору
var m = 3, w = 3;
console.log(m*(m-1)*w/2 + w*(w-1)*m/2);
console.log(m*(m-1) * w/2 + (w - 1)*(w - 2)* (m-2)/2);

var d = [["M1","M2","M3"],["W1","W2","W3"]];
var del = [], k=0;

for(var i = 0;i < 2;i++) {
    for(var j = i + 1;j<3;j++){
        for(var l = 0; l < 3; l++) {
           del[k] = d[0][i]  + d[0][j] + d[1][l];
           console.log(del[k]);
           k++;
        }
    }
}
for(var i = 0;i < 2;i++) {
    for(var j = i + 1;j<3;j++){
        for(var l = 0; l < 3; l++) {
           del[k] = d[1][i]  + d[1][j] + d[0][l];
           console.log(del[k]);
           k++;
        }
    }
}
console.log(k);
Ответить с цитированием
  #9 (permalink)  
Старый 07.06.2019, 16:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Dilettante_Pro,
Alexandroppolus,
скорее всего я не понял условия задачи.
думалось про что то такое ...
M1M2W1
W2W3M3
2 варианта если m = 3, w = 3;
в комбинациях нет общих элементов

Последний раз редактировалось рони, 07.06.2019 в 16:10.
Ответить с цитированием
  #10 (permalink)  
Старый 07.06.2019, 16:37
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сколькими способами можно расставить 2 женщин и 1 мужчину, или 1 женщину и 2 мужчин? Это задача на перестановки. Ответ: m × (m − 1) × w + w × (w − 1) × m

Сколькими способами можно выбрать 2 женщин и 1 мужчину, или 1 женщину и 2 мужчин? Это задача на сочетания. Ответ: m × (m − 1) ÷ 2 × w + w × (w − 1) ÷ 2 × m

Сообщение от Alexandroppolus
Не совсем понял, как такая формула возникла.
Удивительнейшии Alexandroppolus — человек, написавший сочетания, не понял перестановки...

Сообщение от рони
а почему не так?
m*(m-1)*w + (w - 1)*(w - 2)*(m-2);
Это ответ на вопрос: Сколькими способами можно расставить людей в 2 группах, чтобы сначала была составлена группа из 1 женщины и 2 мужчин, а из оставшихся составлена группа из 2 женщин и 1 мужчины?

Сообщение от рони
немного другой вариант
m*(m-1) * w/2 + (w - 1)*(w - 2)* (m-2)/2;
Это ответ на вопрос: Сколькими способами можно выбрать людей для того, чтобы составить 2 группы, чтобы сначала была составлена группа из 1 женщины и 2 мужчин, а из оставшихся составлена группа из 2 женщин и 1 мужчины?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно реализовать следующую анимацию на React? gsdev99 Элементы интерфейса 0 23.03.2019 08:50
Как решить правильно задачу? JsLoveR Серверные языки и технологии 10 06.01.2010 17:41
Не могу решить задачу: Добавление цитаты в textarea,где находистся курсор dummer jQuery 1 24.12.2009 18:17
как реализовать задачу? (автокомплит и много инпутов из под дома) h-zone jQuery 1 06.11.2009 20:09
Помогите решить задачу vkg Общие вопросы Javascript 1 20.02.2008 11:59