在本周的学习中,我首先与好友一起完成了n阶行列式的计算程序,这真的是一件十分令人振奋且充满成就感的事,尽管我的编程水平很一般,但通过团队合作,在我的逻辑基础上,好友还是顺利完成这项任务,有这样一个优秀的好友也确实是我的幸事。顺带一提,院长常说的我校兄弟院校西电,正是吾之好友就读之处,说起来也是十分巧合。
下附计算程序供观赏:

#include<bits/stdc++.h>
using namespace std;
int oj(int n)
{
	if(n%2!=0) return 1;
	else return 0;
}
int jc(int n)
{
	int ans1=1;
	for(int i=1;i<=n;i++)
	{
		ans1=ans1*i;
	}
	return ans1;
}
int main()
{
	int n,ans=0,s=0;
	cin>>n;
	int A=jc(n);
	int b[A][n];
	int c[A+10];
	int nx[A+10];
	for(int i=0;i<n;i++)
	{
        c[i]=i+1;
    }
    do{
        for(int i=0;i<n;i++){
            b[s][i]=c[i];
        }
        s++;
    }while(next_permutation(c,c+n));
	for(int c=0;c<A;c++)
	{
		int ansn=0;
		for(int i=0;i<n;i++)
		{
			for(int j=n-1;j>=i;j--)
			{
				if(b[c][i]>b[c][j]) ansn++;
			}
		}
		nx[c]=ansn;
	}
	int a[n+10][n+10];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i=0;i<A;i++)
	{
		int ansc=1;
		for(int j=1;j<=n;j++)
		{
			ansc=ansc*a[j][b[i][j-1]];
		}
		if(oj(nx[i])==1){
			ans=ans-ansc;
		}
		else ans=ans+ansc;
	}
	cout<<ans<<endl;
	return 0;
}

这是十分优美的一段代码,说不上简单,但能完成任何阶数的行列式计算这样复杂的运算,仅仅用这些代码,足以展现计算机简洁之美。

除实践学习外,在书本中,这周我们进入了硬件的学习。
首先是第四章《门与电路》。在这一章中,我了解到使计算机完成复杂运算的最基本单位——门,它的组成与原理。门的分类不多,只有六种,但就是利用这六种结构,人们搭建起了复杂的组合电路,乃至集成芯片,这样的组合的作用就不仅仅是原始的门结构那样简单了,人类自从掌握了将宇宙万物数据化的工具的那一刻起,文明的发展目标就不再是繁衍生息那么简单了,而是星辰大海的远方。在阅读学习的过程中,我曾不止一次高呼“这真的是人类能想出的东西吗?”,是的,在接触计科之前,电脑对我来说就只是一件工具,但学的越多,越是知道其中的价值与可怕。小小的晶体管,就能构成现代计算机的一切,仿佛返璞归真一般,这也越来越让我有自信,我们正走在一条正确的计算机研究道路上,尽管面临摩尔定律的不适用,计科一度陷入恐慌,但我们又在量子计算上找到了出路,正如”柳暗花明又一村“,在前人构建的基础框架下,计算机研究永远驾着火箭一般,高速发展。我想,这些才是《计算机科学概论》这本书想传达给入门者的重要信息。
其次是第五章《计算部件》。感觉我像吃老本一般,凭借自己的装机经验与对电脑的了解,这一章的内容更是一读就通。现代计算机的结构已是相当简化,CPU、显卡、内存、硬盘、电源,仅此而已,绝大多数曾经单独成件的部分已随着光刻技术的发展而全部放入CPU中,因此,电脑也越来越像人的大脑,结构简单,运算内容复杂,这也再次印证我上段的说法,在计算机研究的道路上,我们越来越自信,越来越放开手脚尽情施展本领。说会本章,在以前耳熟能详的词语中,我通过阅读清楚了其中的原理,这对以后装机无疑是很大的帮助(bushi),总之将实践与知识融会贯通就是最好的学习方法,结合实际进行学习也帮助我理解记忆,乃至形成长期记忆,计算机的学习采取这种办法当然更是事半功倍。
回顾两周,全景图中的两部分已经学完,接下来将进入的软件学习正是成为优秀程序员(bushi)的重中之重,我也迫不及待地想要着手学习,以便以后更好地配合好友完成程序设计。