-1

我有一个非常奇怪但非常重要的问题。因此,如果您有一些空闲时间 - 请阅读接下来的句子。

我的任务是:为路上的进出汽车生成价值(时间)。而且,从现实世界来看,我有一些变量:道路长度(2000 米),av.l。汽车的距离(6 米)、实验时间(12 小时)以及进出交通的强度(1 小时内的汽车数量)。
我需要将所有这些变量转换为机器,知道循环时间等于 10 个单位。循环中的步骤为 1。

10 units = 12 hours  
1 units = 1.2 hours (72 minutes)   
1 minutes = 0.013888..  

所以我必须将所有强度乘以 1.2?或不?我也不知道如何将道路的长度输入到程序中。我是否应该输入 2000... 请帮助我,如果可以的话。

这是生成随机数的功能

static double RandTimeIn(Random ran, int lambdaMu)
    {
        double t = 0, r = 0;
        r = ran.NextDouble();
        t = (-1) * Math.Log(r, Math.E) / lambdaMu;
        t *= 60.0 / 72.0;
        return t;
    }
    static double RandTimeOut(Random ran, int Mu) //t from [1.5; 12]
    {
        double t = 0, r = 0;
        t = 1.5 + ran.NextDouble() * (12.0 - 1.5);
        t *= 1.0/72.0; 
        return t;
    }

主池:

//step=1.0; T=10.0;
for (double i = step; i <= T; i += step)
        {...
        tin = RandTime(ran, lambdaTat3);
        Tin += tin;
        ...
        CarCount=333; //2000/6. Is it right????? Maybe 333/6
        if (CarCount3 < CarCount) //if the road is not full
                    {...
                        CarCount3++;
                        tInArrTat1.Add(Tin);
                        tout = RandTimeOut(ran, mu3);
                        Tout = Tin + tout;
                        ...}
        else {Error++;}
        }

我想知道我必须在道路长度和物体长度中输入哪些变量。

4

1 回答 1

1

没有真正的预定义方法可以将现实世界的数据转换为完美的虚拟数据。

这真的取决于你试图从数据中得到什么(更具体地说,你想要答案有多精确以及算法必须有多高效),如果你一天说话(或12 小时),我不这么认为(但这只是一个猜测)。类型double为您提供最实际应用的最佳精度(注意浮点错误,如果您不熟悉,请务必查看)。如果您需要更多(意味着非常)精确,请查看BigIntBigRational(也许)。警告,如果您不需要精度,这些很可能会成为使用的麻烦。我对您的应用程序的感觉使用这些会矫枉过正。

如果您是笼统地说,那么您所要做的就是遵守标准(意思是做您认为有必要的任何事情),那么接下来您要做的就是确保遵守您决定的任何单位(标准)使用。

(ASSUME/的意思是“或”)从数学上讲,您可以将所有长度都以米为单位,并分别遵守每单位米/车或每小时米/车的速度和频率,以保持简单。如果您想要按单位测量,只需除以 10,如果您想要按小时,则除以 12。由于您以单位/小时为单位留下所有内容,那么您所要做的就是除以速度以获得时间单位/小时分别表示汽车将在道路上停留多长时间(如果以该平均速度行驶)。

于 2014-04-08T23:35:21.737 回答