首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中sin、log、tan等复杂数学运算怎么搞?

出处 | 程序猿DD 责编 | 张红月

MXReflection,一个基于mXparser库功能的Java复杂计算框架。

还记不记得求学时代各种复杂的数学公式?sin、log2、tan等等等,是不是看到这就觉得算起来麻烦?

通过MXReflection框架,你可以使用Java计算这些曾经我们觉得无比复杂的数学运算和函数,只需使用与类相关的字段。

MXReflection可以从指定字段读取值,并将结果注入@Expression注释字段。

那如何使用这个框架呢?

很简单,只需要两个java注释。

1、通过@Arg值,我们可以指定要在目标函数中使用的自定义参数名称。

2、@Expression注释值包含带有参数的函数表达式。

这个框架的使用其实不难,下面是两个计算案例,通过案例其实很容易理解该怎么使用此框架:

案例1:

Output:

案例2:

Output:

MXReflection框架支持mXparser数学库中提供的数学集合如下:

Operators (+, -, *, /, #, !, ^)

Binary Relations (=, ==, =, , , !=, ~=)

Boolean Operators (&, &&, /, ~&, ~&&, ~/, |, ||…)

Bitwise Operators (@~, @&, @^, @|, @)

Unary Functions (sin, cos, tan, tg, ctan, ctg, cot, sec,…)

Binary Functions (log, mod, C, Bern, Stirl1, Stirl2, …)

3-args Functions (if, chi, CHi, Chi, cHi, pUni, cUni, qUni, pNor, cNor, qNor)

Variadic Functions (iff, min, max, ConFrac, ConPol, gcd, …)

Iterated Operators (sum, prod, avg, vari, stdi, mini, maxi)

Calculus Operators (int, der, der-, der+, dern, diff, difb)

Math Constants (pi, e, [gam], [phi], [PN], [B*], [F’d], [F’a], …)

Physical Constants ([c], [G.], [g], [hP], [h-], [lP], [mP], [tP])

Astronomical Constants ([ly], [au], [pc], [kpc], [Earth-R-eq], …)

Random Variables ([Uni], [Int], [Int1], [Int2], [Int3], [Int4], …)

Metric prefixes ([%], [%%], [Y], [sept], [Z], [sext], [E], …)

Parser Symbols ((, ), ,, ;)

Units

在参数解析方面,MXReflection支持以数字内容作为参数的所有字段数据类型。您可以将所有Java类型与返回数值结果的toString实现一起使用。支持的结果字段java类型有:

Double

double

Long

long

String

BigInteger

但是要注意的是注意,对于long、long和BigInteger,MXReflection使用在注入前解析最终结果。建议确保表达式返回整数类型。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210303A0BCHR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券