Tag: 数学

计算2点之间的网格距离

我需要计算2点之间的网格距离。 允许的运动是水平和垂直的,以及与下一个邻居的对角线(所以45度旋转)。 所以曼哈顿距离不是一个选择。 欧几里德距离也不是一个选项,因为它不会沿着网格正确移动,这可能导致一个低值(如红线所示)。 我正在寻找距离在绿色线条中从一个细胞移动到另一个细胞的距离。 公式最好是快速的。

Java算术int与long

我在google上做了一些搜索,但我似乎无法找到我正在寻找的东西。 我试图找出有关算术在Java中的工作方式的一些详细信息。 例如,如果将两个long一起添加,这是使用在将两个int一起添加时使用的相同加法运算符吗? 此外,当你在这样的算术表达式中混合long和int时,会发生什么: long result; long operand a = 1; int operand b = 999999999; result = a + b; 如果有人可以对此有所了解或发布相关文章的链接,那将是非常棒的。 谢谢! 编辑:感谢您的答复到目前为止。 另外,只要在表达式中分配最宽基元类型的变量,用不同的基元执行算术是否安全?

转换成心脏2d android

对不起,但我的数学和物理太弱,所以我尝试了很多次,但每次我失败,我需要你的帮助来完成我的应用程序PLZ转换这个圆圈的心脏 import android.graphics.Bitmap; public class Circle { float origRadius,deltaRadius,radius,origX,deltaX,x,origY,deltaY,y; int color,alpha,steps,currentStep; Bitmap bitmap; public Circle(float xCenter, float yCenter, float radius, int color, int steps) { this.x = xCenter; this.origX = xCenter; this.deltaX = (float) (40.0 * Math.random() – 20.0); this.y = yCenter; this.origY = yCenter; this.deltaY = (float) (40.0 * Math.random() – 20.0); this.origRadius = […]

这个算法是否可以找到一系列可接受的无穷大的总和?

可以找到以下系列的无穷大之和: 1 1/2 1/3 1/4 1/5 … 根据某位科学家的解释, 无穷大是指任何点都不存在的点,即inf + x = inf或inf~(inf + x)= 0 。 因此,基于该理论,使用以下算法: float sum=0.0; for(int i=0;;i++){ if((sum+(1.0/i))==sum) break; sum+=(1.0/i); } /* print the value of sum */ 算法在C和JAVA中运行,两者都输出为inf 。 分别用C和Java编写的print语句是 printf(“%6f”,sum); System.out.println(sum); 编辑:之前写的代码(在问题中)有一个错误,因为我键入它,没有复制粘贴。 对不起。 这解决了,这是我的问题所在的代码: float sum=0.0; for(int i=1;;i++){ if((sum+ (1.0/i))==sum) break; sum+=(1.0/i); } /*print the value of sum*/ […]

确定num是否是java中2的幂?

可能重复: 如何检查数字是2的幂 如果传入值2,4,8,32,64等,我怎么能写一个返回true的方法?

从摄像机坐标计算世界坐标

我有一个用2D渲染的世界,我从顶部看它。 Tjat看起来像这样(地砖没有纹理,只有随机的绿色): 在渲染我的实体之前,我像这样变换模型视图矩阵(当position是位置并zoom相机的缩放时, ROTATION为45): glScalef(this.zoom, this.zoom, 1); glTranslatef(this.position.x, this.position.y, 0); glRotatef(ROTATION, 0, 0, 1); 现在我想计算相机当前位置的世界坐标。 我正在尝试用glPushMatrix创建一个新矩阵,然后以与glPushMatrix相同的方式对其进行变换,然后获取矩阵并将给定的摄像机坐标与其相乘: private Vector2f toWorldCoordinates(Vector2f position) { glPushMatrix(); // do the same as when rendering glScalef(this.zoom, this.zoom, 1); glTranslatef(this.position.x, this.position.y, 0); glRotatef(ROTATION, 0, 0, 1); // get the model-view matrix ByteBuffer m = ByteBuffer.allocateDirect(64); m.order(ByteOrder.nativeOrder()); glGetFloatv(GL_MODELVIEW_MATRIX, m); // calculate transformed position […]

如何自定义舍入的forms

我的问题似乎很简单,但仍然无法得到有效的东西。 我需要自定义Math.round舍入格式或其他东西,使其工作如下: 如果数字是1.6,他应该舍入到1,如果大于或等于1.7应该舍入到2.0。 所以使用#.6的所有其他小数结果我正在将1.6舍入为2的方式应舍入为1。 我怎样才能做到这一点? 谢谢!

用法拉利方法找出四次方程的真根

我目前正试图用维基百科的法拉利方法解决一个四次方程式。 我想只检索真正的根,丢弃想象的根。 我的实现并没有为真正的根源带来好处。 我找不到公式中的错误。 我的CubicEquation按预期工作,我的双二次求解也是如此。 现在,我只是错过了法拉利的方法,但是我无法让它发挥作用! 这是我的class级: public class QuarticFunction { private final double a; private final double b; private final double c; private final double d; private final double e; public QuarticFunction(double a, double b, double c, double d, double e) { this.a = a; this.b = b; this.c = c; this.d = d; […]

Android:如何在十进制值之后得到两位数? 不想截断该值

如何得到小数点后只有两位数的双精度值。 例如,如果a = 190253.80846153846,那么结果值应该类似于a = 190253.80 试试:我试过这个: public static DecimalFormat twoDForm = new DecimalFormat(“#0.00”); 在代码中 a = Double.parseDouble(twoDForm.format(((a)))); 但我得到的价值像190253.81,而不是我想190253.80 那么我应该为它改变什么呢?

测试输入的数字是否为三角形数字

我需要创建一个程序来测试用户输入的给定数字是否是三角形数字。 我创建了一个脚本,它只给出了所有三角形数字的列表,但在这个程序中,用户需要输入一个数字,程序必须确定该数字是否为三角形。