Как решить следующую задачу (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 } |
return m*(m-1)*w/2 + w*(w-1)*m/2;
|
Большое спасибо. А вы могли бы кратко объяснить?
|
Есть два вида делегации: либо ммж, либо мжж. В первом случае есть m(m-1)/2 вариантов выбрать двух чуваков и w вариантов выбрать телочку. Во втором наоборот. Вот так и получается. Основы комбинаторики.
|
Alexandroppolus,
а почему не так? m*(m-1)*w + (w - 1)*(w - 2)*(m-2); |
рони,
Не совсем понял, как такая формула возникла. |
Alexandroppolus,
немного другой вариант m*(m-1) * w/2 + (w - 1)*(w - 2)* (m-2)/2; |
Проверяем по минимальному набору
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); |
Dilettante_Pro,
Alexandroppolus, скорее всего я не понял условия задачи. думалось про что то такое ... M1M2W1 W2W3M3 2 варианта если m = 3, w = 3; в комбинациях нет общих элементов |
Сколькими способами можно расставить 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 Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 22:08. |