smbd可以帮助我将一些值从真实转换为虚拟

时间:2014-04-08 17:36:02

标签: c# math valueconverter poisson

对我来说,我有一个非常奇怪但非常重要的问题。所以如果你有一些免费的会议记录 - 请阅读下一句话。

我的任务是:为路上的入站和出站车辆生成值(时间)。而且,从现实世界来看,我有一些变量:道路长度(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++;}
        }

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

1 个答案:

答案 0 :(得分:1)

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

这实际上取决于你想要从数据中获得什么(更具体地说,你想要答案的准确程度以及算法的效率),如果你说话的话,输入的大小也是如此一天(或12小时),我不会这么认为(但这只是猜测)。类型double为大多数实际应用提供了最佳精度(请注意浮点错误,如果您不熟悉,请务必查看)。如果您需要更多(意思是非常精确),请查看BigIntBigRational(也许)。 WARNIGN,如果您不需要精确度,这些很可能会成为一种麻烦。使用这些对我的应用程序感觉有点过分。

如果你一般说话,那么你要做的就是坚持一个标准(意味着做你认为必要的事情),接下来要做的就是确保你坚持任何单位(标准)你决定使用。

(ASSUME /表示&#34;或&#34;)从数学角度讲,您可以将所有长度保持为米,并分别遵守每单位米/车或米/车每小时的速度和频率保持简单。如果你想要按单位测量,只需要除以10,如果你想按小时除以12除以12。因为你按单位/小时计算了所有内容,那么你所要做的就是除以速度来得到时间单位/小时分别表示汽车在道路长度上停留的时间(如果以该平均速度行驶)。