Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 151 additions & 0 deletions 2021/S211000805-孙旻聿/homework1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
#include<iostream>
#include<vector>
#include <windows.h>
#include <fstream>
#include <time.h>
using namespace std;

int n=2000;
int i=0,j=0,k=0;
int temp;

//计算ijk的函数
vector<vector<int> > multi_ijk(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j){
temp = 0;
for (k = 0; k < n; ++k){

temp += ve1[i][k] * ve2[k][j];
}
ve[i][j] = temp;
}
return ve;
}

//计算kij的函数
vector<vector<int> > multi_kij(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (k = 0; k < n; ++k)
for (i = 0; i < n; ++i){
temp = ve1[i][k];
for ( j = 0; j < n; ++j){

ve[i][j] += temp * ve2[k][j];
}
}
return ve;
}

//计算jki的函数
vector<vector<int> > multi_jki(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (j = 0; j < n; ++j)
for (k = 0; k < n; ++k){
temp = ve2[k][j];
for (i = 0; i < n; ++i){

ve[i][j]+= ve1[i][k]*temp;
}
}
return ve;
}

//计算ikj的函数
vector<vector<int> > multi_ikj(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (i = 0; i < n; ++i)
for (k = 0; k < n; ++k){
temp = ve1[i][k];
for (j = 0; j < n; ++j){

ve[i][j] += temp *ve2[k][j];
}
}
return ve;
}

//计算jik的函数
vector<vector<int> > multi_jik(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (j = 0; j < n; ++j)
for (i = 0; i < n; ++i){
temp = 0;
for (k = 0; k < n; ++k){

temp += ve1[i][k]*ve2[k][j];
}
ve[i][j] = temp;
}
return ve;
}

//计算kji的函数
vector<vector<int> > multi_kji(vector<vector<int> > &ve1, vector<vector<int> > &ve2,int n){
vector<vector<int> > ve(n,vector<int>(n,0) ) ;//定义新数组用于保存计算结果
for (k = 0; k < n; ++k)
for (j = 0; j < n; ++j){
temp=ve2[k][j];
for (i = 0; i < n; ++i){
ve[i][j]+=ve1[i][k]*temp;
}
}
return ve;
}

int main(){
//初始化矩阵
vector<vector<int> > ve1(n, vector<int>(n));
for (i = 0; i < n;++i)
for (j = 0; j < n; ++j)
ve1[i][j]=rand()%10;
vector<vector<int> > ve2(n, vector<int>(n));
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j)
ve2[i][j]=rand()%10;
vector<vector<int> > ve;

cout<<"========孙旻聿-S211000805========"<<endl;

//定义开始结束时间
DWORD Start, End;

//ijk
Start = GetTickCount();
ve = multi_ijk(ve1, ve2,n);
End = GetTickCount();
cout<<"【ijk】: "<<End-Start<<"ms"<<endl;

//kij
Start = GetTickCount();
ve = multi_kij(ve1, ve2,n);
End = GetTickCount();
cout<<"【kij】: "<<End-Start<<"ms"<<endl;

//jki
Start = GetTickCount();
ve = multi_jki(ve1, ve2,n);
End = GetTickCount();
cout<<"【jki】: "<<End-Start<<"ms"<<endl;

//ikj
Start = GetTickCount();
ve = multi_ikj(ve1, ve2,n);
End = GetTickCount();
cout<<"【ikj】: "<<End-Start<<"ms"<<endl;

//jik
Start = GetTickCount();
ve = multi_jik(ve1, ve2,n);
End = GetTickCount();
cout<<"【jik】: "<<End-Start<<"ms"<<endl;

//kji
Start = GetTickCount();
ve = multi_kji(ve1, ve2,n);
End = GetTickCount();
cout<<"【kji】: "<<End-Start<<"ms"<<endl;

return 0;
}
Binary file added 2021/S211000805-孙旻聿/homework1.exe
Binary file not shown.
Binary file added 2021/S211000805-孙旻聿/homework1_result.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 103 additions & 0 deletions 2021/S211000814-周欣姣/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
//
// main.cpp
// CA
//
// Created by Apple on 2021/9/29.
// Copyright 漏 2021 apple. All rights reserved.
//

#include <iostream>
#include<ctime>
using namespace std;
const int n=2000;
int a[n][n],b[n][n],c[n][n];
void myrandom(){
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
a[i][j]=rand();
b[i][j]=rand();
c[i][j]=0;
}
}
}
int main(){
int i,j,sum,k,r;
//ijk
clock_t startTime,endTime;
startTime = clock();
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
endTime = clock();
cout<<"ijk: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;

//jik
startTime = clock();
for (j=0; j<n; j++) {
for (i=0; i<n; i++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
endTime = clock();
cout<<"jik: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;


//kij
startTime = clock();
for (k=0; k<n; k++) {
for (i=0; i<n; i++) {
r = a[i][k];
for (j=0; j<n; j++)
c[i][j] += r * b[k][j];
}
}
endTime = clock();
cout<<"kij: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;

//ikj
startTime = clock();
for (i=0; i<n; i++) {
for (k=0; k<n; k++) {
r = a[i][k];
for (j=0; j<n; j++)
c[i][j] += r * b[k][j] ;
}
}
endTime = clock();
cout<<"ikj: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;



//jki
startTime = clock();
for (j=0; j<n; j++) {
for (k=0; k<n; k++) {
r = b[k][j];
for (i=0; i<n; i++)
c[i][j] += a[i][k] * r;
}
}
endTime = clock();
cout<<"jki: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;



//kji
startTime = clock();
for (k=0; k<n; k++) {
for (j=0; j<n; j++) {
for (i=0; i<n; i++)
c[i][j] += a[i][k] * b[k][j];
}
}
endTime = clock();
cout<<"kji: "<< "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" <<endl;
}
Binary file added 2021/S211000814-周欣姣/运行结果.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
132 changes: 132 additions & 0 deletions 2021/S2110008321-霍晓飞/computer architecture-1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
#include <iostream>
#include <windows.h>
#include <fstream>
#include <time.h>
using namespace std;
const int n=2000;
int a[n][n],b[n][n],c[n][n];
int copya[n][n],copyb[n][n];
void random(){
srand(time(0)); // 随机种子
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
a[i][j]=rand()%10; //产生随机数
b[i][j]=rand()%10;
c[i][j]=0;
}
}
ofstream outfile;
outfile.open("myfile.txt");
for(int i=0;i<n;i++){
for (int j=0;j<n;j++){
outfile<<a[i][j]<<' '; //产生随机数
copya[i][j]=a[i][j];
}
outfile<<endl;
}
outfile<<endl;
for(int i=0;i<n;i++){
for (int j=0;j<n;j++){
outfile<<b[i][j]<<' '; //产生随机数
copyb[i][j]=b[i][j];
}
outfile<<endl;
}
outfile.close();
}
void reset(){
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
a[i][j]=copya[i][j]; //产生随机数
b[i][j]=copyb[i][j];
c[i][j]=0;
}
}
}
int main(){
int i,j,sum,k,r;
random();
//ijk
DWORD Start, End;
Start = GetTickCount();
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
End = GetTickCount();
cout<<"ijk: "<<End-Start<<"ms"<<endl;


//kij
reset();
Start = GetTickCount();
for (k=0; k<n; k++) {
for (i=0; i<n; i++) {
r = a[i][k];
for (j=0; j<n; j++)
c[i][j] += r * b[k][j];
}
}
End = GetTickCount();
cout<<"kij: "<<End-Start<<"ms"<<endl;


//jki
reset();
Start = GetTickCount();
for (j=0; j<n; j++) {
for (k=0; k<n; k++) {
r = b[k][j];
for (i=0; i<n; i++)
c[i][j] += a[i][k] * r;
}
}
End = GetTickCount();
cout<<"jki: "<<End-Start<<"ms"<<endl;


//ikj
reset();
Start = GetTickCount();
for (i=0; i<n; i++) {
for (k=0; k<n; k++) {
r = a[i][k];
for (j=0; j<n; j++)
c[i][j] += r * b[k][j] ;
}
}
End = GetTickCount();
cout<<"ikj: "<<End-Start<<"ms"<<endl;


//jik
reset();
Start = GetTickCount();
for (j=0; j<n; j++) {
for (i=0; i<n; i++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
End = GetTickCount();
cout<<"jik: "<<End-Start<<"ms"<<endl;


//kji
reset();
Start = GetTickCount();
for (k=0; k<n; k++) {
for (j=0; j<n; j++) {
for (i=0; i<n; i++)
c[i][j] += a[i][k] * b[k][j];
}
}
End = GetTickCount();
cout<<"kji: "<<End-Start<<"ms"<<endl;
}
Binary file added 2021/S2110008321-霍晓飞/hxf_result.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading