模板:计算
外观
Template:复变运算
本页面为软重定向。
- 第一参数为要运算的运算式,第二参数为运算结果要四舍五入到小数第几位,如
{{計算|sqrt(i)|4}}
→“0.7071+0.7071i”。与{{复变运算}}稍有不同之处在于,此模板支援输出round,而{{复变运算}}则否。
此模板被引用于约3,700个页面。 为了避免造成大规模的影响,所有对此模板的编辑应先于沙盒、测试样例或您的沙盒上测试。 测试后无误的版本可以一次性地加入此模板中,但是修改前请务必于讨论页发起讨论。 模板引用数量会自动更新。 |
此模板使用Lua语言: |
{{复变运算}}模板为Help:计算功能的一个扩展,提供了一些Help:计算不支持的计算。
概要
本模板比Help:计算多了以下功能:
使用方法
本模板的第一参数为欲计算的表达式,关于表达式的语法详见#语法一节。参数number class为指定运算时使用的数域。若使用其软重定向版本{{计算}}则有第二参数可以使用,用途为指定输出的小数码数。
其基础语法为:
|
或
|
参数说明
- 第一参数:要计算的数学式
|number class=
:使用的数域,可以是:|should math=
:布尔值,是否直接输出适用于<math></math>
的LaTeX原始码|use math=
:布尔值,是否直接输出完整的<math></math>
数学公式|useOtherModule=
:布尔值,是否允许加载其他模块中返回数字的LUA数学函数或数学模板
语法
本节将说明本模板输入的表达式之语法。
项目 | 语法 | 说明 | 示例 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
数字的表达 |
|
数字的表达可分为实数表达、科学记号和含单位的数。
|
| ||||||||||||||||
四则运算与幂运算 | 運算式運算符運算式
|
依序以中缀表示法表达表达式即可。 |
| ||||||||||||||||
函数 | 函數 (參數1,參數2 ...)
|
调用现有函数。所有函数都至少要传入一个参数。 |
| ||||||||||||||||
多组运算 | 運算式1;運算式2
|
仅会显示最后一组运算的结果 |
| ||||||||||||||||
变量定义 | 變數名稱←運算式
|
给特定名称的变量赋值。需特别注意所有变量的范围(Scope)皆相同(可想像所有变量皆为全局变量),包括函数中的参数,因此若函数外层已经定义了变量x则函数内部需避免使用同名变量x。 |
| ||||||||||||||||
函数定义 | 函數名稱:參數1,參數2 ...↦函數運算式;
|
函数的语法为以名称起始并以冒号区隔函数名称与定义(函数名称可留空,但冒号不能省去),整个语法要以分号(; )结尾。位于映射符号(↦ )前方为函数的变量或参数,后方为函数主体定义,即 f : x ↦ f (x) ; 。函数可以有多个变量,但仅能有单个输出,即或。同时函数语法不建议写成嵌套结构,即不建议将函数定义内包含另一个函数的定义,但可以分开定义再行组合;此外,函数定义内不能包含分号,因为分号会视为函数的结尾。
|
| ||||||||||||||||
运算符优先序调整 | (運算式優先算符運算式)運算符運算式
|
使用括号来令特定运算优先进行。 |
|
详细运算符、常量及函数列表
运算符
语法 | 名称 | 元数 | 说明 | 优先 | 示例 | 效果 | math输出 |
---|---|---|---|---|---|---|---|
基础算术 | |||||||
+ |
2 | 计算两数之和 |
9 | 7 + 3 |
10 |
||
- |
2 | 计算两数之差 |
9 | 7 - 3 |
4 |
||
* |
2 | 计算两数之乘积 |
10 | 7 * 3 |
21 |
||
× |
2 | 计算两数之乘积 |
10 | 7 × 3 |
21 |
||
/ |
2 | 计算两数相除之商 |
10 | 7 / 3 |
2.3333333333333 |
||
÷ |
2 | 计算两数相除之商 |
10 | 7 ÷ 3 |
2.3333333333333 |
||
% |
2 | 计算两数相除之余数 |
10 | 7 % 3 |
1 |
||
^ |
2 | 计算两数之幂运算 |
12 | 7 ^ 3 |
343 |
||
e |
2 | 当e左邻一实数、右邻一整数时,则为科学记号,以 256e-3 为例,其代表的结果为。要注意的是左边的数必为单一实数、右边的数必为整数,可为负数,且中间不能有空格。 |
∞ | 12.3e4 |
123000 |
||
() |
1 | 改变运算优先级 |
∞ | 2*(2+3) |
10 |
||
数论 | |||||||
+ |
1 | 表达一正数 |
14 | +7 |
7 |
||
- |
1 | 计算一数的相反数 |
14 | -7 |
-7 |
||
% |
2 | 计算两数相除之余数 |
10 | 7 % 3 |
1 |
||
布尔代数 | |||||||
& |
2 | 两逻辑是否皆为真 |
5 | (1=1) & (1=2) |
0 |
||
↑ |
2 | 两逻辑是否不全为真 |
5 | (1=1) ↑ (1=2) |
1 |
||
| |
2 | 两逻辑是否有一者为真 |
4 | (1=1) | (1=2) |
1 |
||
↓ |
2 | 两逻辑是否全为假 |
4 | (1=1) ↓ (1=2) |
0 |
||
⊕ |
2 | 两逻辑是否相异 |
4 | (1=1) ⊕ (1=2) |
1 |
||
⇔ |
2 | 两逻辑是否相同 |
4 | (1=1) ⇔ (1=2) |
0 |
||
~ |
1 | 逻辑否定 |
13 | ~(1=2) |
1 |
||
and |
2 | 逻辑且的字母模式。使用时须与前后文各间隔至少一个空格 |
5 | (1=1) and (1=2) |
0 |
||
nand |
2 | 逻辑与非的字母模式。使用时须与前后文各间隔至少一个空格 |
5 | (1=1) nand (1=2) |
1 |
||
or |
2 | 逻辑或的字母模式。使用时须与前后文各间隔至少一个空格 |
4 | (1=1) or (1=2) |
1 |
||
nor |
2 | 逻辑或非的字母模式。使用时须与前后文各间隔至少一个空格 |
4 | (1=1) nor (1=2) |
0 |
||
xor |
2 | 逻辑异或的字母模式。使用时须与前后文各间隔至少一个空格 |
4 | (1=1) xor (1=2) |
1 |
||
xnor |
2 | 逻辑当且仅当的字母模式。使用时须与前后文各间隔至少一个空格 |
4 | (1=1) xnor (1=2) |
0 |
||
not |
1 | 逻辑非的字母模式。使用时须与前后文各间隔至少一个空格 |
13 | not (1=2) |
1 |
||
数值修约 | |||||||
round |
2 | round 的运算符模式,会将一数四舍五入到指定的位数。使用时须与前后文各间隔至少一个空格 |
8 | π round 6 |
3.141593 |
||
代数 | |||||||
⋅ |
2 | 表达一数的系数 |
10 | 2⋅π |
6.2831853071796 |
||
← |
2 | 给予变量数值 |
7 | x ← 7;x |
7 |
||
↦ |
2 | 给予函数定义 |
12 | :x,y↦x^2+y^2;(5,2) |
29 |
||
: |
构成函数
|
2 | 冒号( : )为定义函数时区隔函数的名称与函数的主体,而冒号(: )与分号(; )的区间构成一个函数的定义。在冒号左边的内容为函数的名称,在冒号右边的内容为函数的内容。若函数没有名称也需要输写冒号。 |
7 | f:x↦x^2;(5) |
25 |
|
, |
2 | 产生数组供多元函数使用 |
1 | 7, 3 |
7, 3 |
||
复变 | |||||||
* |
1 | 计算一数的共轭复数 |
14 | *(7+3i) |
7-3i |
||
i |
1 | 表达纯虚数 |
∞ | 3i |
3i |
||
二元关系 | |||||||
> |
2 | 比较两数大小 |
6 | 7 > 3 |
1 |
||
< |
2 | 比较两数大小 |
6 | 7 < 3 |
0 |
||
≥ |
2 | 比较两数大小 |
6 | 7 ≥ 3 |
1 |
||
≤ |
2 | 比较两数大小 |
6 | 7 ≤ 3 |
0 |
||
= |
2 | 两数是否相等 |
3 | 7 = 3 |
0 |
||
≠ |
2 | 两数是否不相等 |
3 | 7 ≠ 3 |
1 |
||
技术性 | |||||||
; |
2 | 分隔两表达式,结果将取最后一个分号后的结果 |
1 | 7 ; 3 |
3 |
||
return |
1 | 返回数值。需注意return后方必须跟着一个数值或表达式,否则会变成未定义行为而出现预期外的结果。 |
2 | return 7;8 |
7 |
||
三角函数 | |||||||
° |
1 | 用于表示角度单位的符号。 |
10 | 180° |
3.1415926535898 |
||
π |
1 | 表示圆周率。 |
10 | 3π |
9.4247779607694 |
- 注:另有
>=
、<=
、==
(相等判断)、~=
(不相等判断)、!=
(不相等判断)、@=
(数值指派)、+=
(相加指派)、-=
(相减指派)、*=
(相乘指派)、/=
(相除指派)、^=
(幂指派)、&=
(逻辑与指派)、|=
(逻辑或指派)可供使用,其会自动替换为上表中对应的操作数。指派操作数须注意等号左边必须是一个单一变量词语,不可以是括弧或函数变换的结果。
常量和数值
语法 | 名称 | 别名 | 说明 | 数值 | math输出 |
---|---|---|---|---|---|
e |
自然底数 | 自然对数函数的底数 | 2.718281828459 | ||
i |
虚数单位 | 表达纯虚数 | i | ||
j |
四元数单位j | 表达纯四元数虚数j | j | ||
k |
四元数单位k | 表达纯四元数虚数k | k | ||
nan |
非数 | 用于表示数学上未定义的数值,或计算发生错误的数值。 | nan | ||
nil |
空值 | null |
空值。在math模式下显示为空白,用于表达或传递无参数的函数之参数。请注意,由于此值为空值,因此请勿将此值参与运算,以免发生错误。 | nil | |
° |
角度单位 | 用于表示角度单位的符号。 | 0.017453292519943 | ||
π |
圆周率 | pi |
表示圆周率。 | 3.1415926535898 | |
ω |
艾森斯坦整数单位 | 表达艾森斯坦整数单位。 | -0.5+0.86602540378444i |
函数
语法 | 名称 | 参数 数量 |
说明 | 示例 | 效果 | math输出 |
---|---|---|---|---|---|---|
基础算术 | ||||||
div |
2 | 用于在math输出时,以分数的形式显示 |
div(7,3) |
2.3333333333333 |
||
dot |
2 | 计算两数的内积。 |
dot(7,3) |
21 |
||
pow |
2 | 计算两数之幂运算 |
pow(7,3) |
343 |
||
数论 | ||||||
gcd |
不定 | 计算多个数的最大公约数。 |
gcd(7,21) |
7 |
||
lcm |
不定 | 计算多个数的最小公倍数。 |
lcm(7,3,21) |
21 |
||
digits |
1 | 获取整数的位数个数 |
digits(7321) |
4 |
||
divisor |
2 | 获取某数的第n个正约数 |
divisor(6,1),divisor(6,2),divisor(6,3),divisor(6,4) |
1, 2, 3, 6 |
||
primedivisor |
2 | 获取某数的第n个素因数 |
primedivisor(210,1),primedivisor(210,2),primedivisor(210,3),primedivisor(210,4) |
2, 3, 5, 7 |
||
divisorsigma |
2 | 计算特定整数的除数函数 |
divisorsigma(1,6) |
12 |
||
eulerphi |
1 | 获取小于等于n的正整数中与n互素的数的数目 |
eulerphi(8) |
4 |
||
findnext |
向后查找
|
2 | 查找下一个符合条件的整数 |
findnext(:x↦x % 6 = 0;,6) |
12 |
|
findlast |
向前查找
|
2 | 查找前一个符合条件的整数 |
findlast(:x↦x % 6 = 0;,10) |
6 |
|
初等函数 | ||||||
abs |
1 | 计算一数与原点的欧几里得距离 |
abs(-3) |
3 |
||
log |
1 | log(e) |
1 |
|||
log |
2 | log(2,16) |
4 |
|||
sgn |
1 | sgn(-7) |
-1 |
|||
sqrt |
1 | 计算一数的算术平方根值 |
sqrt(16) |
4 |
||
inverse |
1 | inverse(7) |
0.14285714285714 |
|||
exp |
1 | exp(π⋅i) |
-1 |
|||
数值修约 | ||||||
floor |
1 | 向下取整 |
floor(7.3) |
7 |
||
ceil |
1 | 向上取整 |
ceil(7.3) |
8 |
||
round |
3 | 对一数进行四舍五入。第一参数为欲四舍五入的数字;第二参数为欲四舍五入的位数;第三参数为当数值修约底数非十进制时的底数。 |
round(π,6) |
3.141593 |
||
trunc |
2 | 对一数取截尾函数。第一参数为欲截尾的数字;第二参数为欲截尾的位数。 |
trunc(π,6) |
3.141592 |
||
特殊函数 | ||||||
binomial |
2 | 计算二项式系数。亦可以被理解为从n个相异元素中取出k个元素的方法数。 |
binomial(7,3) |
35 |
||
factorial |
1 | 计算一数的阶乘 |
factorial(7) |
5040 |
||
gamma |
1 | 计算一数的Γ函数 |
gamma(7) |
720 |
||
LambertW |
2 | 计算一数的朗伯W函数 |
LambertW(1) |
0.56714329040978 |
||
代数 | ||||||
norm |
2 | 计算一数或向量的范数 |
norm(3+4i,2) |
5 |
||
summation |
3 | 计算以函数表达之数列的总和。第一参数为数列首项;第二参数为数列末项;第三参数为用以表达数列的函数 |
summation(1,5,:x↦x^2;) |
55 |
||
product |
3 | 计算以函数表达之数列的连乘积。第一参数为数列首项;第二参数为数列末项;第三参数为用以表达数列的函数 |
product(1,5,:it↦it;) |
120 |
||
<不定> |
不定 | 调用自行定义的函数,这些函数通常是或。以 f:x↦x^2;;f(5) 为例,其中f:x↦x^2; 定义了函数,并调用了函数。函数的语法为以名称起始并以冒号区隔函数名称与定义(函数名称可留空,但冒号不能省去),整个语法要以分号(; )结尾。位于映射符号(↦ )前方为函数的变量或参数,后方为函数主体定义。函数可以有多个变量,但仅能有单个输出;同时函数语法不建议使用嵌套结构,即不建议将函数定义内包含另一个函数的定义,但可以分开定义再行组合;此外,函数定义内不能包含分号,因为分号会被视为函数结尾。 |
f:x↦x^2;,f(5) |
f, 25 |
||
ele |
1 | 获取特定代数空间(如四元数)的第n个单位元,如ele(2)即e₂=j |
ele(2) |
j |
||
微积分 | ||||||
limit |
3 | 计算一函数在x=x₀的极限。需注意此运算为估计,运算精度约仅有7位有效数字。第一参数为x₀;第二参数为逼近方向,1表示右极限、-1表示左极限、0表示一般的极限,此时若极限不存在则返回nan;第三参数为欲求极限的函数。 |
limit(0,1,:x↦div(x,x);) |
1 |
||
diff |
2 | 计算一函数在x=x₀的导数。需注意此运算为估计,运算精度约仅有7位有效数字。第一参数为欲求导数x=x₀的函数;第二参数为x₀。 |
diff(cos,div(2⋅pi,3)) |
-0.86602540379001 |
||
integral |
4 | 计算一函数在从a到b的定积分。需注意此运算为估计,运算精度约仅有7位有效数字,且积分范围(a和b的距离)越大,精确度会越低。第一参数为a、第一参数为b、第三参数为欲求定积分的函数、第四参数为取样数,若未填写则使用默认值2000。 |
integral(0,π,:x↦sin(x);) |
2 |
||
复变 | ||||||
re |
1 | 获取一数的实数部分。 |
re(7+3i) |
7 |
||
im |
1 | 获取一数的虚数部分 |
im(7+3i) |
3 |
||
nonRealPart |
1 | 获取一数的非实数部分 |
nonRealPart(7+3i+2j+k) |
3i+2j+k |
||
scalarPartQuaternion |
1 | 获取四元数的标量部分 |
scalarPartQuaternion(7+3i+2j+k) |
7 |
||
vectorPartQuaternion |
1 | 获取四元数的向量部分 |
vectorPartQuaternion(7+3i+2j+k) |
3i+2j+k |
||
arg |
1 | 计算一复数的辐角 |
arg(3+7i) |
1.1659045405098 |
||
cis |
1 | 计算一数的纯虚指数函数值 |
cis(π) |
-1 |
||
conjugate |
1 | conjugate(7+3i) |
7-3i |
|||
统计 | ||||||
average |
不定 | 计算数组的算术平均数。 |
average(7,3,2,1) |
3.25 |
||
geoaverage |
不定 | 计算数组的几何平均数 |
geoaverage(7,3,2,1) |
2.5457298950218 |
||
maximum |
不定 | 计算数组的最大值 |
maximum(7,3,2,1) |
7 |
||
minimum |
不定 | 计算数组的最小值 |
minimum(7,3,2,1) |
1 |
||
selectlist |
不定 | 输出数组中指定位置的元素。第一参数为要输出的元素序号,第二参数之后为数组 |
selectlist(2,7,3,2,1) |
3 |
||
σ |
不定 | 计算数组的标准差 |
σ(7,3,2,1) |
2.2776083947861 |
||
技术性 | ||||||
hide |
隐藏表达式
|
不定 | 在math模式下隐藏指定表达式。本函数的结果为最后一个参数。可作为连续表达式的表达,所有已输入的表达式皆会计算,但结果会隐藏。亦可用于自定义函数中的多表达式表达。 |
hide(y←5,x←7,x⋅y),5 |
35, 5 |
|
exprs |
一系列表达式
|
不定 | 在math模式时显示所有表达式,运算结果为最后一则表达式。可作为连续表达式的表达,所有已输入的表达式皆会计算。 |
exprs(y←5,x←7,x⋅y),5 |
35, 5 |
|
lastexpr |
最后一则表达式
|
不定 | 在math模式时显示最后一则表达式,运算结果也为最后一则表达式。可作为连续表达式的表达,所有已输入的表达式皆会计算。 |
lastexpr(y←5,x←7,x⋅y),5 |
35, 5 |
|
equalexpr |
连续等式
|
不定 | 生成连续等式。 |
equalexpr(2+2,2*2) |
4 |
|
call |
调用函数
|
不定 | 调用一个函数。用于处理匿名函数或返回值是函数的情况。 |
call((:x,y↦sin(x)+cos(y);),π,0) |
1 |
|
<functionName>AtModule<ModulePageName> |
不定 | 调用其他模块的函数。须注意函数名称必须是纯英文、模块名称也必须是纯英文,不能有空格或其他符号。例如若需要调用Module:Element中的 getAtomicWeight 函数,则须表示为getAtomicWeightAtModuleElement 。 |
getAtomicWeightAtModuleElement(10) |
20.1797 |
||
range |
指定范围
|
3 | 指定一范围,当一数落在该范围外则视为非数(NaN)。第一参数为要判定的数,第二和第三参数分别为范围的最小和最大值。 |
range(7,1,5),range(4,1,5) |
nan, 4 |
|
if |
3 | 指定特定条件下时的表达式。第一参数为条件、第二参数为条件为真时的表达式、第三参数为条件为假时的表达式。 |
if(3>2,1,0) |
1 |
||
iff |
函数型条件表达式
|
3 | 同if,不过参数可以是函数,条件成立时才会调用。 |
iff(3>2,:nil↦1;,:nil↦2;) |
1 |
|
ifelse |
条件表达式 if...else
|
不定 | 类似if,用法为ifelse(条件1, 条件1为真的结果, 条件2, 条件2为真的结果, ... , 条件n, 条件n为真的结果, 条件皆为假的结果) |
ifelse(3>2,10,3<2,20,30) |
10 |
|
ifelsef |
函数型条件表达式 if...else
|
不定 | 同ifelse,不过参数可以是函数,条件成立时才会调用。 |
ifelsef(3>2,:nil↦10;,3<2,:nil↦20;,:nil↦30;) |
10 |
|
random |
2 | 取一个随机数。若无指定参数,或参数中包含非数(NaN),则取0-1之间的随机实数;若指定了参数1,则取1到参数1之间的随机数;若指定了参数1与参数2,则取参数1到参数2之间的随机数 |
random(1,10) |
6 |
||
randomseed |
设置随机种子码
|
1 | 将随机数的种子码设置为输入的参数,并返回实际设置的种子码。若输入的参数非实数则用当前时间随机产生种子码。 |
randomseed(10) |
10 |
|
三角函数 | ||||||
sin |
1 | 计算一数的正弦值 |
sin(π) |
0 |
||
cos |
1 | 计算一数的余弦值 |
cos(π) |
-1 |
||
tan |
1 | 计算一数的正切值 |
tan(π) |
0 |
||
cot |
1 | 计算一数的余切值 |
cot(div(π,2)) |
0 |
||
sec |
1 | 计算一数的正割值 |
sec(π) |
-1 |
||
csc |
1 | 计算一数的余割值 |
csc(div(π,2)) |
1 |
||
asin |
1 | 计算一数的反正弦值 |
asin(1) |
1.5707963267949 |
||
acos |
1 | 计算一数的反余弦值 |
acos(1) |
0 |
||
atan |
1 | 计算一数的反正切值 |
atan(1) |
0.78539816339745 |
||
acot |
1 | 计算一数的反余切值 |
acot(1) |
0.78539816339745 |
||
asec |
1 | 计算一数的反正割值 |
asec(1) |
0 |
||
acsc |
1 | 计算一数的反余割值 |
acsc(1) |
1.5707963267949 |
||
sinh |
1 | 计算一数的双曲正弦值 |
sinh(π) |
11.548739357258 |
||
cosh |
1 | 计算一数的双曲余弦值 |
cosh(π) |
11.591953275522 |
||
tanh |
1 | 计算一数的双曲正切值 |
tanh(π) |
0.99627207622075 |
||
coth |
1 | 计算一数的双曲余切值 |
coth(π) |
1.0037418731973 |
||
sech |
1 | 计算一数的双曲正割值 |
sech(π) |
0.086266738334054 |
||
csch |
1 | 计算一数的双曲余割值 |
csch(π) |
0.086589537530047 |
||
asinh |
1 | 计算一数的双曲反正弦值 |
asinh(1) |
0.88137358701954 |
||
acosh |
1 | 计算一数的双曲反余弦值 |
acosh(1) |
0 |
||
atanh |
1 | 计算一数的双曲反正切值 |
atanh(0.5) |
0.54930614433405 |
||
acoth |
1 | 计算一数的双曲反余切值 |
acoth(1.5) |
0.80471895621705 |
||
asech |
1 | 计算一数的双曲反正割值 |
asech(1) |
0 |
||
acsch |
1 | 计算一数的双曲反余割值 |
acsch(1) |
0.88137358701954 |
||
cis |
1 | 计算一数的纯虚指数函数值 |
cis(π) |
-1 |
||
gd |
1 | 计算一数的古德曼函数值 |
gd(e) |
1.4390113159637 |
||
arcgd |
1 | 计算一数的反古德曼函数值 |
arcgd(1) |
1.2261911708835 |
||
cogd |
1 | 计算一数的余古德曼函数值 |
cogd(π) |
0.08648169656714 |
自定义函数用法
- 具名函数
基本函数定义方式为“ f : x ↦ f (x) ;
”。
例如若要表达,则其应写为“ f : x ↦ x^2 ;
”
- 匿名函数
匿名函数的语法为“:參數1,參數2 ...↦函數運算式;
”
- 以上例而言,对应的匿名函数应写为“
: x ↦ x^2 ;
”
匿名函数可以被直接调用,例如“{{計算結果|:x↦x^2;(5)}}
”→“”
- 函数中的函数
函数中可以包含另一个函数,例如“{{計算結果|:x↦exprs(f:y↦y^2;,f(x)^2);(5)}}
”→“”
- 函数作为参数
- 部分函数是以函数作为参数,例如
summation(
、 )product(
和一些微积分函数。条件表达式( )if(
)也有函数调用的版本 )iff(
。 )
- 求和、求积与微积分函数
- 求和函数(
summation(start,end,function)
,)、求积函数(summation(start,end,function)
,)、微分(diff(function,x0)
,)、积分(integral(a,b,function)
,)、极限(limit(x0,way,function)
,)皆须传入一个匿名函数,作为其数列计算的依据。 - 以求和函数
summation(start,end,function)
为例,若要表达,从1到5的和,则代码为:- “
{{計算結果|summation(1, 5, :x↦x^2;)}}
”→“”
- “
- 求和/求积函数的变量
- 一般求和/求积函数的变量通常是i、j或k,而在此运算系统中,i、j与k已被视作常量无法使用。若需要让显示出来的结果为i、j或k可在英文字母后方加“t”,如it、jt或kt,显示时t会省去:
- “
{{計算結果|summation(1, 5, :it↦it^2;)}}
”→“”
- “
- 求和函数(
- 函数条件表达式(
iff(條件,為真,為假)
)
- 函数的递归
- 具名函数可以递归调用,但须注意递归需要消耗较多的性能。函数的递归需要给出初始条件与递归结果,因此需要使用条件表达式,若用
if(
会导致无穷调用而发生错误,因此需要使用到 )iff(
。 )
- 以阶乘为例,时定义为1(初始条件),其余为:
- 例如“
{{計算結果|f:n↦iff(n≤1, 1, :nil↦f(n-1)*n;);,f(5)}}
”→“”
- 例如“
示例
{{計算|:x,y↦x^2+y^2;(5,2)}}
→29- 使用{{计算结果}}:
{{計算|maximum(2,5,7,6,9,999)}}
→999- 使用{{计算结果}}:
{{計算|log(2,256)}}
→8- 使用{{计算结果}}:
{{計算|sin(div(pi,6))}}
→0.5- 使用{{计算结果}}:
{{計算|sin(pi/6)}}
→0.5- 使用{{计算结果}}:
{{計算|cos(div(2⋅pi,3))}}
→-0.5- 使用{{计算结果}}:
{{計算|factorial(5)}}
→120- 使用{{计算结果}}:
限制
本模板仅支持输入数字(0-9)、已定义的运算符符号(≤
、⇔
、≠
、&
、()
、+
、*
、-
、/
、÷
、⋅
、:
、↓
、|
、~
、←
、↑
、⊕
、×
、°
、;
、=
、≥
、<
、>
、↦
、,
、%
、^
)和半角英文字母(a-z及A-Z),其余字符都会被忽略。
{{複變運算|2 ≈ 3}}
→“Lua错误:计算失败:缺少运算符,数字 [2, 3] 无法运算。”(≈
被忽略,剩下“2<空白>3”而无法运算){{複變運算|²+₆}}
→“Lua错误:计算失败:加法运算符需要2个运算数,但只找到1个运算数。”(²
和₆
被忽略,剩下“+”而无法运算)
参数
进行复变量的运算
参数 | 描述 | 类型 | 状态 | |
---|---|---|---|---|
表达式 | 1 | 要计算的表达式 | 字符串 | 必需 |
小数码数 (计算模板专用) | 2 | 使用{{计算}}模板时才支持这个参数。 | 数字 | 可选 |
运算数字模式 | number class | 要运算的数字模式,可以是实数、cmath(复数)、qmath(四元数)、no calc(不计算)、mathtag(以<math>输出)或直接写Module:模块名称.运算库来指定使用特定模块来运算。
| 字符串 | 可选 |
使用<math> | use math | 是否使用<math>
| 布尔 | 可选 |
是否以<math>原码输出 | should math | 输出结果字符串是否变换为<math>原码格式输出。若use math设置为是,则此参数会自动当成是。
| 布尔 | 可选 |
是否可调用其他模块 | useOtherModule | 是否可调用其他模块的函数。
| 布尔 | 可选 |
重定向
- {{计算}}