草庐IT

symbolic-math

全部标签

java - 初始化 java.math.BigInteger

抱歉,这可能看起来像一个愚蠢的是或否问题,但我对此很陌生,所以我需要一个答案。BigIntegeri=BigInteger.valueOf(0);和BigIntegeri=newBigInteger("0");它们一样吗? 最佳答案 它们都以对值为0的BigInteger的引用结束,但它们在效果上并不相同。特别是,由于valueOf是一个静态方法,它可以利用缓存,如果你调用它两次,它会返回相同的引用:BigIntegera=BigInteger.valueOf(0);BigIntegerb=BigInteger.valueOf(0)

Java - 比 Math.pow() 和 Math.sqrt() 更快的替代方法

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我的程序使用Math.pow()计算一个相对较大的double的2次方。稍后我需要求一个非常大的double的平方根。问题是,我必须执行此操作超过100,000次,而且需要很长时间。有没有其他方法可以加快这个过程?谢谢编辑:我所说的大数字是指1000到10000之间(因此在计算方面可能没有那么大)。而在耗时方面,执行500次该功能大约需要30秒

Java Math.cos() 方法未按预期返回 0

在Windows7PC上使用Java(不确定这是否重要)并在应返回0的值(如pi/2)上调用Math.cos()而不是返回小值,但小值,除非我误解,与零相差远大于1ulp。Math.cos(Math.PI/2)=6.123233995736766E-17Math.ulp(Math.cos(Math.PI/2))=1.232595164407831E-32这实际上在1ulp之内,我只是感到困惑吗?这是解决这个小错误的可接受的包装方法吗?publicstaticdoublecos(doublea){doubletemp=Math.abs(a%Math.PI);if(temp==Math.P

java - 错误 : cannot find symbol ArrayList

我正在尝试创建某种列表来存储数组“表”中的值。(我在这里使用的是数组列表,但我应该使用列表吗?)但是,每次我尝试编译时,它都会抛出以下错误:找不到符号符号:类ArrayList位置:类players.TablePlayer代码如下。publicclassTablePlayerextendsPlayer{int[][]table;ArrayListgoodMoves;publicTablePlayer(Stringname){super(name);}@Overridepublicintmove(){intoppLast=opponentLastMove();intmyLast=myLa

java - 在 Math.random() 上设置种子

我需要在调用Math.random()的Java代码上编写一些junit测试。我知道如果我正在实例化我自己的Random对象以产生可重复的结果,我可以设置种子。Math.random()是否也可以这样做? 最佳答案 Math.random()方法使用私有(private)静态字段:privatestaticRandomrandomNumberGenerator;如果您真的需要将其设置为newRandom(CONSTANT_SEED)(例如您需要JUNit测试您无法控制的代码),您可以通过使用反射来做到这一点。

(int)Math.pow(2,x) 和 1<<x 的 Java 结果不同

为什么以下两个操作在Java中对于x=31或32产生不同的结果,而对于x=3产生相同的结果?intx=3;intb=(int)Math.pow(2,x);intc=1结果:x=32:b=2147483647;c=1;x=31:b=2147483647;c=-2147483648;x=3:b=8;c=8 最佳答案 有多个问题在起作用:安int只能存储-2147483648之间的值和2147483647.1只有usesthelowestfivebitsofx.因此,1根据定义与1相同.Shift操作在two's-complementin

java - "cannot find symbol - class Scanner"错误

这是我的代码publicclassWorkshop3{publicstaticvoidmain(String[]args){System.out.println("pleaseenterradiusofcircle");doubleradius;Scannerkeyboard=newScanner(System.in);keyboard.nextDouble(radius);}}我收到的错误是cannotfindsymbol-classscanner在线Scannerkeyboard=newScanner(System.in); 最佳答案

java - 为什么 Java.Lang.Math 不是抽象的?

“抽象”关键字意味着您不能创建类(对象)的实例。Java.Lang.Math前面有以下关键字publicfinalclassMath{...}但没有“抽象”关键字。该类仅提供相关静态变量和方法的集合,例如PI和sin()。静态意味着那些变量/方法在对象的不同实例之间不能是唯一的(与类本身相关联的那些变量/方法只有一个副本)。那么为什么还要允许程序员创建类的实例呢?为什么不在“摘要”之前? 最佳答案 final和abstract关键字不能一起应用,因为final类不能被覆盖和abstract类用于覆盖。Aclassthatisdecl

math - 为什么在 util Random 类中使用 48 位种子?

为什么这个类在其线性同余公式中使用48位种子?我本来期望32或64...我知道当要求32位值时它需要更高阶位。但为什么只有16个附加位?这是一个“随机”选择吗? 最佳答案 您需要比输出位更多的状态位,因为LCG的性质是状态的低位位根本不是很随机。所以如果你想要32位输出,你需要超过32位的状态。为什么使用48而不是64?因为48就足够了,而且您是几十年前设计的,所以有充分的理由希望避免使用比绝对必要更多的资源。 关于math-为什么在utilRandom类中使用48位种子?,我们在Sta

java - "cannot find symbol: method"但声明了方法

在我的驱动程序中,这一行给我cannotfindsymbol错误,我不知道为什么。该方法在SavingsAccount类中明确定义,我可以在我的驱动程序中引用所有其他方法但不是那个,我尝试将类型更改为double,等等,但仍然无法正常工作。Accountacct2=newSavingsAccount(name);acct2.calculateBalance();SavingsAccount类继承自Account类:publicclassSavingsAccountextendsAccount{privatefinalshortminBalance=0;privatedoubleover