计算轨迹相似度代码_谢符宝的博客-程序员宅基地

技术标签: 随感  杂题  

// test1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <vector>
#include <cstring>
#include <fstream>
#include <string>
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <map>
#include <ctime>
#include <iomanip>
#include <cmath>

using namespace std;

struct serie
{
	vector<double> vec;
	double label;
	double len;
};
double INF = 1e10;
serie series[10000];
double dpA[2000][2000];
double dpB[2000][2000];
int num = 637;
double coe=0.2;
int WIN = 0.2;
double down_ratio;
double DPA(int i, int j, int win)
{
	if ((i == 0 && j == win + 1) || (j == 0 && i == win + 1))
	{
		return dpA[i][j];;
	}
	if (abs(i - j) <= win)
		return dpA[i][j];
	return INF;
}
double DPB(int i, int j, int win)
{
	if ((i == 0 && j == win + 1) || (j == 0 && i == win + 1))
	{
		return dpB[i][j];;
	}
	if (abs(i - j) <= win)
		return dpB[i][j];
	return INF;
}
double getdis(int one, int two, int i, int j)
{
	vector<double>& vec1 = series[one].vec;
	vector<double>& vec2 = series[two].vec;
	int n = vec1.size();
	double ans = (vec1[i * 2] - vec2[j * 2])*(vec1[i * 2] - vec2[j * 2]) + (vec1[i * 2 + 1] - vec2[j * 2 + 1])*(vec1[i * 2 + 1] - vec2[j * 2 + 1]);
	return sqrt(ans);
}
double getdistance00(int one, int two)
{
	int n = series[two].vec.size() + 1;
	dpA[0][0] = 0;
	dpB[0][0] = 0;
	dpA[1][0] = 0;
	dpB[0][1] = 0;
	n /= 2;
	for (int i = 2; i <= min(n - 1, WIN + 1); i++)
	{
		dpA[i][0] = dpA[i - 1][0] + getdis(one, one, i - 1, i - 1 - 1);// fabs(series[one].vec[i - 1] - series[one].vec[i - 1 - 1]);
		dpB[0][i] = dpB[0][i - 1] + getdis(two, two, i - 1, i - 1 - 1);// fabs(series[two].vec[i - 1] - series[two].vec[i - 1 - 1]);getdis(two, two, i - 1, j - 1-1)
	}
	int win = WIN;
	for (int i = 1; i < n; i++)
		for (int j = max(1, i - win); j < min(n, i + win + 1); j++)
		{
			if (i != 1)
				dpA[i][j] = min(DPA(i - 1, j, win) + getdis(one, one, i - 1, i - 1 - 1), DPB(i - 1, j, win) + coe*getdis(one, two, i - 1, j - 1));
			else
				dpA[i][j] = DPB(i - 1, j, win) 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiefubao/article/details/52852951

智能推荐

python循环读取nc格式文件,并存入文本文件中_nc格式月度数据如何存储-程序员宅基地

循环读取NCEP提供的日平均辐射通量数据文件,计算月平均值并放入文本文件中_nc格式月度数据如何存储

Service Mesh概述_service mesh有什么概述性综述文章可以看_楚兴的博客-程序员宅基地

文章目录什么是服务网格?服务网格的特点理解服务网格为何使用服务网格?服务网格架构服务网格的实现模式Istio 架构解析从边车模式到 Service Mesh什么是边车模式边车模式设计边车模式解决了什么问题从边车模式到 Service MeshKubernetes vs Service Mesh什么是服务网格?服务网格是用于处理服务间通信的专用基础设施层。它负责通过包含现代云原生应用程序的复杂服..._service mesh有什么概述性综述文章可以看

Neural Storyteller_rainbow_lucky0106的博客-程序员宅基地

20180829 参考:https://www.nowcoder.com/courses/190/1/30Neural StorytellerNeural Storyteller是一个有趣的机器视觉项目,观察一张数字图片,然后尝试基于它看到的东西,想象出一个简短的爱情故事。Somatic公司Jason Toy将其集成到了模型市场。第一步:把图片作为输入提供给神经网络,在输出层产生...

ecs服务器配置git_阿里云服务器ECS(Centos8)下安装和配置Git_闫令琪的博客-程序员宅基地

阿里云服务器ECS(Centos8)下安装和配置Git————阿里云服务器ECS(Centos8)下安装和配置Git————一、首先在Centos通过yum下载安装Git命令:yum install git二、通过命令验证已安装的Git版本命令:git –version三、设置个人信息命令:git config –global user.name "Treasure"git config –glo..._阿里云服务器配置git用户

计算机科学加急审稿300元,计算机四区sci期刊加急发表sci正刊审稿20天录用_三无 粉丝的博客-程序员宅基地

产品详情介绍计算机四区sci期刊加急发表,sci正刊审稿20天录用,ei论文投稿被拒如何快速发表基于多特征融合的评论文本情感分析咨询:QQ相对最小执行时间方差云计算任务调度算法 基于差分隐私的数据匿名化隐私保护方法 基于多算法融合的移动通信客户流失预测模型 基于OpenFlow的SDN架构研究与实践 视频节目层次化搜索和方法的研究 基于LSI信息融合的实时算法研究 基于系统的音频信号分析设计与实现..._审稿快的四区sci

随便推点

进度条ProgressBar及ProgressDialog_weixin_30622107的博客-程序员宅基地

Main代码 1 package processdemo.example.administrator.processbardemo; 2 3 import android.app.Dialog; 4 import android.app.ProgressDialog; 5 import android.content.DialogInterface; 6 im..._processbardialog

解决PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target_伟呀呀呀呀的博客-程序员宅基地

java安全证书手动装配,解决PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target_pkix path building failed

finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程..._赤衿的博客-程序员宅基地

2.1 分析模板我们有两张地产仪表板如下图,想要在浏览上面模板分组表时点击省份或城市时直接跳转至下面模板显示对应省份或城市的结果,该如何操作呢?操作步骤这里添加模板的过程不再赘述,在需要设置跳转的组件右上角点击按钮,下方选择勾选开启跳转,可以看到跳转设置按钮即为可点击状态。点击跳转设置后即到设置界面,选择“+”以后出现两个跳转选项:分析模板和网页链接,选择分析模板,如下图:进入跳转分析模板设置界面..._finebi跳转设置正确的选项

经典动态规划问题——夺宝奇兵(C++)_在一座山上有很多珠宝,c++_小西小西笑嘻嘻的博客-程序员宅基地

题目链接:蓝桥杯算法提高VIP-夺宝奇兵 - C语言网 (dotcpp.com)题目描述:在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图:73 88 1 02 7 4 44 5 2 6 5”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-> 3-> 7的顺序,将得到最大值30样例输入573 88 1 0..._在一座山上有很多珠宝,c++

数电知识点总结第二章:逻辑代数基础_逻辑代数取反_两把刷子飞啊飞的博客-程序员宅基地

第一部分:逻辑代数的基本运算1.逻辑与(逻辑相乘):决定事物结果的全部条件同时具备时,结果才发生逻辑或(逻辑相加):决定事物的条件中只要有一个满足,结果就会发生逻辑非(逻辑求反):条件具备了,结果便不会发生;而条件不具备时,结果一定发生 实现与逻辑运算的单元电路称为与门,实现或逻辑运算的单元电路称为或门,实现非逻辑运算的单元电路称为非门(也称反相器)异或:当A、B不同时,_逻辑代数取反

hgoi#20190508_cpongo3的博客-程序员宅基地

T1-Bachgold Problem给你一个整数n(2≤n≤100000),问最多能将其分解成多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数,为这些质数。解法贪心,分解成2和3明显是最优的ac代码#include<bits/stdc++.h>using namespace std;int n;int main(){...

推荐文章

热门文章

相关标签