Javascript.RU

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

умножение матрицы на число
помогите, пожалуйста, с решением 2 задач

15. Напишите функцию, умножающую квадратную матрицу на число. Матрица и сомножитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться). Функция должна проверять также, что входная матрица квадратная.
16. Напишите функцию, умножающую матрицу на число. Матрица и числовой множитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться) или false, если строки матрицы имеют разную длину.
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2014, 03:01
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

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

Последний раз редактировалось depp, 10.06.2014 в 03:13.
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2014, 02:40
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Думая, аффтору нужно так

Сообщение от sega_gaga
15. Напишите функцию, умножающую квадратную матрицу на число. Матрица и сомножитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться). Функция должна проверять также, что входная матрица квадратная.
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;
}


Сообщение от sega_gaga
16. Напишите функцию, умножающую матрицу на число. Матрица и числовой множитель должны быть параметрами функции. Результатом функции должна быть новая матрица (старая должна сохраниться) или false, если строки матрицы имеют разную длину.
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;
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как посчитать число смайлов в тексте? sanika Общие вопросы Javascript 4 23.05.2014 01:00
округлить число Гробовщик Библиотеки/Тулкиты/Фреймворки 5 18.09.2013 17:45
определить число целое или нет dadli Общие вопросы Javascript 29 14.06.2012 22:59
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19