Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2020, 15:07
Новичок на форуме
Отправить личное сообщение для Nicanor13 Посмотреть профиль Найти все сообщения от Nicanor13
 
Регистрация: 18.03.2020
Сообщений: 9

Поиск подматрицы
Матрицу A мы назавем "десятичной ", если после удаления каждой строки и столбца i, в полученной подматрице сумма элементов больше или равно 10 -и.

Например

A = [
      [2, 4, 6],
      [2, 2, 2], 
      [4, 8, 8]
]

Нужно написать функцию которая получает матрицу и возвращает true если она "десятичная " и false в обратном случае.

function matrixElementsSum(matrix) {}
console.log(decimalSubMatrix([[2, 4, 6],[2, 2, 2],[4, 8, 8]]))   //  true           
console.log(decimalSubMatrix([[1, 1, 1],[1, 1, 1],[1, 2, 1]]))    //  false               
console.log(decimalSubMatrix([[4, 6, 8, 1],[2, 3, 5, 6],[1, 2, 8, 1], [9, 1, 0, 3]]))  // true
console.log(decimalSubMatrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]))  //  false


Поможете решить задачу?
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2020, 16:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Nicanor13,
const sumArr = a => a.reduce((a,b) => a + b, 0);
const matrixСolumns = a => {
const {length} = a;
const columns = [];
for (let i = 0; i < length; i++) {
let temp = columns[i] = [];
for (let j = 0; j < length; j++) {
   temp.push(a[j][i])
}
}
return columns;
}

function decimalSubMatrix(matrix)
{ let sumTotal = sumArr(matrix.map(sumArr));
  if(sumTotal < 20) return false;
  const max = sumTotal - 10;
  const arr = matrix.slice(0).concat(matrixСolumns(matrix));
  return arr.every(a => sumArr(a) <= max)
}

console.log(decimalSubMatrix([[5, 0, 5],[0, 0, 0],[5, 0, 5]]))   //  true
console.log(decimalSubMatrix([[2, 4, 6],[2, 2, 2],[4, 8, 8]]))   //  true
console.log(decimalSubMatrix([[1, 1, 1],[1, 1, 1],[1, 2, 1]]))    //  false
console.log(decimalSubMatrix([[4, 6, 8, 1],[2, 3, 5, 6],[1, 2, 8, 1], [9, 1, 0, 3]]))  // true
console.log(decimalSubMatrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]]))  //  false
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать поиск со стороннего сайта kozlik Работа 1 19.09.2014 12:23
select отключить встроенный поиск skynet-mfd jQuery 0 04.03.2013 11:26
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
PagingToolbar и поиск DenQ ExtJS 5 02.11.2010 00:16
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31