c++ - 在 C++ 中修改模拟时间

标签 c++ time simulation event-driven

我正在编写一个模拟事件的程序,我想知道如何加快模拟时间,假设现实世界中的 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/

相关文章:

c++ - 如何编写一个 C++ 例程来检查我按下了键盘上的哪个键,以便我可以单独处理每个按键?

c# - 如何从委托(delegate)获取 C# 函数中的地址?

c++ - 代码完成 2ed,组合和委托(delegate)

javascript - 如何将倒计时的目标时间设置为设定时区?

java - 在 Java 中记录任务完成时间的智能解决方案是什么?

c++ - 买卖迷你模拟器

c++ - 如何使用 EC2 实例作为 API 服务器?目前使用 C++ lambda

javascript - 用于从自然语言字符串中提取时间的正则表达式

python - 使用不同的 mac 地址作为源模拟 1K Web 客户端

php - 一场比赛的足球模拟