.NET中内build的Math.Pow()函数将double Math.Pow()指数提升为double Math.Pow()并返回double Math.Pow()结果。 与整数相同的最好方法是什么? 补充:似乎只能将Math.Pow()结果转换为(int),但是这样总会产生正确的数字并且没有舍入错误?
我需要写一个使用Java的recursion方法,这个方法使用了一个double x和一个整数n,并返回x ^ n。 这是我迄今为止。 public static double power(double x, int n) { if (n == 0) return 1; if (n == 1) return x; else return x * (power(x, n-1)); } 此代码按预期工作。 但是,我正在努力去做更多的事情,并执行以下可选练习: “可选的挑战:当n是偶数时,使用x ^ n =(x ^(n / 2))^ 2,可以使这个方法更有效率。 当n是偶数时,我不知道如何实现最后一个公式。 我不认为我可以使用recursion。 我试图实现以下,但它也行不通,因为我不能把一个int的权力加倍。 if (n%2 == 0) return (x^(n/2))^2; 有人能指出我正确的方向吗? 我觉得我失去了一些明显的东西。 所有帮助赞赏。
在我的领域里,将一些数字平方,一起操作,并取结果的平方根是很常见的。 这是在毕达哥拉斯定理和RMS计算,例如。 在numpy,我做了以下几点: result = numpy.sqrt(numpy.sum(numpy.pow(some_vector, 2))) 而在纯Python中,可能会有这样的情况: result = math.sqrt(math.pow(A, 2) + math.pow(B,2)) # example with two dimensions. 然而,我一直在使用这种纯粹的Pythonforms,因为我发现它更紧凑,独立于import,看似等价: result = (A**2 + B**2)**0.5 # two dimensions result = (A**2 + B**2 + C**2 + D**2)**0.5 我曾经听到一些人认为**运算符是一种黑客攻击,并且通过以0.5来幂数来排列数字是不太可读的。 但是我想问的是如果: “有没有计算理由比第三个select前两个select?” 谢谢阅读!
给C中的另一个整数赋予整数的最有效方法是什么? // 2^3 pow(2,3) == 8 // 5^5 pow(5,5) == 3125