1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
uses crt; const nmax=20; type mas=array[1..nmax,1..nmax] of integer; procedure Vvod(var a:mas;x,y:byte;c:char); var i,j:byte; begin writeln('Матрица ',c); for i:=1 to x do begin for j:=1 to y do begin a[i,j]:=random(10)+1; write(a[i,j]:3); end; writeln; end; writeln; end; procedure Umn(a,b:mas;x,y:byte;var c:mas); var i,j,p:byte; begin for p:=1 to x do for j:=1 to x do begin c[p,j]:=0; for i:=1 to y do begin c[p,j]:=c[p,j]+a[p,i]*b[i,j]; end; end; writeln('Матрица C=A*B:'); for i:=1 to x do begin for j:=1 to x do write(c[i,j]:6); writeln; end; end; var a,b,c:mas; n,m:byte; begin randomize; repeat write('Количество строк матрицы А до ',nmax,' n='); readln(n); until n in [1..nmax]; repeat write('Количество столбцов матрицы А до ',nmax,' m='); readln(m); until m in [1..nmax]; Vvod(a,n,m,'A'); Vvod(b,m,n,'B'); Umn(a,b,n,m,c); end. |
Не знаю зачем, но можно так:
const productAndSub = (arr1, arr2) =>
arr1.reduce((a, b) => {return a * b}, 1) -
arr2.reduce((a, b) => {return a * b}, 1);
console.log(productAndSub([1, 2, 3], [-1, -2, -3]));
UPD: Исключительно для Алексея Шиманского реально в одну строку:
const productAndSub = (arr1, arr2) => arr1.reduce((a, b) => {return a * b}, 1) - arr2.reduce((a, b) => {return a * b}, 1);
UPD 2: Исключительно для Алексея Шиманского minify + uglify
(воспользовался этим сервисом):
const productAndSub=(c,d)=>c.reduce((c,d)=>c*d,1)-d.reduce((c,d)=>c*d,1);
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше
Функция МУМНОТ возвращает матричное произведение двух массивов. Результатом является массив с таким же числом строк, что и массив1, и с таким же числом столбцов, что и массив2.
Примечание: Если у вас установлена текущая версия Microsoft 365, можно просто ввести формулу в верхней левой ячейке диапазона вывода и нажать клавишу ВВОД, чтобы подтвердить использование формулы динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Синтаксис
МУМНОЖ(массив1; массив2)
Аргументы функции МУМНОЖ описаны ниже.
-
массив1, массив2 Обязательный. Перемножаемые массивы.
Замечания
-
Число столбцов в массиве1 должно быть таким же, как число строк в массиве «массив2», и оба массива должны содержать только числа.
-
Массив1 и массив2 могут быть заданы как диапазоны ячеев, константы массива или ссылки.
-
Функция МУМНОЖ возвращает значение ошибки #ЗНАЧ! в следующих случаях, указанных ниже.
-
Если какая-либо ячейка пуста или содержит текст.
-
Число столбцов в массиве1 отличается от числа строк в массиве «массив2».
-
-
Массив a, который является произведением двух массивов b и c, определяется следующим образом:
где i — номер строки, а j — номер столбца.
Примеры
Пример 1
Пример 2
Чтобы указанные выше формулы вычислялись правильно, нужно вводить их в виде формул массивов. После ввода формулы нажмите ввод, если у вас есть текущая Microsoft 365 подписка. в противном случае нажмите CTRL+SHIFT+ВВОД. Если формула не будет введена как формула массива, возвращается единственный результат.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
uses crt; const nmax=20; type mas=array[1..nmax,1..nmax] of integer; procedure Vvod(var a:mas;x,y:byte;c:char); var i,j:byte; begin writeln('Матрица ',c); for i:=1 to x do begin for j:=1 to y do begin a[i,j]:=random(10)+1; write(a[i,j]:3); end; writeln; end; writeln; end; procedure Umn(a,b:mas;x,y:byte;var c:mas); var i,j,p:byte; begin for p:=1 to x do for j:=1 to x do begin c[p,j]:=0; for i:=1 to y do begin c[p,j]:=c[p,j]+a[p,i]*b[i,j]; end; end; writeln('Матрица C=A*B:'); for i:=1 to x do begin for j:=1 to x do write(c[i,j]:6); writeln; end; end; var a,b,c:mas; n,m:byte; begin randomize; repeat write('Количество строк матрицы А до ',nmax,' n='); readln(n); until n in [1..nmax]; repeat write('Количество столбцов матрицы А до ',nmax,' m='); readln(m); until m in [1..nmax]; Vvod(a,n,m,'A'); Vvod(b,m,n,'B'); Umn(a,b,n,m,c); end.
Умножайте аргументы по элементам.
- Parameters
-
- x1, x2array_like
-
Входные массивы для умножения. Если
x1.shape != x2.shape
, они должны транслироваться в общую форму (которая становится формой вывода). - out ndarray, None или кортеж из ndarray и None, необязательно
-
Место,в которое сохраняется результат.Если предоставлено,оно должно иметь форму,на которую транслируются входы.Если не указано или None,возвращается свежераспределенный массив.Кортеж (возможен только как аргумент ключевого слова)должен иметь длину,равную количеству выходов.
- wherearray_like, optional
-
Это условие транслируется по входу. В местах, где условие истинно, массив
out
будет установлен на результат ufunc. В другомout
массив out сохранит свое исходное значение. Обратите внимание , что если инициализированout
массива создается по умолчаниюout=None
, места в нем , где условие ложно будет оставаться инициализирован. - **kwargs
-
Для других аргументов, содержащих только ключевые слова, см. Документацию ufunc .
- Returns
-
- yndarray
-
Произведение
x1
иx2
поэлементно. Это скаляр, если иx1
, иx2
являются скалярами.
Notes
Эквивалентно x1
* x2
с точки зрения широковещательной передачи массива.
Examples
>>> np.multiply(2.0, 4.0) 8.0
>>> x1 = np.arange(9.0).reshape((3, 3)) >>> x2 = np.arange(3.0) >>> np.multiply(x1, x2) array([[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.]])
Оператор *
может использоваться как сокращение для np.multiply
в ndarrays.
>>> x1 = np.arange(9.0).reshape((3, 3)) >>> x2 = np.arange(3.0) >>> x1 * x2 array([[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.]])