欢迎访问环保网!
热线电话:400-888-5105

当前位置: 首页 >环保>通风设备>排烟风机 >包邮鸿冠HF-100S 4寸吊顶管道风机

包邮鸿冠HF-100S 4寸吊顶管道风机

起批量
1

产品属性

品牌
其他
型号
HF-100S /4寸
材质
ABS
电源电压
220V
风量
170
功率
35
适用范围
排烟机,抽风机
产地
深圳

包邮鸿冠HF-100S 4寸吊顶管道风机静音洗手间厨房排风换气扇现货






























































































































































































矩阵乘法

 编辑
矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义[1]  。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m?n的矩阵就是m?n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。
中文名矩阵乘法外文名Matrix multiplication基本性质结合性 等应用学科数学,工程学,信息学应用领域代数,离散

目录

  1. ? 定义
  2. ? 注意事项
  3. ? 基本性质
  4. ? Hadamard乘积
  5. ? Kronecker乘积
  1. 1 实现
  2. ? C 代码
  3. 2 实际应用
  4. ? 数据统计
  1. ? VOJ1067
  2. ? 经典题目9
  3. ? 经典题目10
  4. ? 矩阵乘法例题

定义

A
  
的矩阵,B
  
的矩阵,那么称
  
的矩阵C为矩阵AB的乘积,记作
  
,其中矩阵C中的第
 
行第
  
列元素可以表示为:
如下所示:

注意事项

当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。
  1. 矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
  2. 乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

基本性质

  1. 乘法结���律: (AB)C=A(BC).[2] 
  2. 乘法左分配律:(A B)C=AC BC[2] 
  3. 乘法右分配律:C(A B)=CA CB[2] 
  4. 对数乘的结合性k(AB)=(kA)B=A(kB).
  5. 转置 (AB)T=BTAT.
  6. 矩阵乘法一般不满足交换律[3]  。

Hadamard乘积

 
矩阵
  
  
矩阵
  
的Hadamard积记为
  
。其元素定义为两个矩阵对应元素的乘积
  
m?n矩阵[2]  。例如,

Kronecker乘积

Kronecker积是两个任意大小的矩阵间的运算,表示为
  
。克罗内克积也成为直积或张量积[4]  .以德国数学家利奥波德?克罗内克命名。计算过程如下例所示:

实现

编辑

C 代码

1
2
3
4
5
6
7
8
9
10
11
12
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
struct Matrix:vector<vector<int> >//使用标准容器vector做基类,需#include语句
{
    Matrix(int x=0,int y=0,int z=0)//初始化,默认为0行0列空矩阵
    {
        assign(x,vector<int>(y,z));
    }
    int h_size()const//常量说明不可省,否则编译无法通过
    {
        return size();
    }
    int l_size()const
    {
        return empty()?0:front().size();//列数要考虑空矩阵的情况
    }
    Matrix pow(int k);//矩阵的k次幂,用快速幂实现,k为0时返回此矩阵的单位矩阵
};
Matrix operator*(const Matrix &m,const Matrix &n)//常量引用避免拷贝
{
    if(m.l_size()!=n.h_size())return Matrix();//非法运算返回空矩阵
    Matrix ans(m.h_size(),n.l_size());
    for(int i=0; i!=ans.h_size();  i)
        for(int j=0; j!=ans.l_size();  j)
            for(int k=0; k!=m.l_size();  k)
                ans[i][j] =m[i][k]*n[k][j];
    return ans;
}
Matrix Matrix::pow(int k)
{
    if(k==0)
    {
        Matrix ans(h_size(),h_size());
        for(int i=0; i!=ans.h_size();  i)
            ans[i][i]=1;
        return ans;
    }
    if(k==2)return (*this)*(*this);
    if(k%2)return pow(k-1)*(*this);
    return pow(k/2).pow(2);
}

实际应用

编辑

数据统计

某公司有四个工厂,分布在不同地区,同时三种产品,产量(单位;t),试用矩阵统计这些数据。
工厂\产品 P1 P2 P3
5 2 4
3 8 2
6 0 4
0 1 6
可用下述矩阵描述
  
,其中四行分别表示甲乙丙丁四个工厂的生产情况,三列分布表示三种产品P1,P2,P3的产量。
再设矩阵
  
,其中第一列表示三种产品的单件利润,第二列表示三种产品的单件体积。
矩阵C的第一列数据分别表示四个工厂的利润,第二列分别表示四个工厂产品需要的存储空间。

VOJ1067

我们可以用上面的方法二分求出任何一个线性递推式的第n项,其对应矩阵的构造方法为:在右上角的(n-1)*(n-1)的小矩阵中的主对角线上填1,矩阵第n行填对应的系数,其它地方都填0。例如,我们可以用下面的矩阵乘法来二分计算f(n) = 4f(n-1) - 3f(n-2) 2f(n-4)的第k项:
利用矩阵乘法求解线性递推关系的题目我能编出一卡车来。这里给出的例题是系数全为1的情况。
给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值
把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。类似地,C*A的第i行第j列就表示从i到j经过3条边的路径数。同理,如果要求经过k步的路径数,我们只需要二分求出A^k即可。
1
2
3
4
5
6
7
8
9
10
11
12
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 10
using namespace std;
const int mod = 7777777;
typedef long long LL;
 
struct matrix{
  LL a[10][10];
}origin;
int n,m;
 
matrix multiply(matrix x,matrix y)
{
   matrix temp;
   memset(temp.a,0,sizeof(temp.a));
   for (int i=0;i<n;i )
   {
      for (int j=0;j<n;j )
      {
         for (int k=0;k<n;k )
         {
            temp.a[i][j] =x.a[i][k]*y.a[k][j];
            temp.a[i][j]=(temp.a[i][j])%mod;
         }
      }
   }
   return temp;
}
 
matrix matmod(matrix A,int k)
{
    matrix res;
    memset(res.a,0,sizeof res.a);
    for (int i=0;i<n;i ) res.a[i][i]=1;
    while(k)
    {
        if (k&1) res=multiply(res,A);
        k>>=1;
        A=multiply(A,A);
    }
    return res;
}
void print(matrix x)
{
   for (int i=0;i<n;i )
   {
      for (int j=0;j<n;j )
          cout<<" "<<x.a[i][j];puts("");
   }
   printf("---------------\n");
}
int main()
{
    int k;
    while (cin>>n>>k)
    {
        memset(origin.a,0,sizeof origin.a);
        origin.a[0][0]=1;
        for (int i=1;i<=n;i )
        {
            origin.a[i][0]=1;
            for (int j=0;j<i;j )
                origin.a[i][0] =origin.a[j][0];
        }
        // print(origin);
        matrix res;
        memset(res.a,0,sizeof res.a);
        for (int i=0;i<n-1;i )
          res.a[i][i 1]=1;
        for (int i=0;i<n;i ) res.a[n-1][i]=1;
        //print(res);
        res=matmod(res,k-1);
        LL fans=0;
        for (int i=0;i<n;i )
        {
            fans =res.a[0][i]*origin.a[i][0];
            fans%=mod;
        }
        cout<<fans<<endl;
    }
    return 0;





























































































规格参数
型号 HF-100S /4寸   材质 ABS  
电源电压 220V  (V) 风量 170  
功率 35  (W) 适用范围 排烟机,抽风机  
产地 深圳   品牌 鸿冠  
包装参数
体积(m²) 0
产品重量(kg) 0
代理商供货
退换货规则说明
申请方式

1,在线申请:您可以在"我的订单"中找到您需要退换修的订单,点击”申请退款/退货”即可。我们的工作人员会在2个工作日 内和您取得联系,你可以随时在线查看你的退换修状态。

注意事项

1,“7天无理由退换货”适用于买家在收到货品后因不满意货品希望退换货的情形。

2,因质量问题产生的退换货,邮费由平台供应商承担(此质量问题为货品破损或残缺)。非商品质量问题的退换货,应由买家承担往返运费。

3,退换货要求退换的商品在平台供应商收到时有完整的外包装、配件、标牌等;待退换的物品被用过、人为破坏或标牌拆卸的不予退换。

(1)符合退货政策的商品必须包装完整、数量准确且不影响再次销售,退货的同时必须退回相应的发票和相关文件。

(2)请对寄回的商品妥善包装,若是退换货过程中由于包装过于简单造成的物流损坏,平台供应商不承担商品完整责任。

(3)发票需单独寄送。退换货时,如涉及发票退回,请您不要将发票放在货物中一起寄送,平台供应商客服人员将和您确认发票寄送地址,避免丢失。

4,退货商品的价款到账时间因支付方式的不同而有所差异,具体应参照相关银行或支付工具的说明提示,平台供应商不对退换货费用的到账时间做任何形式的保证。

特别提醒:为避免由于商品滞留造成的经济损失,所有退换货商品,买家应在所规定之时间内发回(以物流签收时间次日起7天内为准),超过规定时间仍不能将退换商品发出的,平台供应商将不予接受该退换货商品。

联系方式
注意:1 . 使用电话联系可有效保证您的号码隐私不被泄露
          2 . 拨打后可在后台进行拨打记录查询
          3 . 成交后在会员中心确认可获得积分
联系人:巫小姐 (市场部/市场经理)
电话:13590192208
给我留言
注意:1. 供应商将在24小时内给您回复,回复内容将以短信形式发送至您手机。
2. 对产品的尺寸,质量,规格,库存等方面技术问题进行咨询,我们有专人进行回复,因厂家随时会更改产品的相关信息,请以厂家实际产品为准。
咨询产品:
包邮鸿冠HF-100S 4寸吊顶管道风机
联系电话:
联系人:
留言详情: