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有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
随机推荐
- Delphi中根据分类数据生成树形结构的最优方法
一. 引言: TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能 ...
- XML的基礎結構
1.xml是什麼? xml,Extensible Markup Language,扩展性标识语言,後綴名為.xml. 2.xml有什麼功能? xml功能是傳輸和儲存數據,用於不同的應用和平台數據共享和 ...
- linux python3 selenuim firefox
1.官网下载火狐浏览器最新版本复制到/usr/local/softwar 下 cd /usr/local/softwar 下 tar jxvf Firefox-latest-x86_64.tar.bz ...
- BZOJ4551[Tjoi2016&Heoi2016]树——dfs序+线段树/树链剖分+线段树
题目描述 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均 ...
- POJ3258-River Hopscotch-二分答案
一条河里有一串石头,给出石头间的间距,让你去掉m个石头,使最短间距最大. 二分答案,对于每一种mid,判断要不要删除这块石头.然后逼近答案. #include <cstdio> #incl ...
- 自学Linux Shell1.1-Linux初识
点击返回 自学Linux命令行与Shell脚本之路 1.1-Linux初识(架构.内核.shell) 1. Linux架构 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.(有 ...
- 【BZOJ3202】项链(莫比乌斯反演,Burnside引理)
[BZOJ3202]项链(莫比乌斯反演,Burnside引理) 题面 BZOJ 洛谷 题解 首先读完题目,很明显的感觉就是,分成了两个部分计算. 首先计算本质不同的珠子个数,再计算本质不同的项链个数. ...
- mysql数据库几种引擎
· InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持.(提供行级锁) · BDB:可替代InnoDB的事务引擎,支持COMMIT.ROLLBACK和其他事务特性. · Memor ...
- Hash碰撞 & 拒绝服务漏洞
前段时间在网上看到的: http://www.baidu.com/s?wd=Hash%E7%A2%B0%E6%92%9E+++%E6%8B%92%E7%BB%9D%E6%9C%8D%E5%8A%A1% ...
- Django model中的 class Meta 详解
通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model): bar = models.CharFi ...