心情好,写点早教文章,可能会作为模组教程的内容之一吧。
目前我们所学的数学上的函数通常表示为f(x),"f"和"x"这两个字母也是可以替换的,用来表示固定一套算法,大火都是上过高一的,所以不多赘述。
高级语言中也有同名相似功能的概念,Java中管这个叫做方法(接下来都叫做函数防止思维混乱)。
这是一个函数的定义:
修饰符 输出类型 函数名(入参类型 入参){
代码块;
return 输出参数;
}如果仍然用数学来概括的话,那么如下:
设函数f(x)=5x,则f(4)=20其中的f即函数名,x和4即入参(输入参数)。入参也能分为两种,一种是定义函数时设定的形参(形式参数),如例子中的x ,另一种是调用函数时使用的实参(实际参数),如例子中的4 。而输出参数就是调用后输出的参数,像例子中的20,输出的参数的类型必须和定义的输出类型一样。
把例子用Java表示即为:
public class Main {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int x){
return 5*x;
}
}运行该类,得到的输出是:
20
进程已结束,退出代码0
这里的“20”就是结果了。注意如果要将函数写在调用该函数的代码的下方,那么必须要有static修饰符。
我刚学了统计,那就写一个Σ试试:
public class Main {
public static void main(String[] args) {
int[] arr ={8,4,3,8};
System.out.println(sigma(5,1));
System.out.println(sigma(5,2));
System.out.println(sigma(5,3,3));
System.out.println(sigma(arr));
System.out.println(sigma(3,arr));
System.out.println(sigma(3,2,arr));
}
public static int sigma(int n,int i){
int result = 0;
for (int j = i; j <= n ; j++) {
result = result + j;
}
return result;
}
public static int sigma(int n,int i,int x){
return x*(n-i+1);
}
public static int sigma(int n,int i,int[] arr){
if(arr.length < n){
return 0;
}
int result = 0;
for (int j = i; j <= n ; j++) {
result = result + arr[j-1];
}
return result;
}
public static int sigma(int i,int[] arr){
int result = 0;
for (int j = i; j <= arr.length ; j++) {
result = result + arr[j-1];
}
return result;
}
public static int sigma(int[] arr){
int result = 0;
for (int j = 1; j <= arr.length ; j++) {
result = result + arr[j-1];
}
return result;
}
}这里我定义了五个sigma函数,他们的代码块和形参不一致,因此五者都能被成功定义,根据实参的不同调用不同的代码块,这种现象叫做方法重载(Overload,注意将它和方法重构Override区分开)。
第一个定义为1+2+3+4+...+n,第二个定义为Σni=this.ik(k∈C),后面三个是数组中的求和,主方法中调用的五个方法结果如下:

这就是一个简单的求和函数,至于Σ的另外两个性质,请自行对其进行变形。