-
问题建模:明确定义要模拟的问题或系统 。包括确定输入数据、模拟的时间步长、模拟中的事件和实体等。
-
数据结构:设计和实现适当的数据结构来表示模拟中的对象和事件
-
事件处理:定义事件处理程序,根据模拟的具体需求,执行事件所需的操作。包括状态更新、数据收集和结果记录等。
-
调试和优化:测试和调试你的模拟算法,确保它按照预期运行。优化性能以提高模拟的效率。
其实模拟就像普通数学题 翻译题目后按题目情况分别处理 不过这个时候会出现数据维护的不得当、过程过于繁琐、基本思路错误等问题。
这里放两个例题
例题1
例如 1.在处理数据的时候 由于同数组内改变不合理很乱 因此开另一数组备用储存 同时用memcpy进行维护。(因此模拟题中 其实不仅是思想 还有处理的方式 我们希望让方式简单 可读性提高)
2.关于巧妙的处理局部到整体的思想进行模拟
由数学的思想扩展到翻转 最后只用几个简洁的处理就完成
例题2
首先一个对象多个量 当然是选择结构体啦
接着 这里也是用打表避免if else 判断,由于有闭环的指向---这里又用了% 使索引值处在一个处理周期之中
判断是否出现死循环用的是多维数组 但这里也可以类似给每个值定义上一个数位 如 cow.x*10+cow.y*100如此定义
最后是大框架定好是一些细节问题 诸如 如果定好了一个判断的变量记得在循环开始时刷新它的值 保持每次判断 注意函数无法单纯修改变量值 需要指针的使用(新手在正在铭记自己的wa。。)