位移是可以直接相加减的吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位移是可以直接相加减的吗?相关的知识,希望对你有一定的参考价值。

比如说A相对于B以10m/s向右运动。C相对于A以10m/s向右运动。但B相对于C并不是20m/s运动。而是一个小于20的数。
不过,我想为一则可以直接相加减。不知道对不对?

当然不可以,位移是矢量,不能像标量一样四则运算。
位移的加法应当满足平行四边形法则。位移的差应当用三角形法则。位移的乘除法比较复杂。
这个是位移(矢量)详细的运算法则:

http://math.dhu.edu.cn/weblearning/math/jxjh/jbgn/xiangliang/xiangliang_2.htm
参考技术A 不完全是,应该根据矢量运算法则,
<1>如果是一维(即一条直线上的运动),则可以直接相加减,但首先应确定正方向,即+,-号
<2>如果是二维平面,应根据平行四边形法则计算
<3>如果是空间三个或以上的位移,应建立空间坐标系,按照空间向量计算法则计算.
参考技术B 位移和速度的确有很大的区别,在一条直线上时可以相加减的。
但也有例外假如说我们可以证明位移与速度是等价的那它就不是可以在一条直线上时可以相加减的。本回答被提问者采纳
参考技术C 位移是向量,可以直接相加减,但是由于有方向,无法比较大小.
做位移的运算时,一般在图上进行.
方向相同就直接加就成了
方向不同就要用平行四边形法或三角法来作和和差
参考技术D 位移是矢量,具有方向性,是不可以的,不能像标量一样四则运算。
位移的加法应当满足平行四边形法则。位移的差用三角形法则。只有方向在一条直线上时才可以直接相加减。

java中的浮点数相加

      今天遇到一个比较有意思的问题,就是两个浮点数相加怎么都得不到正确的答案,刚开始也很纳闷,后来通过在网上找资料后,明白了原来浮点数用2进制进行加减的话确实是会出现这种情况的,也找到了解决办法,所以记录下来,也算是一个比较有意思的认识吧!

       首先我们来看看两个带小数的浮点数相加会是什么样子的

package com.controller;

public class Test {
	public static void main(String[] args) {
	// TODO Auto-generated method stub
        double a = 418.48d;
        double b = 7121.88d;
        double c = a+b;
        System.out.println(c);
	}
}

 输出结果为

7540.360000000001

 原因是浮点数的二进制相计算的时候会有一定的误差,原因我们下次再深入探讨,下面我们来看解决办法

package com.controller;

import java.math.BigDecimal;

public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        double a = 418.48d;
        double b = 7121.88d;
        BigDecimal a1 = new BigDecimal(String.valueOf(a));
        BigDecimal b1 = new BigDecimal(String.valueOf(b));
        BigDecimal c = a1.add(b1);
        System.out.println(c.doubleValue());
	}
}

 输出结果为

7540.36

  

 

以上是关于位移是可以直接相加减的吗?的主要内容,如果未能解决你的问题,请参考以下文章

python 变量 不断 相加 or 相减的简便写法

java中的浮点数相加

leetcode算法题3:分组,让每个组的最小者,相加之后和最大。想知道桶排序是怎么样的吗?

leetcode算法题3:分组,让每个组的最小者,相加之后和最大。想知道桶排序是怎么样的吗?

LeetCode:面试题 08.05. 递归乘法

JAVA大数相减