我已经通过谷歌搜索(也许我看起来不够努力)但我找不到如何将Math.sqrt变成一个int。我想将Math.sqrt用于for循环,我想我需要它作为一个int,但我似乎无法弄清楚如何将结果转换为int。那我该怎么做呢?我尝试了类似于Java的东西:(int)Math.sqrt(num);但是没有用。提前致谢:) 最佳答案 根据您的特定舍入需求,使用Math.round、Math.ceil或Math.floor。“对于将Math.round、Math.ceil和Math.floor中的一个数字四舍五入为整数是更可取的,并且对于可以表示
我正在制作一个在线RPG游戏,我在其中使用这个数学公式(在网上找到)来计算exp->level。$level=(25+sqrt(625+100*$exp))/50;我已经尝试了好几天来制作一个脚本来逆转它。我的目标是制作一个函数来计算一个级别所需的exp量。 最佳答案 事实证明可以进一步简化为:$exp=25*($level*$level-$level);推导:l=(25+sqrt(625+100e))/5050l=25+sqrt(625+100e)50l-25=sqrt(625+100e)(50l-25)^2=625+100e(2
我得到了如下表达式(Sqrt[XXX]的数量未知)Sqrt[A+B]+Sqrt[Min[A,B]]*Min[Sqrt[C],D]我想把所有的Sqrt[XXX]变成Sqrt(XXX),我想替换[]的括号Sqrt放入()括号所以上面的例子看起来像Sqrt(A+B)+Sqrt(Min[A,B])*Min[Sqrt(C),D]我不想“伤害”表达式中的其他[]括号(比如Min旁边的括号)我怎样才能用正则表达式做到这一点? 最佳答案 您可以对字符串中的字符使用迭代来完成此操作。首先查找Sqrt[的索引,然后查找匹配的右括号。下面是一些示例代码:
我正在练习Java考试。我今天面临的问题之一是:给定一个包含n个数字的数组,我需要检查是否有2个子数组(不必相等)它们的乘积等于-如果有,则返回true,否则返回false。例如:如果数组是:{2,15,3,4,2,5}-将返回True如果数组是:{2,4,6,2,3,4}-将返回False。答案必须是递归的,没有任何循环。所以我想,如果有2个子数组,它们的乘积相等,这意味着整个数组的总乘数必须是一个平方根数。例如,在第一个数组中,它是3600,即60。到目前为止,我还没有找到它不适用的任何情况,但仍然不能100%确定它是否涵盖所有可能的情况。这是我的代码:publicstaticbo
我正在使用Lombok来最小化代码。这是我在普通Java中的(人为的)情况:publicclassMyClass{privatefinalintx;privatefinalintsqrt;publicMyClass(intx){this.x=x;sqrt=(int)Math.sqrt(x);}//getters,etc}我想使用lombok生成构造函数和getters:@Getter@RequiredArgsConstructorpublicclassMyClass{privatefinalintx;privateintsqrt;}要在类中进行计算,您可以考虑使用实例block:{sq
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我的程序使用Math.pow()计算一个相对较大的double的2次方。稍后我需要求一个非常大的double的平方根。问题是,我必须执行此操作超过100,000次,而且需要很长时间。有没有其他方法可以加快这个过程?谢谢编辑:我所说的大数字是指1000到10000之间(因此在计算方面可能没有那么大)。而在耗时方面,执行500次该功能大约需要30秒
我正在做一道题,我必须找到数字[4+sqrt(11)]n.例如,当n=4,[4+sqrt(11)]4=2865.78190...时,答案是65。其中n可以从2变化9。我的解决方案-我尝试构建一个平方根函数来计算11的平方根精度等于用户输入的n值。我用过BigDecimal在Java中避免溢出问题。publicclassMathGenius{publicstaticvoidmain(String[]args){Scannerreader=newScanner(System.in);longa=0;try{a=reader.nextInt();}catch(Exceptione){Syst
尝试为int类型重载java.lang.Math.sqrt静态方法:importstaticjava.lang.Math.sqrt;classTest{privatestaticdoublesqrt(intn){returnsqrt(1.0*n);}publicstaticvoidmain(String[]args){System.out.println(sqrt(1));}}出现一个奇怪的错误:Test.java:7:sqrt(int)inTestcannotbeappliedto(double)returnsqrt(1.0*n);^1error但是当显式引用java.lang.Ma
我正在为[0,2*10^12]输入范围内的double值寻找Java中的快速平方根实现。对于此范围内的任何值,精度应最多为小数点后5位。换句话说,结果可能与Math.sqrt()方法在小数点后5位不同。但是,此方法需要比Math.sqrt()快得多。有什么想法吗?谢谢! 最佳答案 我不相信(没有基准来证明这是错误的)纯Java实现可以比Math.sqrt()快得多。OracleJREimplementation和OpenJDKimplementation是native实现。 关于java
我遇到了一些计算的旧代码doubley=1/std::sqrt(x);使用:constexprdoublebase16=16.0;doublelog_base16=std::log(base16);doubley=std::pow(base16,-0.5*std::log(x)/log_base16);本质上是:doubley=std::exp(-0.5*std::log(x));关于这些方法之间的数值优势(例如准确性或更有可能避免下溢/上溢)是否有任何理由?原作者可能是这么想的。 最佳答案 原始代码确实被认为是非常顽皮的,尤其是在