const blablabla = (data)=>{
// тут мы что то делаем с data
}
// а затем так
socket.on('Название события', data => {
blablabla(data);
});
// или даже так
socket.on('Название события', blablabla);
На вашей картинке ровно одна вершина с максимальной степенью (равной 8). Когда я говорил, если максимальных вершин несколько, я имел ввиду вершин со степенью, равной максимальной.
Но в этой задаче можно проще: Найдите все вершины с максимальной степенью. Если из 3 и более, то найдите среди них 2 не связанные (берете любую, потом еще одну любую. Если они связанны, то берите любую третью - она не связанна с одной из двух первых)
5*(5-1)/2 + 5*(5-1)/2 < 9*(9-1)/2 + 2*(2-1)/2
10+10 < 36+1
20 < 37
Но в этой задаче можно проще: Найдите все вершины с максимальной степенью. Если из 3 и более, то найдите среди них 2 не связанные (берете любую, потом еще одну любую. Если они связанны, то берите любую третью - она не связанна с одной из двух первых).
Но это же у вас не вызывает вопросов?
// даны 2 множества X и Y
// x - ученики
const X = [1,2,3,4];
// y - парты
const Y = [1,2];
// соответсвия делаем как программную функцию с 2-я аргументами
const conformity_1_pair = (x,y)=>{
// соответствие задано набором пар
// является правильным отображением
const list = [
[1,1],
[2,1],
[3,2],
[4,2]
];
return list.some(item=>(item[0]===x&&item[1]===y));
}
const conformity_1_func = (x,y)=>{
// соответствие задано мат.функцией на интервале
// является правильным отображением
if(x<1 || x>4) return false;
return y===Math.floor((x+1)/2);
}
const conformity_2_pair = (x,y)=>{
// соответствие задано набором пар
// не является правильным отображением
const list = [
[1,1],
[2,1],
[3,2],
[4,2],
[1,2]
];
return list.some(item=>(item[0]===x&&item[1]===y))?1:0;
}
const conformity_2_func = (x,y)=>{
// соответствие задано системой уравнений на интервале
// не является правильным отображением
if(x<1 && x>4) return false;
return (y===Math.floor((x+1)/2)) || (x===1&&y===2);
}
// реализация функции проверки правильности отображения
function compare(listX, listY, conformityFunc){
const res = [];
listX.forEach(x=>listY.forEach(y=>{
const isPresent = conformityFunc(x,y);
res[x]=(res[x]||0)+(isPresent?1:0);
/* console.log(x,y,isPresent); */
}));
return res.every(v=>v===1);
}
// проверяем
console.log(compare(X, Y, conformity_1_pair)); // true - является правильным отображением
console.log(compare(X, Y, conformity_1_func)); // true - является правильным отображением
console.log(compare(X, Y, conformity_2_pair)); // false - не является правильным отображением
console.log(compare(X, Y, conformity_2_func)); // false - не является правильным отображением