我正在编写一个模拟事件的程序,我想知道如何加快模拟时间,假设现实世界中的 1 小时等于程序中的 1 个月。
谢谢
这个程序实际上类似于一个餐厅模拟,你真的不知道顾客什么时候来。假设我们每隔一小时选择一个随机数 (2-10) 的客户
最佳答案
这取决于它现在如何获得时间。
例如,如果它调用 Linux 系统 time()
,只需将其替换为您自己的函数(如 mytime)即可返回更快的时间。也许 mytime 调用时间并将返回的时间乘以任何有意义的因素。 1 小时 = 1 个月是 720 次。应考虑在程序开始时处理原点:
time_t t0;
main ()
{
t0 = time(NULL); // at program initialization
....
for (;;)
{
time_t sim_time = mytime (NULL);
// yada yada yada
...
}
}
time_t mytime (void *)
{
return 720 * (time (NULL) - t0); // account for time since program started
// and magnify by 720, so one hour is one month
}
关于c++ - 在 C++ 中修改模拟时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593737/