第九章学习
吃完午饭,尼尔和海伦娜道别,尼尔回来给威廉叔叔写了一封信,大致内容就是自己已经考上了魔语学院,不必担心云云,然后又一头扎入了《爱达语导论》。
不知不觉,又是一个深夜过去,尼尔抬头呼了一口气,在脑子里开始整理起爱达语的一些重要概念
魔语函数,简单来说,和数学里面的函数的概念是一样的,给定一个输入,便返回一个对应的输出,而每一个确定的输入,都会产生一个确定的输出,所以,函数的结构,爱达大师是这样定义的返回值函数名(参数1,参数2,参数3){函数体},这种做法,十分巧妙,也是爱达大师非凡的智慧之一,这种叫函数形式,其实是一种封装的思想,隐藏内部复杂的具体内容,只暴露简单明了的必要参数以及产物,就像是一只黑色的不透明小工厂,你送入原料,它送出产物。
循环,这是爱达大师为了应付大量的重复操作而设计的,比如爱达语导论里提起的一个魔法示列,爆裂火球,就是在同一个位置同时而又快速的创造100个小火球,你大可以在你的魔语函数里,写下一百个创造小火球,创造小火球,创造小火球,而爱达大师则会写如果(火球数目≈100){创造小火球}两行魔语搞定循环的出现,为一些长而复杂的魔法的构造创造了可能性。但是,同时也引来了一个问题,性能优化,而优化的目的,就是为了降低魔语的复杂度,复杂度分成两种,时间复杂度,和空间复杂度。
性能优化,因为运算核心的每秒加法次数,是有限的,天赋差一些的,十万次/每秒,天赋好的,百万次/每秒,但是总归还是有限的,比如,运算1到n以内的累加和,你大可以这样设计:
定义数字待加数=1;
定义数字总和=0;
如果(待加数≈=n)
{
总和+=待加数;
待加数+=1;
}
(+=的意思就是总和=总和+待加数,先运算右边,然后把得到的值赋值给左边);
这样会如何呢?它会在计算晶体里整整工作n次,然后给出一个结果,如果这个n十分巨大,比如1千万,那么天赋不好的人,可能就需要持续施法100多秒但是,也可以这样设计
总和=(1+n)n/2,简单的高斯定理,那么只需要工作多少次呢,+一次,乘一次,除一次,总共三次,那么即时是天赋不好的人,也只需要持续施法000000几秒,近乎瞬发,这就是性能优化带来的巨大鸿沟。所以魔语学院才如此看重那些聪明的人。
看完了导论,尼尔终于对魔语有了一定的了解,也终于明白自己认为的创世论是有多么的可笑,魔语说是一种语言,其实更像是一种流程图,每位魔语者用魔语——其实也就是爱达大师总结出来的魔能规则,引导着这股能量,通过组合,变幻,来达到目的,这其中,任然要遵守世间的普遍规则,你若是想要光,你必须要告诉魔能怎么产生光——通过魔语,比如通过调用爱达大师封装好的魔语函数nertorlightatpostion(0,0,0,0,0,0);尽管爱达大师已经把产生光的魔法,简化到了如此地步,但是你任然需要传入6个参数,前三个,x,y,z代表着光源关于松果体的相对坐标(后面不特别表明,都是采用这个坐标系),以及围绕着三个轴旋转的对应度数,这已经是诸多大师优化的结果,可是,这样还是十分复杂,它并没有那么直观,并不能只是凭借着想象,就可以实现想要的效果,主说,要有光,世间便洒满了光芒,但是尼尔说要有光,则只能从额头发出一道微弱的光芒罢了,还是在爱达大师以及众多前辈积累的魔能函数的基础上。这种机械的语法规则,注定了魔语的程序复杂度(指的是魔语的长度——其实更复杂但是就这么理解吧,和时间复杂度,空间复杂度,一并都是需要考虑的软件工程成本),若是这世间真有造物主,那么造物主需要写下多少规则?
只是一个太阳的起落,或许他就要这么写
if(早上六点)
{
if(有云)
{
发出二级光芒
}
elseif(下雨)
{
发出一级光芒
}
elseif(正常)
{
发出三级光芒
}
else
{
世界异常,走异常处理模式
}
}
elseif(中午十二点)
{
if(有云)
{
发出三级光芒
}
elseif(下雨)
{
发出二级光芒
}
elseif(正常)
{
发出四级光芒
}
else
{
世界异常,走异常处理模式
}
}
(咳咳,这种写法是很sb的,但是比较直观适合理解,就这么写当例子了。)
尼尔脑补了一下,每当有一个条件掺入,就会有一个新的分支产生,比如,当时间是早上6点的时候,如果是下雨,太阳应该发出多少的光芒?多云呢?正常呢?还有其他的时候呢?比如日食的时候?若是十二点钟时,太阳又更亮了一些,显然随着时间的改变,这些东西都会随着改变!这太复杂了!一个条件,组合上另一个条件,就是完完全全不一样的情况!若是再考虑上风,气温,湿度,那么又会有多少种情况?这不是累加,而是以乘法的形式分裂的!那么世间有那么多的鸟兽,主竟然都给他们一一制定了食谱,行为么?树叶上的每一片脉络,也是主都定好的么?海水的潮起潮落?鸟儿的百般鸣叫?世间的万般众生相?
这需要写下多么复杂的规则?
尼尔没有细想,其实自从魔语兴起以后,epic国的宗教势力开始式微,因为爱达大师是一位坚定的无神论者,她说“魔法只是蒙蔽无知人们的技法,世间一切,都可以用魔语解释清楚。”,所以,尼尔想起创世论,只是突然的灵光一现罢了。并非是一位多么虔诚的教徒。
尼尔排除杂念,轻呼一口气,开始展开了阿道夫老师留下的题目便条。扫向了第一个题目。
&/div>
------------------------------------------