C#大矩阵乘法时间的开销

利用随机数初始化数组,并计算不同量数据所消耗的时间using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BigArray{ class Program { static void Main(string[] args) { DateTime d1 = System.DateTime.Now; const long M = 500; const long N = 500; long [,] A = new long [500 , 500]; long[,] B = new long[500, 500]; var listA = new List<List> (); var listB = new List<List>(); var listC = new List<List>(); Random random = new Random(); var itemA = new List(); var itemB = new List(); var itemC = new List(); for (long i = 0; i < M; i++) { for (long j = 0; j < N; j++) { int random_x = random.Next(0, 10); A[i, j] = random_x; int random_y = random.Next(0, 10); B[i, j] = random_y; // itemC.Add(random_y*random_x ); } /* listA.Add(itemA); listB.Add(itemB); listC.Add(itemC); */ } Multiply multiply = new Multiply(); long [,]MM= multiply.MatrixMultiply (A, B); DateTime d2 = System.DateTime.Now; TimeSpan ts = d2.Subtract(d1); Console.WriteLine("program'time_spend is:{0}ms", ts.TotalMilliseconds); Console.ReadLine(); } public class Multiply { public long[,] MatrixMultiply(long[,] A, long[,] B) { int rowA = A.GetLength(0); int colA = A.GetLength(1); int rowB = B.GetLength(0); int colB = B.GetLength(1); long[,] C = new long[rowA, colB]; try { for (long i = 0; i < rowA; i++) { for (long j = 0; j < colB; j++) { C[i, j] = 0; for (long k = 0; k < colA; k++) { C[i, j] = A[i, k] * B[k, j]; } } } return C; } catch { System.Exception exp = new Exception("前者矩阵列数不等于后者矩阵行数,不能相乘!"); throw exp; } } } }}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值