草庐IT

polynomial-math

全部标签

java - 为什么 Math.pow(long, (1/3)) 总是返回 1?

如果是power问题,怎么写才正确? 最佳答案 这是因为1/3是整数除法,它的计算结果为0。您实际上是在提高到0次方,它总是产生1。请改用1.0/3.0。 关于java-为什么Math.pow(long,(1/3))总是返回1?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5066104/

math - float 学坏了吗?

考虑以下代码:0.1+0.2==0.3->false0.1+0.2->0.30000000000000004为什么会出现这些错误? 最佳答案 二进制floatingpoint数学就是这样。在大多数编程语言中,它基于IEEE754standard.问题的症结在于,数字以这种格式表示为整数乘以2的幂;分母不是2的幂的有理数(如0.1,即1/10)无法精确表示。对于0.1在标准中binary64格式,表示可以完全写成0.1000000000000000055511151231257827021181583404541015625十进制,或

java - Apache Commons Math3 数字百分位数

我正在尝试使用ApacheCommonsMath3库和Percentile类获取分布中特定数字的百分位数:https://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/stat/descriptive/rank/Percentile.html(我在Scala中使用它)如果我这样做:newPercentile().evaluate(Array(1,2,3,4,5),80)然后我得到4。但是,我想换个方向,将4作为输入,返回80作为结果,即给定数字的百分位数,而不是给定百分位的数字。此类中的所

java - 计算多项式的最有效方法

多项式:a0x^0+a1x^1+a2x^2+a3x^3+...+anx^n数组:array_a[]={a0,a1,a2,a3...an};我用Java写了一个函数来计算这个多项式:publicdoublecal(doublex){doubley=0.0;for(intindex=array_a.length-1;index>=0;index--){y=array_a[index]+y*x;}returny;}这似乎比循环快5倍y+=array_a[index]*Math.Pow(x,index);但我想知道是否有更好的方法来计算这个多项式?**对于任何认为这是不同计算的人:我确实测试了

java - Java 中 Math.floorDiv 的 ceil 对应部分?

Math.floorDiv()是否有任何ceil对应项|如何用我们现有的最快方式计算它?更新floorDiv()的代码如下:publicstaticlongfloorDiv(longx,longy){longr=x/y;//ifthesignsaredifferentandmodulonotzero,rounddownif((x^y)我们可以用类似的方式编写ceil吗?更新2我看到了这个答案https://stackoverflow.com/a/7446742/258483但它似乎有太多不必要的操作。 最佳答案 Math类中没有,但

java - 将 Math.sin(x) 的结果转换为 java 中度数的结果

我想将Math.sin(x)(其中以弧度为单位的x)转换为一个结果,该结果将给出x以度数而不是弧度。我使用了普通方法和java内置的度数和弧度之间的转换方法,但是我传递给Math.sin()方法的任何参数都被视为弧度,从而导致我转换是徒劳的。我希望给出sin输入的输出,就好像输入是按度数处理的,而不是像Math.sin()方法那样处理弧度。 最佳答案 Java的Math库为您提供了在度数和弧度之间进行转换的方法:toRadians和toDegrees:publicclassexamples{publicstaticvoidmain(

java - 当 x = 0 时,Java 的 Math.pow(x, 2) 性能不佳

背景注意到我正在处理的Java程序的执行速度比预期的慢,我决定修改我认为可能导致问题的代码区域-调用Math.pow(x,2)从for循环中。与anotherquestionsonthissite相反,我创建的一个简单基准测试(最后的代码)发现用x*x替换Math.pow(x,2)实际上使循环加速了近70倍:x*x:5.139383msMath.pow(x,2):334.541166ms请注意,我知道该基准并不完美,并且肯定应该对这些值持保留态度-基准的目的是获得一个大概的数字。问题虽然基准测试给出了有趣的结果,但它并没有准确地对我的数据建模,因为我的数据主要由0组成。因此,更准确的测

java - 使用 Math.pow() 函数

我正在尝试用Java编写一个程序来计算Ricker小波的公式:但结果与真实不符。这是我正在使用的:privatestaticdoublerickerWavelet(doublet,doublef){doublep=(Math.pow(Math.PI,2))*(Math.pow(f,2))*(Math.pow(t,2));doublelnRicker=1-(2*p)*Math.exp(-p);returnlnRicker;}我是否错误地使用了数学函数? 最佳答案 要匹配公式,doublelnRicker=1-(2*p)*Math.ex

Capture the Ether(Math)

Math这个栏目考察的都是一些数学方面的知识第一题:TokenSale代码:pragmasolidity^0.4.21;contractTokenSaleChallenge{mapping(address=>uint256)publicbalanceOf;uint256constantPRICE_PER_TOKEN=1ether;functionTokenSaleChallenge(address_player)publicpayable{require(msg.value==1ether);}functionisComplete()publicviewreturns(bool){return

java - 如何使用Java Math Commons CurveFitter?

如何使用MathCommonsCurveFitter将函数拟合到一组数据?我被告知要将CurveFitter与LevenbergMarquardtOptimizer和ParametricUnivariateFunction一起使用,但我不知道在ParametricUnivariateFunction梯度和值方法中写什么。另外,写完之后,如何得到拟合的函数参数呢?我的功能:publicstaticdoublefnc(doublet,doublea,doubleb,doublec){returna*Math.pow(t,b)*Math.exp(-c*t);} 最