zoukankan      html  css  js  c++  java
  • 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);
    

      

  • 相关阅读:
    【初码干货】使用阿里云开放搜索服务快速搭建资源搜索网站
    很认真的聊一聊程序员的自我修养
    【初码干货】使用阿里云邮件推送服务架设自己邮件验证与推送体系
    Supervisor 修改配置文件中的参数值,需要更新服务才能生效
    如何关闭 IntelliJ IDEA 的 Find in Path ?
    Jenkins 服务启动/关闭/重启命令,设置端口
    java.util.ConcurrentModificationException 问题处理
    MySQL 将字符串类型的小数转换为保留位数的小数类型
    Apache Tomcat 文件包含漏洞(CVE-2020-1938)
    Error EElFTPSError: Data channel transfer error (error code is 10054) MobaXterm
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/7743530.html
Copyright © 2011-2022 走看看