умножение матрицы на число
помогите, пожалуйста, с решением 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, время: 19:58. |