想象一下,一台计算器不再受限于 16 位有效数字。别再幻想了,因为这款计算器可以执行大多数科学计算,精确到数百位有效数字。这真是太棒了,我们舍不得私藏,所以请尽情享受吧。
输入:
输出:
常量▼
命名常量▼
下列命名常量可用:
| 姓名 | 近似值 | |
|---|---|---|
e | 2.718281828459045… | |
π | pi | 3.141592653589793… |
τ | tau | 6.283185307179586… |
数字常量▼
数字常量可以具有整数部分、小数部分或两者,后面还可以跟着指数部分:
整数部分由一个或多个十进制数字组成
小数部分由一个小数点组成
.后面跟着一个或多个十进制数字指数部分由
E或e组成,后跟可选的+或-,后跟一个或多个十进制数字
| 示例 | ||
|---|---|---|
1 | .5 | 1.5 |
1e2 | .5e2 | 1.5e2 |
1E2 | .5E2 | 1.5E2 |
1e+2 | .5e+2 | 1.5e+2 |
1E+2 | .5E+2 | 1.5E+2 |
1e-2 | .5e-2 | 1.5e-2 |
1E-2 | .5E-2 | 1.5E-2 |
运算符▼
以下运算符可用于表达式:
| 类别 | 优先级 | 结合性 | 操作员 | 描述 | 例子 |
|---|---|---|---|---|---|
| 基本的 | 最高 | 没有任何 | () | 子表达式 | (1 + e) |
| 后缀 | 第二高 | 从左到右 | () | 功能 | lcm(3, 4) |
! | 阶乘 | 4! | |||
| 力量 | 第三高 | 从右到左 | ^ | 指数运算 | 2^6 |
| 前缀 | 第四高 | 从右到左 | + | 一元加法 | +3 |
- | 否定 | -7 | |||
√ | 平方根 | √2 | |||
| 乘法 | 第五高 | 从左到右 | 隐式乘法 | 2pi | |
* | 显式乘法 | 2 * pi | |||
/ | 分配 | pi / 2 | |||
% | 余 | 12 % 5 | |||
| 添加剂 | 最低 | 从左到右 | + | 添加 | e + 1 |
- | 减法 | e - 1 |
当命名常量后紧跟一个数值常量或命名函数时,隐式乘法无法识别。例如, pi2和esin4是错误的,而2pi 、 pi 2和e sin 4是有效的。
功能▼
以下函数可用于表达式。函数名称区分大小写。
一元函数的操作数无需加括号。例如, ln 2和sin sqrt 2都是有效的。当以这种方式使用时,函数名的行为相当于前缀运算符。例如, sin 2π被解析为(sin 2) × π , ln 2 ^ 4被解析为ln(2 4 ) 。
四舍五入▼
| 功能 | 描述 |
|---|---|
ceil( x ) | 返回不小于x 的最小整数 |
floor( x ) | 返回不大于x 的最大整数 |
int( x ) | 返回x的整数部分 |
round( x ) | 返回最接近x 的整数值 (平局部分从零开始四舍五入) |
trunc( x ) | 返回x的整数部分 |
根、指数和对数▼
| 功能 | 描述 |
|---|---|
cbrt( x ) | 返回x的立方根 |
exp( x ) | 返回e x |
exp2( x ) | 返回2 x |
exp10( x ) | 返回10 x |
ln( x ) | 返回x的自然对数 |
log( x , b ) | 返回x的以b为底的对数 |
log2( x ) | 返回x的以2为底的对数 |
log10( x ) | 返回x的以10为底的对数 |
sqrt( x ) | 返回x的平方根 |
三角学▼
| 功能 | 描述 |
|---|---|
acos( x ) | 返回x的反余弦 |
acosh( x ) | 返回x的反双曲余弦 |
acot( x ) | 返回x的反余切 |
acoth( x ) | 返回x的反双曲余切 |
acsc( x ) | 返回x的反余割 |
acsch( x ) | 返回x的反双曲余割 |
asec( x ) | 返回x的反正割 |
asech( x ) | 返回x的反双曲正割值 |
asin( x ) | 返回x的反正弦 |
asinh( x ) | 返回x的反双曲正弦值 |
atan( x ) | 返回x的反正切 |
atan2( y , x ) | 返回y和x的双参数反正切 |
atanh( x ) | 返回x的反双曲正切 |
cos( x ) | 返回x的余弦 |
cosh( x ) | 返回x的双曲余弦 |
cot( x ) | 返回x的余切 |
coth( x ) | 返回x的双曲余切 |
csc( x ) | 返回x的余割 |
csch( x ) | 返回x的双曲余割 |
hypot( x , y ) | 返回x和y的斜边 |
sec( x ) | 返回x的正割 |
sech( x ) | 返回x的双曲正割 |
sin( x ) | 返回x的正弦 |
sinc( x ) | 返回x的基数正弦 |
sinh( x ) | 返回x的双曲正弦 |
tan( x ) | 返回x的正切 |
tanh( x ) | 返回x的双曲正切 |
杂项▼
| 功能 | 描述 |
|---|---|
abs( x ) | 返回x的绝对值 |
avg( x , y ) | 返回x和y的平均值 |
combin( n , k ) | 返回从n 个项目中选择k 个项目的方法数 (二项式系数) |
gcd( x , y ) | 返回x和y的最大公约数 |
hgd( k , n , K , N ) | 返回从n 个项目中选择k 个项目的概率, 假设从N 个项目中选择K 个项目 |
interp( x , x 0 , y 0 , x 1 , y 1 ) | 返回x的线性插值y值 给定坐标 ( x 0 , y 0 ) 和 ( x 1 , y 1 ) |
lcm( x , y ) | 返回x和y的最小公倍数 |
max( x , y ) | 返回x和y的最大值 |
min( x , y ) | 返回x和y的最小值 |
nabs( x ) | 返回x的绝对值的负数 |
permut( n , k ) | 返回从n 个项目中排列k 个项目的方法数 |
sign( x ) | 根据x的值返回−1 、 0或+1 |
语法▼
以下类似 EBNF 的符号描述了表达式语法:
表达:
| 加法表达式
;
加法表达式:
| 乘法表达式
| 加法表达式 '+' 乘法表达式
| 加法表达式 '-' 乘法表达式
;
乘法表达式:
| 前缀表达式
| 乘法表达式前缀表达式
| 乘法表达式 '*' 前缀表达式
| 乘法表达式 '/' 前缀表达式
| 乘法表达式 '%' 前缀表达式
;
前缀表达式:
| '+' 前缀表达式
| '-' 前缀表达式
| '√' 前缀表达式
| 一元函数前缀表达式
| 权力表达
;
一元函数:
| '天花板' | '地板'
| '整数' | '截断'
| '圆形'
| '平方根' | 'cbrt'
| '表达式' | '表达式2' | '表达式10'
| 'ln' | 'log' | 'log2' | 'log10'
| '罪' | '阿辛' | '辛' | '阿辛' | '正弦'
| 'cos' | 'acos' | 'cosh' | 'acosh'
| '晒黑' | 'tanh' | 'tanh' | '阿坦' | '阿坦'
| '秒' | 'asec' | 'sech' | 'sech' | '阿塞克'
| 'CSC' | 'CSC' | 'acsc' | 'csch' | 'csch' | 'acsch'
| '婴儿床' | 'acot' | 'acot' | '棉布' | '阿科斯'
| 'abs' | 'nabs' | 'sign'
;
力量表达:
| 后缀表达式
| 后缀表达式 '^' 前缀表达式
;
后缀表达式:
| 函数
| 主表达式
| 后缀表达式 '!'
;
功能:
| 函数名称'('参数列表')'
;
函数名称:
| '地板' | '天花板'
| '整数' | '截断'
| '圆形'
| '平方根' | 'cbrt'
| '表达式' | '表达式2' | '表达式10'
| 'ln' | 'log' | 'log2' | 'log10'
| '假设'
| '罪' | '阿辛' | '辛' | '阿辛' | '正弦'
| 'cos' | 'acos' | 'cosh' | 'acosh'
| '晒黑' | 'tanh' | 'tanh' | '阿坦' | '阿坦' | '阿坦2'
| '秒' | 'asec' | 'sech' | 'sech' | '阿塞克'
| 'CSC' | 'CSC' | 'acsc' | 'csch' | 'csch' | 'acsch'
| '婴儿床' | 'acot' | 'acot' | '棉布' | '阿科斯'
| 'abs' | 'nabs' | 'sign'
| '最小值' | '最大值' | '平均值'
| '最大公约数' | '最小公倍数'
| '组合' | '排列' | 'hgd'
| '解释器'
;
参数列表:
| 表达式
| 参数列表','表达式
;
主要表达式:
| 常数
| '('表达式')'
;
持续的:
| 命名常量
| 数字常数
;
命名常量:
| 'e'
| 'π' | '圆周率'
| 'τ' | 'tau'
;
数字常数:
| 整数部分 [ 小数部分 ] [ 指数部分 ]
| 小数部分 [ 指数部分 ]
;
整数部分:
| 数字 { 数字 }
;
数字:
| '0' | '1' | '2' | '3' | '4'
| '5' | '6' | '7' | '8' | '9'
;
小数部分:
| '。' 整数部分 ;指数部分: | 指数字符 [ 指数符号 ] 整数部分 ;指数字符: | 'E' | 'e' ;指数符号: | '+' | '-' ;
