二维矩阵实现的多人多车求距离
来源:互联网 发布:步步高9688软件下载 编辑:程序博客网 时间:2024/05/16 02:02
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <cmath>
using namespace std;
#define M 5000
#define N 50000
#define P 1
struct Point{
int x;
int y;
};
//void mulMatri(int A[M][P],int B[P][N],int C[M][N],int m,int n,int p);
inline void mulMatri(Point** A,Point** B,float** C,int m,int n,int p);
int main()
{
int i,j;
Point** A,**B;
float **C;
A=(Point**)malloc(M*sizeof(Point *));
B=(Point**)malloc(P*sizeof(Point *));
C=(float**)malloc(M*sizeof(float *));
for(i=0;i<M;i++)
A[i]=(Point*)malloc(P*sizeof(Point));
for(i=0;i<P;i++)
B[i]=(Point*)malloc(N*sizeof(Point));
for(i=0;i<M;i++)
C[i]=(float*)malloc(N*sizeof(float));
//int A[M][P],B[P][N],C[M][N];
for(i=0;i<M;i++)
for(j=0;j<P;j++)
{
A[i][j].x=rand()%10;
A[i][j].y=rand()%10;
}
for(i=0;i<P;i++)
for(j=0;j<N;j++)
{
B[i][j].x=rand()%10;
B[i][j].y=rand()%10;
}
clock_t start,finish;
start=clock();
mulMatri( A,B,C,M,N,P);
finish=clock();
printf("%f ms\n",(float)(finish-start));
system("pause");
for(i=0;i<M;i++){
for(j=0;j<P;j++)
cout<<"("<<A[i][j].x<<","<<A[i][j].y<<") ";
cout<<endl;
}
for(i=0;i<P;i++){
for(j=0;j<N;j++)
cout<<"("<<B[i][j].x<<","<<B[i][j].y<<") ";
cout<<endl;
}
for(i=0;i<M;i++){
for(j=0;j<N;j++)
cout<<C[i][j]<<" ";
cout<<endl;
}
for(i=0;i<M;i++)
free(A[i]);
for(i=0;i<P;i++)
free(B[i]);
for(i=0;i<M;i++)
free(C[i]);
free(A);
free(B);
free(C);
return 0;
}
//void mulMatri(int A[M][P],int B[P][N],int C[M][N],int m,int n,int p)
inline void mulMatri(Point** A,Point** B,float** C,int m,int n,int p)
{
int i,j,k;
for(i=0;i<m;i++)
{
float min_value,min_idx;
min_value=10;
for(j=0;j<n;j++)
{
for(k=0;k<p;k++)
{
int x=A[i][k].x-B[k][j].x;
int y=A[i][k].y-B[k][j].y;
C[i][j]=sqrt(x*x+y*y);//不要使用pow,太慢
/*if(C[i][j]<min_value)
{
min_value=C[i][j];
min_idx=j;
}*/
}
}
//cout<<"person="<<i<<" "<<"car="<<min_idx<<endl;
}
}
来自为知笔记(Wiz)
0 0
- 二维矩阵实现的多人多车求距离
- 多人多车求距离_cpu&gpu
- 多人多车求距离_cpu&&gpu_寄存器优化_sharememory优化
- 多人多车求距离——cpu&gpu
- 求二维矩阵的最大子矩阵
- 通过矩阵求两个向量集中元素两两之间的欧氏距离(python实现)
- 通过矩阵求两个向量集中元素两两之间的欧氏距离(python实现)
- 求两个矩阵中向量的欧氏距离(python实现)
- 求矩阵各个元素两两之间的欧式距离(python实现)
- 求矩阵中元素和最大的二维子矩阵
- 【动态规划】求二维矩阵的最大和子矩阵
- Redis实现多人多聊天室
- 2.15 求二维数组的子矩阵的最大和
- 二维矩阵求解最大移动距离
- 二维矩阵实现矩阵相乘
- 求二维矩阵最大子矩阵和
- 求矩阵中的最大二维矩阵
- java实现求二维数组的鞍点
- 多人多车求距离_cpu&gpu
- Intel Parameter-Framework简介(不定期更新)
- 二维矩阵相乘——cpu&&gpu
- 多人多车求距离——cpu&gpu
- 二维矩阵实现矩阵相乘
- 二维矩阵实现的多人多车求距离
- CUDA编程快速入门
- 欢迎使用CSDN-markdown编辑器
- 无人驾驶(一)——探测设备比较
- linux中使用pthread和opencv多线程编程
- 【转载】景深 (Depth of field)
- Windows利用Github创建共享库
- 菜鸟跑通caffe(三)——编译NVIDIA/caffe-0.13/0.14+digist
- 菜鸟跑通caffe(四)——fast-cnn编译记录