Tag: 数学

通过平方来表示

当我通过平方搜索Exponentiation时我得到了递归方法,但后来我偶然发现了这个伪代码,我无法完全理解。 function powermod(base, exponent, modulus) { if (base < 1 || exponent < 0 || modulus 0) { if ((exponent % 2) == 1) { result = (result * base) % modulus; } base = (base * base) % modulus; exponent = floor(exponent / 2); } return result; } 如果你能用简单的术语给出一些见解,那将会有很大的帮助

Java- Math.random():选择13乘13三角形数组的元素

编辑:此问题已解决。 如果您想帮助解决另一个问题,请访问三角arrays中的Java偏差随机数 。 我正在做一个乘法游戏,所以我选择0到12之间的2个数字。 如果我这样做: int num1 = (int)(Math.random() * 13); int num2 = (int)(Math.random() * 13); 在一半的时间内拾取正方形(0x0,1×1,2×2等)(因为1×2与2×1相同)。 如何以相同的频率拾取所有组合? 有91种可能的组合(n(n + 1)/ 2)。 如果它有帮助,这里是一个13乘13的三角形数组: {{0}, {0,0}, {0,0,0}, {0,0,0,0}, {0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0}}; 我尝试选择第一个数字并给第二个数字成为第一个数字的几率为50%。 这没用。 我尝试将第二个数字作为第一个数字的1/91。 这导致较小的数字被选择的次数(大约7/91的时间;它是平滑的,弯曲的增加)。 我想过有一个随机数: int roll = random.next(91)然后将它分成2个条目(比如坐标(x,y)),但我无法弄清楚如何拆分它。

Java中的Benford定律 – 如何将数学函数转换为Java

我有一个快速的问题。 我试图在java中制作欺诈检测应用程序,该应用程序将主要基于本福德定律。 本福德的定律非常酷,它基本上可以解释为在一个真实的金融交易中,第一个数字通常是1,2或3,很少是8,9。我无法得到本福德公式翻译成可以用Java运行的代码。 http://www.mathpages.com/home/kmath302/kmath302.htm此链接提供了有关本福德法律及其使用方式的更多信息。 我知道我必须使用java数学类才能使用自然日志function,但我不知道该怎么做。 任何帮助将不胜感激。 非常感谢!!

计算复杂的数学(积分,推导,…)

如何在编程语言中计算复杂的数学运算,如: 积分 求导 其他一些非平凡的数学 例如,对于这些语言: Java的 Ruby on Rails 我知道C#存在Math.NET,但对于其他人?

计算一系列值的斜率

我有2个相等长度的数组。 以下函数尝试使用这些数组计算斜率。 它返回每个点之间斜率的平均值。 对于以下数据集,我似乎得到的值与Excel和Google Docs不同。 double[] x_values = { 1932, 1936, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980 }; double[] y_values = { 197, 203, 198, 204, 212, 216, 218, 224, 223, 225, 236 }; public static double getSlope(double[] x_values, double[] y_values) throws Exception { if (x_values.length != y_values.length) throw new Exception(); double […]

C中的埃及分数

古埃及人只使用1/nforms的分数,因此任何其他分数必须表示为这些单位分数的总和,而且,所有单位分数都不同! 在C或java中使任何分数成为埃及分数(越少越好)的好方法是什么,可以使用什么算法,分支和绑定,a *? 例如: 3/4 = 1/2 + 1/4 6/7 = 1/2 + 1/3 + 1/42

将中缀表达式(带括号)转换为二叉树

作为Java赋值的一部分,我必须使用输入算术表达式并将其存储在二叉树中。 除了我在表达式的字符串中读取的部分并将其存储在二叉树中之外,我已完成了赋值所需的所有操作。 我创建了一个名为BinaryTree的类。 它唯一的领域是一个名为root的treenode。 此treenode被定义为BinaryTree中的内部类。 它有3个字段,一个通用数据字段,以及两个类型为BinaryTree的子节点(左和右)。 我很难定义一个用于读取表达式的算法,例如 (5 *(2 + 3)^ 3)/ 2 并将其存储在这样的树中 / ^ 2 * 3 5 + 2 3 任何人都可以帮助算法吗?

如何根据角度和距离获得坐标系中一个点的坐标

如何获得坐标系中坐标系的坐标是原点坐标(x,y)以及从原点到点的角度以及从原点到点的距离?

凸多面体的质心

我有一个封闭的凸多面体,它是由一个凸多边形(面)arrays定义的,这些多边形由三维空间中的顶点数组定义。 假设密度均匀,我试图找到多面体的质心。 目前我用这个伪代码中的算法计算它。 public Vector3 getCentroid() { Vector3 centroid = (0, 0, 0); for (face in faces) { Vector3 point = face.centroid; point.multiply(face.area()); centroid.add(point); } centroid.divide(faces.size()); return centroid; } 这基本上取面的质心的加权平均值。 我不是100%确定这是正确的,因为我无法在线找到正确的算法。 如果有人可以确认我的算法或引用我正确的算法我会很感激。 谢谢。 [编辑] 所以这是我用来查找质心的实际Java代码。 它将多面体分解为会聚在多面体内任意点上的金字塔。 金字塔质心的加权平均值基于以下公式。 C all = SUM 所有金字塔 (C 金字塔 *体积金字塔 )/体积全部 这是(评论很多的代码): // Compute the average of the facial centroids. […]

为什么在util类中有48位种子?

为什么这个类在其线性同余公式中使用48位种子? 我原以为32或64 …… 我知道当要求32位值时,它需要更高阶的位。 但为什么只有16个额外的位? 这是一个“随机”的选择吗?