Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 欧几里德模的用途是什么?它与正则模有何不同?_Javascript_Three.js_Modulo - Fatal编程技术网

Javascript 欧几里德模的用途是什么?它与正则模有何不同?

Javascript 欧几里德模的用途是什么?它与正则模有何不同?,javascript,three.js,modulo,Javascript,Three.js,Modulo,我对3JS中数学的欧几里德模方法有点困惑。 我已经知道模符号的作用,但欧几里德模看起来完全不同 ( ( n % m ) + m ) % m 我试着查找欧几里德语义学,但它只说: 关于或表示基于几何工作的几何体系的 欧几里得几何与对应的普通经验 有人能解释一下吗?我在任何地方都找不到进一步的解释?有一个记录良好的Javascript模错误,当使用负数时会出现。您可以将x%4看作一个数字轮: 当x从0变为正数时,结果是:0、1、2、3、0、1、2、 当x从0变为负数时,结果是:0,3,2,1,

我对3JS中数学的欧几里德模方法有点困惑。 我已经知道模符号的作用,但欧几里德模看起来完全不同

( ( n % m ) + m ) % m
我试着查找欧几里德语义学,但它只说:

关于或表示基于几何工作的几何体系的 欧几里得几何与对应的普通经验


有人能解释一下吗?我在任何地方都找不到进一步的解释?

有一个记录良好的Javascript模错误,当使用负数时会出现。您可以将
x%4
看作一个数字轮:

  • 当x从0变为正数时,结果是:
    0、1、2、3、0、1、2、
  • 当x从0变为负数时,结果是:
    0,3,2,1,0,3,2,…
但是在JavaScript中,当您执行
-5%4
时会得到
-1
,这不是正确的答案。它甚至不在可能的答案列表中。怎么可能有负余数?!答案应该是
3
。以下是正确答案与错误Javascript答案的列表:

1%4=1//JS给你1
0%4=0//JS为您提供0
-1%4=3//JS为您提供-1
-2%4=2//JS给你-2
-3%4=1//JS为您提供-3
-4%4=0//JS为您提供-0
-5%4=3//JS给你-1

为了让您的生活更轻松,Three.js为您提供了一个实用程序来获得正确的答案,从而绕过这个JavaScript错误
3.MathUtils.euclideanModulo(-5,4)
给出了正确的答案
3

@mplungjan这与常规的模不同吗?我在网络上看到了地板模,但实际上我不知道。我刚刚看到了在正则模中提到的欧几里德wiki@mplungjan我将通读完整的文档,谢谢。我认为,
%
的JavaScript行为与其说是一个bug,不如说是一个特性,而且JavaScript的
%
结果不一定“不正确”。(您可以随意不同意这一点。)只是
%
在不同的语言中表现不同。例如,在JavaScript、java和C++中,代码< > 5% 4 < /COD>是-1,在Perl、Python和Ruby中是3,并且(我相信)在C和C++中实现了定义的行为。@ PeterO。很公平。也许bug这个词太强了。只是我还没有发现默认的
%
对于负数很有用。谢谢你花时间把它画出来。非常感谢