JavaScript之数值计算
//两等长数组对应元素之间做减法运算【可拓展:基本运算(+/-*//)】
function array_dif(length,arrayA,arrayB){
var array = new Array();
for(var i = 0;i<length;i++){
array.push(arrayA[i]-arrayB[i]);
//console.log(arrayA[i]-arrayB[i]);
}
return array;
}
real = [181,135,61,63,53,60,51,5];
interests = [175,145,71,66,57,59,62,9];
array_dif(8,interests,real);
function array_euclideanMetric(size,pointsA,pointsB){//求欧式距离
var array = new Array();
for(var i = 0;i<size;i++){
array.push(Math.sqrt(Math.pow(pointsA[i][0] - pointsB[i][0],2)+Math.pow(pointsA[i][1] - pointsB[i][1],2)));
console.log("第"+i+":" + Math.sqrt(Math.pow(pointsA[i][0] - pointsB[i][0],2)+Math.pow(pointsA[i][1] - pointsB[i][1],2)));//
}
return array;
}
real_points = [[1,181],[2,135],[3,61],[4,63],[5,53],[6,60],[7,51],[8,5]];
interests_points = [[1,175],[2,145],[3,71],[4,66],[5,57],[6,59],[7,62],[8,9]];
array_euclideanMetric(8,interests_points,real_points);
function simularity_byEuclideanMetric(size,rate,baseArray,euclideanMetricArray){//通过计算点之间的欧式距离,计算坐标点数组的两相似度[rate:判断为相似点的阈值;注意:x轴值统一不变]
var count = 0; //计数器:相似的点
var array = [];
for(var i = 0;i<size;i++){
if(rate <= Math.abs(baseArray[i]-euclideanMetricArray[i])/baseArray[i]){
array.push(1);
count++;
}
else
array.push(0);
}
return count/size;
}
function array_euclideanMetric(size,pointsA,pointsB){//求欧式距离
var array = new Array();
for(var i = 0;i<size;i++){
array.push(Math.sqrt(Math.pow(pointsA[i][0] - pointsB[i][0],2)+Math.pow(pointsA[i][1] - pointsB[i][1],2)));
//console.log("第"+i+":" + Math.sqrt(Math.pow(pointsA[i][0] - pointsB[i][0],2)+Math.pow(pointsA[i][1] - pointsB[i][1],2)));//
}
return array;
}
//两等长数组对应元素之间做减法运算【可拓展:基本运算(+/-*//)】
function array_dif(length,arrayA,arrayB){
var array = new Array();
for(var i = 0;i<length;i++){
array.push(arrayA[i]-arrayB[i]);
//console.log(arrayA[i]-arrayB[i]);
}
return array;
}
function simularity_byEuclideanMetric(size,rate,baseArray,euclideanMetricArray){//通过计算点之间的欧式距离,计算坐标点数组的两相似度[rate:判断为相似点的阈值;注意:x轴值统一不变]
var count = 0; //计数器:相似的点
var array = [];
for(var i = 0;i<size;i++){
if(rate <= Math.abs(baseArray[i]-euclideanMetricArray[i])/baseArray[i]){
array.push(1);
count++;
}
else
array.push(0);
}
return count/size;
}
real = [181,135,61,63,53,60,51,5];
interests = [175,145,71,66,57,59,62,9];
real_points = [[1,181],[2,135],[3,61],[4,63],[5,53],[6,60],[7,51],[8,5]];
interests_points = [[1,175],[2,145],[3,71],[4,66],[5,57],[6,59],[7,62],[8,9]];
euclideanMetrics = array_euclideanMetric(8,interests_points,real_points);
rate = 0.85;
simularity_byEuclideanMetric(real.length,rate,interests,euclideanMetrics);
JavaScript之数值计算的更多相关文章
- JavaScript基础
JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...
- 悟透JavaScript
要理解JavaScript,你得首先放下对象和类的概念,回到数据和代码的本原.前面说过,编程世界只有数据和代码两种基本元素,而这两种元素又有着纠缠不清的关系.JavaScript就是把数据和代码都简化 ...
- 悟透JavaScript(理解JS面向对象的好文章)
引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...
- 【阿里李战】解剖JavaScript中的 null 和 undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- javascript基础01
javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...
- Python开发【前端】:JavaScript
JavaScript入门 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- python成长之路【第十五篇】:JavaScript初步认识
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...
- Javascript常用对象的属性和方法
javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...
- JavaScript常用对象的方法和属性
---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
随机推荐
- python之tkinter使用-文件系统遍历
# tkinter:文件系统遍历 import tkinter as tk, os from time import sleep class DirList(object): def __init__ ...
- Lodop设置打印维护返回打印语句代码
打印设计关闭时,可以返回设计的打印代码,打印维护则返回成功打印的次数.不过打印维护也是返回打印程序代码的,方法就是加个语句,这个语句是: LODOP.SET_PRINT_MODE("PRIN ...
- 14.5 富文本编辑【JavaScript高级程序设计第三版】
富文本编辑,又称为WYSIWYG(What You See Is What You Get,所见即所得).在网页中编辑富文本内容,是人们对Web 应用程序最大的期待之一.虽然也没有规范,但在IE 最早 ...
- C#利用反射来判断对象是否包含某个属性的实现方法
本文实例展示了C#利用反射来判断对象是否包含某个属性的实现方法,对于C#程序设计人员来说有一定的学习借鉴价值. 具体实现代码如下: /// <summary> /// 利用反射来判断对象是 ...
- 非关心数据库无法进行连表查询 所以我们需要在进行一对多查询时候 无法满足 因此需要在"1"的一方添加"多"的一方的的id 以便用于进行连表查询 ; 核心思想通过id进行维护与建文件
非关心数据库无法进行连表查询 所以我们需要在进行一对多查询时候 无法满足 因此需要在"1"的一方添加"多"的一方的的id 以便用于进行连表查询 ; 核心思想通 ...
- [代码]--c#-实现局域网聊天
服务器端: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Sys ...
- BZOJ2004 HNOI2010公交线路(状压dp+矩阵快速幂)
由数据范围容易想到矩阵快速幂和状压. 显然若要满足一辆公交车的相邻站台差不超过p,则每相邻p个站台中每辆车至少经过一个站台.可以发现这既是必要的,也是充分的. 开始的时候所有车是相邻的.考虑每次把一辆 ...
- BZOJ5337 [TJOI2018] 碱基序列 【哈希】【动态规划】
题目分析: 这道题的难点在于要取模,而题面没有写. 容易想到一个O(1E7)的dp.KMP或者哈希得到相关位置然后对于相关位置判断上一个位置有多少种情况. 代码: #include<bits/s ...
- 深入理解Adaboost算法
理解算法确实是欲速则不达,唯有一步一步慢慢看懂,然后突然觉得写的真的太好了,那才是真的有所理解了. Adaboost的两点关键点: 1. 如何根据弱模型的表现更新训练集的权重: 2. 如何根据弱模型的 ...
- Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)
Luogu 1525 [NOIP2010]关押罪犯 (贪心,并查集) Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨 ...