草庐IT

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 - 添加号码的数字

这个问题在这里已经有了答案:Fastestmethodforadding/summingtheindividualdigitcomponentsofanumber(4个答案)关闭6年前。我必须构建一个方法来添加参数中给出的字符串的每个数字,直到只剩下1个数字,例如1234=(1+2+3+4)=10=(1+0)=1。起初,我认为递归调用或while循环应该没问题。但是有更聪明的方法吗?也许使用模数?1234%9=1这似乎可行...但不是:9%9不等于9但它是到0。有没有办法不用递归/for/while来构建这个函数?

java - 如何在 Java 中将 0.xxxx 更改为 xxxx

如上所述。我举一个例子,假设所有的测试值都小于1但大于0。0.12(精度:3,小数位数:2)0.345(精度:4,小数位数:3)0.6789(精度:5,小数位数:4)如何在不对比例和精度值进行硬编码的情况下转换这些值。0.12->120.345->3450.6789->6789对于0.1和0.01以及0.001应该得到1(我知道这是个坏主意但我已经得到了软件的业务规则集)我更喜欢Java中的解决方案,但如果有数学算法,那就更好了。谢谢。 最佳答案 解决方案比这里介绍的任何人都简单得多。你应该使用BigDecimal:BigDecim

java - 将数字四舍五入到特定的倍数

这个问题在这里已经有了答案:Roundingupanumbertonearestmultipleof5(24个答案)关闭去年。如何在Java中舍入到特定的倍数?在excel中,有一个mround函数,可以像这样轻松地舍入到指定的倍数:mRound(variable,multiple)所以mRound(x,3)将返回9如果x=7.9和6如果x=7.2。到目前为止,我发现的所有舍入函数总是舍入到最接近的整数或指定的小数位数,但我希望能够更改每个变量的倍数。有谁知道什么功能最适合这种情况?

java - 两条线会在笛卡尔平面相交吗

我在“CracktheCodingInterview”一书中遇到了这个问题。GiventwolinesonaCartesianplane,determinewhetherthetwolineswouldintersect.`解决方法如下:publicclassLine{staticdoubleepsilon=0.000001;publicdoubleslope;publicdoubleyintercept;publicLine(doubles,doubley){slope=s;yintercept=y;}publicbooleanintersect(Lineline2){returnM

java - 如何使用Java Math Commons CurveFitter?

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

c# - 如何计算两个给定点和给定距离之间的点?

我有点A(35.163,128.001)和点B(36.573,128.707)我需要计算位于A点和B点内的点使用2点之间的标准距离公式,我发现D=266.3位于直线AB内的每个点(黑点p1、p2、...p8)之间的距离相等d=D/8=33.3我如何计算p1、p2、...p8的X和Y?欢迎Java或C#语言的例子或者只是告诉我一个公式或方法就可以了。谢谢。**以上计算实际上用于计算我map中阴影级别的虚拟点并用于阴影区域插值目的* 最佳答案 这很简单,但您需要一些数学知识。PointFpointA,pointB;vardiff_X=p

java - Java 中的幂运算符?

当我运行以下VisualBasic代码时:DimbAsDoubleb=(2^16-1)*Math.Sqrt(Math.Sqrt((a/(2^8-1))))(假设a是一个double,其值为15.0)b得到的结果大约是32,275。但是当我运行下面的Java代码时,它应该和上面的一样:doubleb;b=(2^16-1)*Math.sqrt(Math.sqrt((a/(2^8-1))));同样,当a为15时,我得到一个截然不同的结果:大约17。两者都在求解这个方程:为什么会这样?对于我正在从事的工作,VisualBasic会产生我正在寻找的结果。 最佳答案

java - 你如何获得绝对值和平方根

如何在Java中获得平方根和绝对值?这是我的:if(variable但是有没有更简单的方法来获取Java中的绝对值?variable=|variable| 最佳答案 使用Math中的静态方法两者的类-在语言中没有用于此的运算符:doubleroot=Math.sqrt(value);doubleabsolute=Math.abs(value);(同样,没有用于将值提升到特定幂的运算符-为此使用Math.pow。)如果您经常使用它们,您可能希望使用静态导入来使您的代码更具可读性:importstaticjava.lang.Math.s

java - 反转范围内的数字

我有一个Helm机,它的转向与我从程序中得到的数字相反。我从程序中得到的数字在37...113之间。我需要将37转换到它的另一侧。所以37变成113,38变成112,等等。75保持在75,因为那是中间点。你们中有人知道计算这个的方法吗?这听起来像是简单的数学,但我无法弄明白。我不想使用查找表,因为范围可能会改变。 最佳答案 publicintreverseNumber(intnum,intmin,intmax){return(max+min)-num;}reverseNumber(37,37,113);//returns113