数学¶
该部分主要完成数学运算相关的功能,具体包括数字、常数、三角函数、各种数学、位和逻辑计算、取整、取最大值、随机数、进制转换、约束和映射模块。
1.数字常量¶
1.1描述¶
数字常量包括:整数常量和浮点常量。
注意
整数常量是直接在程序中使用的数字,如123。默认情况下,这些数字被视为int类型。通常情况下,整数常量默认为十进制,但可以加上特殊前缀表示为其他进制。如:0b111,表示二进制;0o73,表示八进制;0x7B,表示十六进制。
浮点常量也可以直接中程序中使用,如12.3。默认情况下,这些数字被视为float类型。也可以使用科学计数法表示浮点数。如:2.34E5代表2.34 * 10^5,其实际值为234000;67E-12代表67.0 * 10^-12,其实际值为0.000000000067。
3.三角函数及其他¶
5.对数函数与幂函数¶
6.算术运算¶
6.1 描述¶
算术运算中包括加(+)、减(-)、乘(×)、除(÷)、取模(%)、取整除(//)和幂运算(**)。这些运算将会返回两个操作数的和,差,积,商,模、商的整数部分和幂值。
注意
- 这些运算是根据操作数的数据类型来计算的,比如 9和4都是int类型,所以9/4结果是2。
- 如果想要两个整数相除得到小数,就需要将整数转换成小数。如9.0/2.0=4.5 。
- 这也就代表如果运算结果比数据类型所能容纳的范围要大的话,就会出现溢出。例如: 1加上一个整数 int类型 32,767 结果变成-32,768。
- 如果操作数是不同类型的,结果是“更大”的那种数据类型。如果操作数中的其中一个是 float类型或者double类型, 就变成了浮点数运算。
- 取整除运算将会返回商的整数部分,向下取整。
6.2 参数¶
常量或变量
6.3 返回值¶
两个操作数的和,差,积,商,模、商的整数部分和幂值。
7.位运算¶
注解
按位运算符是把数字看作二进制来进行计算。
7.1 按位与(&)¶
7.1.1 描述¶
按位与操作符为一个&符,用在两个整型变量之间。按位与运算符对两侧的变量的每一位都进行运算。
规则是:如果两个运算元都是1,则结果为1,否则输出0。
提示
如: 0011&0101=0001
7.1.2 范例¶
1 2 3 | a = 0b0011
b = 0b0101
c = (a&b)
|
7.2 按位或(|)¶
7.2.1 描述¶
按位或操作符是|。
和&操作符类似,|操作符对两个变量的为一位都进行运算,只是运算规则不同。
按位或规则:只要两个位有一个为1则结果为1,否则为0。
提示
如:0011|0101=0111
7.2.2 范例¶
1 2 3 | a = 0b0011
b = 0b0101
c = (a|b)
|
8.赋值运算¶
8.1 描述¶
赋值运算中包括赋值加(+=)、赋值减(-=)、赋值乘(×=)、赋值除(÷=)、赋值取模(%=)、赋值取整除(//=)和赋值幂运算(**=)。
赋值运算符的左边为变量,右边为操作数。赋值运算符将左边的变量本身和右边的操作数分别作为算术运算的操作数,返回两个操作数的和,差,积,商,模、商的整数部分和幂值,并将返回值赋值给左边的变量。
注意
- 这些运算是根据操作数的数据类型来计算的,比如 9和4都是int类型,所以9/4结果是2。
- 如果想要两个整数相除得到小数,就需要将整数转换成小数。如9.0/2.0=4.5 。
- 这也就代表如果运算结果比数据类型所能容纳的范围要大的话,就会出现溢出。例如: 1加上一个整数 int类型 32,767 结果变成-32,768。
- 如果操作数是不同类型的,结果是“更大”的那种数据类型。如果操作数中的其中一个是 float类型或者double类型, 就变成了浮点数运算。
- 取整除运算将会返回商的整数部分,向下取整。
8.2 参数¶
赋值运算符左边的参数为变量,右边的参数可以为常亮或者变量。
9.近似运算¶
15.约束(constrain)¶
15.1 描述¶
约束是将数值限制在最小值与最大值之间,所有小于最小值的数值被赋值为最小值,同理,所有大于最大值的数被赋值为最大值。
15.2 参数¶
参数一:要被约束的数字,所有的数据类型适用。
参数二:该范围的最小值,所有的数据类型适用。
参数三:该范围的最大值,所有的数据类型适用。
15.3 返回值¶
如果参数一介于参数二和参数三之间,返回参数一;
如果参数一大于参数三,返回参数三;
如果参数一小于参数二,返回参数二;
16.映射(map)¶
提示
映射指两个元素的集之间元素相互“对应”的关系。
就像把一张地图幻灯片(尺寸255)投影到大屏幕上(尺寸1023)一样,虽然两者尺寸大小不同,但不改变地图内部的比例和相对位置。
两者之间数据形成一一对应的关系。
16.1 描述¶
映射运算将参数值在前一个元素集中的位置按照两个元素集的映射方式,得出在后一个元素集中对应位置的值。
16.2 参数¶
参数一:需要求映射的值;
参数二和参数三:映射的起始元素集范围;
参数四和参数五:映射的终点元素范围。
16.3 返回值¶
返回参数一从起始元素集映射到终点元素集的值。
1 2 3 4 | def mixly_mapping(v, al, ah, bl, bh):
return bl + (bh - bl) * (v - al) / (ah - al) //Mixly中的映射函数
mixly_mapping(50, 0, 100, 0, 1000) //调用映射函数,返回值为500.0
|
提示
参考上述代码举例,可以了解到:起始集合为[0,100],终点集合为[0,1000],两个集合的右边界减去左边界,再用终点集合的边界差除以起始集合的边界差,得到10,即起始集合到终点集合的映射为放大10倍。
参数一50在起始集合中的位置位于左边界加50,则在终点集合中的位置应当位于左边界加500,而经过乘除运算后数据类型变为float,所以上述举例中的返回值为500.0。
请再结合以下举例理解映射运算。
1 2 3 4 5 6 7 | mixly_mapping(65, 50, 100, 50, 1000) //调用映射函数,返回值为335.0
mixly_mapping(35, 50, 100, 50, 1000) //调用映射函数,返回值为-235.0
mixly_mapping(50, 0, 1000, 0, 100) //调用映射函数,返回值为5.0
mixly_mapping(60, 50, 80, 56, 74) //调用映射函数,返回值为62.0
|