умножение матрицы на число
помогите, пожалуйста, с решением 2 задач
15. Напишите функцию, умножающую квадратную матрицу на число. Матрица и сомножитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться). Функция должна проверять также, что входная матрица квадратная. 16. Напишите функцию, умножающую матрицу на число. Матрица и числовой множитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться) или false, если строки матрицы имеют разную длину. |
var m1 = [[2,1],[3,9]], m2 = [[2,1],[3,9],[4,5]], m3 = [[2,1],[3,9],[4,5,6]]; function multi(m,n) { if (!m.every(function(n){return n.length==m.length})) { return alert('Матрица не квадратная'); } return m.map(function(a){return a.map(function(v){return v*n})}); } function multi_false(m,n) { if (!m.every(function(n){return m[0].length==n.length})) { return false; } return m.map(function(a){return a.map(function(v){return v*n})}); } console.log(multi(m1,3)); // [[6, 3], [9, 27]] console.log(multi(m2,3)); // Матрица не квадратная console.log(multi(m3,3)); // Матрица не квадратная console.log(multi_false(m1,3)); // [[6, 3], [9, 27]] console.log(multi_false(m2,3)); // [[6, 3], [9, 27], [12, 15]] console.log(multi_false(m3,3)); // false |
Думая, аффтору нужно так
Цитата:
function mult1(num, A) { var n = A.length; for (var i = 0; i < n; i++) { if (A[i].length != n) { alert('Ошибка!\nМатрица не квадратная.'); return false; } } var B = []; for (var i = 0; i < n; i++) { B[i] = []; for (var j = 0; j < n; j++) B[i][j] = num * A[i][j]; } return B; } Цитата:
function mult2(num, A) { var n = A.length, m = A[0].length; for (var i = 0; i < n; i++) { if (A[i].length != m) { alert('Ошибка!\nСтроки матрицы разной длины.'); return false; } } var B = []; for (var i = 0; i < n; i++) { B[i] = []; for (var j = 0; j < m; j++) B[i][j] = num * A[i][j]; } return B; } |
Часовой пояс GMT +3, время: 23:43. |