除了知道它说了什么,还要知道它没说的。
分布类核心函数
op_dist_load (dist_name, dist_arg0, dist_arg1) / Distribution*
op_dist_outcome (dist_ptr) / double
lmz:
- 我们要产生一个随机分布函数的一个值,需要的参数无非就是分布名,参数。
- 那么有一个问题,为什么要分成两个函数?我们可以设计一个函数,参数和第一个函数一样,直接就可以产生我们所需要的随机值。这么做不会显得冗余吗?个人觉得有两个原因:
- 分成两个函数后调用起来不用每次都输入一大串参数,比较简洁
- 更重要的是,对于同一个分布来讲,为了产生多个随机数值,每一次的产生过程中会有很多重复的部分。将重复的部分单独拆成一个函数,这样表面上增加了冗余,实际上则是更有效率。
事件类核心函数
仿真核心维持了一个事件列表。
事件列表维持了事件的一些信息。比如:
- 事件的仿真时间
- 事件的下一个事件
- 事件的源模块
- 事件的目的模块
- 事件的类型
- 事件号
每一个事件的信息是存放在一块内存