这周四的一道线代题

/*
你问我:

“n阶实二次型的规范型有多少种可能形式?”

#include
int main(){
    int n,r,p;//阶数,秩,惯性指数
    int x=0;//形式数
    scanf("%d",&n);
    for(r=0;r<=n;r++)
        for(p=0;p<=r;p++)
        x++;
printf("%d\n",x);
return 0;
}

我把上面的代码告诉计算机,让它编译运行,然后只要你给它一个具体的n,那么它自然就能给你一个片头问题的解。
不过你作为我的线性代数老师,恐怕不会满意,虽然这解完全合乎你给我的各种定义而且毫无一点绕弯之处。因为你希望我给出一个包含最抽象的n的式子作为解,就像你的问题那样。
好吧,既然有了这段程序,我当然能一下子反应过来你的问题原来如此简单——不过是从1加到n+1而已,套用神奇的高斯给出的公式(好吧,我承认包含n的那堆式子挺有用的),就得到了(n+1)*(n+2)/2这个令你满意的解。
但是,你居然让我去写“更为严谨”的推导过程。这也不难,毕竟数学归纳法是很好套用的。
至此,你终于露出了微笑。(我知道你心里觉得我是个“小傻子”)

写这些东西的意义是:
一、编程值得学习,它是一种新的解释世界解决问题的方式。就像小学的应用题若只能用数字的四则运算来解,那么稍难一点的就够碾压一大波人了,但有了方程这个工具,大家就会感觉应用题什么的也就蒙蒙小孩儿。只要能叙述清楚,那么理论上应该就可以把问题交给计算机,躺着等解了。
二、教学或许不应该从抽象的理论开始,学校或许应该尽早从“游乐场”模式转为“荒野求生”模式;而既然“书到用时方恨少”,那不如直接从实际生活出发,边用边读,边想边学。

(也许大家觉得我思路混乱,不知所云,不过实际上都是懒病害的,以后打了鸡血再补)+(所有东西都是注释,你们都看不见)
*/

你可能感兴趣的:(这周四的一道线代题)