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有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
随机推荐
- 画caffe训练loss曲线
Linux下操作 1. 将loss值存储到lossInf.txt中 fName1='loss.txt' cat loss.log | grep "solver.cpp:218] Iterat ...
- 一本通1536数星星 Stars
1536:[例 2]数星星 Stars 时间限制: 256 ms 内存限制: 65536 KB [题目描述] 原题来自:Ural 1028 天空中有一些星星,这些星星都在不同的位置,每 ...
- BZOJ4182 Shopping(点分治+树形dp)
点分治,每次考虑包含根的连通块,做树形多重背包即可,dfs序优化.注意题面给的di范围是假的,坑了我0.5h,心态炸了. #include<iostream> #include<cs ...
- day26 单继承
继承是创建新类的一种方式,目的就为了减少代码.表达了子类是父类的关系,比如狗是动物,教授是老师一个类可以多个类继承,所有语言都是这样的一个类可以继承多个父类 ,只有python支持多继承子类可以找到父 ...
- 【BZOJ1826】[JSOI2010]缓存交换(贪心)
[BZOJ1826][JSOI2010]缓存交换(贪心) 题面 BZOJ 洛谷 题解 当缓存不满显然直接放进去,满了之后考虑拿走哪一个.不难发现拿走下一次出现时间最晚的那个一定不会更差. 那么用一个堆 ...
- BZOJ 3503 [CQOI2014]和谐矩阵
题目链接 BZOJ 3503 题解 没想到--直接用暴力的\(O((nm)^3)\)算法,居然能过?! 高斯消元解异或方程组. #include <cstdio> #include < ...
- 十一、java线程
目录: 一.线程的基本概念 二.线程的创建和启动 三.线程的调度和优先级 四.线程的状态控制 五.线程同步 一.线程的基本概念 线程是一个程序内部的顺序控制流 线程和进程的区别: 每个进程都由独立的代 ...
- nginx location详解
Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... } [=|~|~*|^~|@] 被称作 location modifier ...
- winreg模块的使用
python有内置的注册表操作库--winreg(在33版本中为winreg,在2x版本为_winreg). 1.打开键,枚举键值 # -*- coding: gbk -*- import winre ...
- H5新特性之geolocation
geolocation是H5新增的对象,它用于定位,继承在navigator对象内,以前用navigator只用到userAgent,现在就多了这个geolocation 有2种方法(getCurre ...