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

C# smbd可以帮助我将一些值从实值转换为虚拟值吗,c#,math,valueconverter,poisson,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.

我有一个很奇怪但很重要的问题。所以,如果你有空闲的时间,读下面的句子

我的使命是:为道路上的来来往往的汽车创造价值(时间)。而且,从现实世界来看,我有一些变量:道路长度(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;T=10.0;

对于(double i=step;i,没有真正预定义的方法将真实世界的数据转换为完美的虚拟数据

这实际上取决于你试图从数据中得到什么(更具体地说,你希望得到的答案有多精确,算法必须有多高效),也取决于输入数据的大小,如果你只讲一天(或12小时),我不这么认为(但这只是一个猜测).Type
double
为大多数实际应用提供了最佳精度(注意浮点错误,如果您不熟悉,一定要查看)。如果您需要更精确(意思是非常精确),请查看
BigInt
BigRational
(可能).WARNIGN,如果您不需要精确性,则很可能会遇到麻烦。使用这些会使我对您的应用程序感觉过度

如果你是笼统地说,那么你所要做的就是坚持一个标准(意思是你觉得有必要做什么就做什么),然后你要做的下一件事就是确保你坚持你决定使用的任何单位(标准)


(假设
/
表示“或”)从数学上讲,你可以把所有长度都以米为单位,速度和频率可以分别以米/车/单位或米/车/小时为单位。如果你想用单位测量,只需除以10,如果你想用小时,只需除以12。既然你把所有东西都以单位/小时为单位,那么你就拥有了一切要做的是除以速度,分别得到车辆在道路长度内停留的时间(如果以该平均速度行驶)

你能告诉我们一些你已经尝试过的代码吗?@ AsCaltt请看。我补充说。即使你显然试图用代码解决这个问题,你也可以考虑把这个问题的数学部分张贴在Mathematica堆栈交换上。我不会认为这个网站偏离主题,但你可能会得到更多更好的答案:@洛德塔克拉谢谢你