用Visual C++ 6.0模拟仿真生态系统
2008-11-14 19:34:40 来源:WEB开发网核心提示: [图三:繁殖到第300代][图四:繁殖到第450代][图五:繁殖到第1000代][图六:繁殖到第4500代]如果初始状态为随机分布,那么在无外力干扰的情况下,用Visual C++ 6.0模拟仿真生态系统(4),该细胞群也是大致稳定的,可以持续繁衍下去(图七),在基因的遗传与优选方面有着实
[图三:繁殖到第300代]
[图四:繁殖到第450代]
[图五:繁殖到第1000代]
[图六:繁殖到第4500代]
如果初始状态为随机分布,那么在无外力干扰的情况下,该细胞群也是大致稳定的,可以持续繁衍下去(图七)。
本程序的目的在于介绍人工生命的仿真模拟的基本技术,对所模拟对象的生存规则设计的较为简略,这样就不能很好的在计算机上逼真再现所模拟对象的真实活动,我们可以通过建立一个存储有某类生物主要基因和外部因素的类来更好的对其进行仿真,例如年龄、能量、健康指数、个体大小、智力等主要因素就足以很好的描述一般的仿真对象。具体的实现则可以用下面的结构来做近似的描述:
struct Animal
{
……
int Age; //描述生物的年龄
int Energy; //描述生物的能量
int Healthy; //描述生物的健康指数
int Size; //描述生物的个体大小
int Intelligence; //描述生物的智力发育
bool IsLife; //描述生物是否死亡
……
};
如果需要对程序作进一步的扩展,可以引入基因的遗传和突变的概念,使下一代同上一代具有大部分相似的基因和少量突变的基因,从而使生命在一代代的繁殖中得到进化,并能更好的适应周围的环境。
小结
我们可以用类似的方式用简洁巧妙的程序来对各种生物的生活进行仿真,用计算机来描述特定生物的生活习性,可以在较短的时间内模拟完实际生物需要几千年乃至上万年的进化历程,在基因的遗传与优选方面有着实际的意义。本程序在Windows 2000 Professional + SP4下,由Microsoft Visual C++ 6.0编译通过。
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››Visual C++优化对大型数据集合的并发访问
- ››模拟Windows开机动态色带条
- ››VISUAL C++中的OCX控件的使用方法
- ››Visual C++实现视频图像处理技术
更多精彩
赞助商链接