题目

【见附件,来源水群】

方法1

每个时间段有十九种状态且每个状态的概率是之前时间的状态的函数,直觉上要用动态规划

#include<iostream>
#include<chrono>

using namespace std;
const int tmax = 6000, lenmax = 18;
double pot[tmax + 1][lenmax + 1];             //储存所有状态

int main()
{
    auto RUNTIME1 = chrono::system_clock::now();

    pot[0][12] = 1;
    for (int i = 1; i <= tmax; ++i) {       //从初始态逐步计算到目标时间
        for (int j = 1; j < lenmax; ++j) {    //每个状态通过题目给出状态转移的方法进行计算
            double p = pot[i - 1][j];
            if (j < 9) {
                pot[i][j - 1] += p * 0.4;
                pot[i][j + 1] += p * 0.6;
            }
            else if (j == 9) {
                pot[i][j - 1] += p * 0.5;
                pot[i][j + 1] += p * 0.5;
            }
            else {
                pot[i][j - 1] += p * 0.6;
                pot[i][j + 1] += p * 0.4;
            }
        }
    }

    const int term = tmax / 60;
    double ans1 = 0;
    for (int i = 1; i <= term; ++i) {
        ans1 = 0;
        int T = i * 60;
        for (int j = 1; j < lenmax; ++j) {
            ans1 += pot[T][j];
        }
        cout << i << "min后持续的概率: " << ans1 << endl;
    }

    double ans2[tmax + 1] = { 0 };
    for (int j = 1; j <= term; ++j) {
        int I = j * 60;
        for (int i = 1 + (j - 1) * 60; i <= I; ++i) {
            ans2[j] += (pot[i][0] + pot[i][lenmax]) * i;
        }
    }
    for (int i = 1; i <= term; ++i) {
        cout << "第" << i << "分钟内的期望子式: " << ans2[i] << endl;
    }

    double ans3 = 0;
    for (int i = 1; i <= term; ++i) {
        ans3 += ans2[i];
    }
    cout << "当前计算期望值: " << ans3 << ", " << "误差: " << ans2[term] / ans3 * 100 << '%' << endl;

    cout << term << "min概率: " << ans1 << endl;

    double ans4 = ans1;
    for (int i = 1; i <= tmax; ++i) {
        ans4 += pot[i][0] + pot[i][lenmax];
    }
    cout << "总概率: " << ans4 << endl;

    auto RUNTIME2 = chrono::system_clock::now();
    cout << "用时" << (RUNTIME2 - RUNTIME1).count() << "us" << endl;
}

通过对100min内期望的计算可以猜测期望子式和收敛于某个值,该值即为数学期望。表达式有无数个子式。

耗时约0.6s,在8min时约70ms,应该不会超时,不作进一步优化。

结果

屏幕截图 2025-03-20 193444.png

屏幕截图 2025-03-20 193455.png

方法2

用矩阵描述状态转移(状态转移矩阵)。

M=zeros(19,19)
for i=2:9
    M(i-1,i)=0.4
    M(i+1,i)=0.6
end
M([9,11],10)=0.5
for i=11:19
    M(i-1,i)=0.6
    M(i+1,i)=0.4
end

初始状态为:

S=zeros(19,1)
S(13)=1

第n秒各状态的概率:

M^n*S

要求停止的数学期望,即状态1和19的和乘以时间n:

Select=zeros(1,19)
Select([1,19])=1
Select*M^n*S

求极限

由于矩阵的指数不能为sym类型,先对角化:

[V,D]=eig(M)%MV=VD,M=VDV^-1,M^n=VD.^nV^-1

求极限:

syms n
f=Select*V*D.^n*V^-1*S
limit(f,n,inf)%结果为0

对该数列求极限为0,可能收敛。

求和的极限:

symsum(f,n,inf)

值和方法1完全不同。检查发现在10s内的结果完全相同,随时间延长到60s时已出现在千分位的不同,到480s时已经完全不同。

误差原因

可能由于对角化时对数位的圆整,或在初始状态后发生了显示0的元只是很小的浮点型的情况。

VMware的三种网络模式 — NAT模式、桥接模式、仅主机模式 发表于2021-02-02更新于2022-06-05字数统计1.2k阅读时长6分 我们在配置vmware时,有三种模式,分别是NAT模式、桥接模式、仅主机模式,现在让我们来看看这三种模式吧。

  1. NAT模式 2025-03-15T16:37:21.png

在NAT网络中,会用到VMware Network AdepterVMnet8虚拟网卡,主机上的VMware Network AdepterVMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。虚拟网卡只是作为主机与虚拟机通信的接口,并不是依靠虚拟网卡VMware Network AdepterVMnet8来联网的,它仍然依靠于宿主机器所在的网络来访问公网。NAT模式下虚拟机的TCP/IP配置信息是由VMnet8虚拟网卡的DHCPserver提供的,无法进行手工改动。该模式下,虚拟机可以和宿主机可以互相访问,但不可访问宿主机所在网络的其它计算机。采用NAT模式最大的优势是将虚拟系统接入互联网非常简单,只要求宿主机器能访问互联网即可,不需要配置IP地址、子网掩码、网关等,但DNS地址还是要根据实际情况填的。

下面是简化后的NAT拓扑图:

2025-03-15T16:37:31.png

上面可能不太好理解,先来打个比方。我们将局域网看成是一个有若干居民居住的小区,这个小区对外面的世界来说有一个或者几个能被识别的地址。路由器就是该小区的收发室,也是小区与外界联络的唯一通道;而局域网和外网之间的数据就看成是各种各样的快递包裹,小区居民与外界的联络均是靠这些进出的包裹进行的。

小区里每个居民都有小区内部地址(局域网IP),但这个地址对外并不公开。外来的包裹只能送到收发室这个统一地址(路由器的公网IP),由收发室来决定哪个包裹送到哪个居民家去;而小区内所有居民发出去的包裹不能直接发到外面,只能送到收发室,由收发室贴上小区统一地址(公网IP)以后再往外发送。所以对外界来说,收发到小区居民的包裹是统一收自或发送到小区收发室的,并不知道具体来自/发送给哪个小区居民。路由器的这种工作模式就叫做NAT模式。

  1. 桥接模式 2025-03-15T16:37:40.png

桥接模式是通过虚拟网桥将主机上的网卡与虚拟交换机 VMnet0连接在一起,虚拟机上的虚拟网卡(并不是 VMware Network Adapter VMnet1和 VMware Network Adapter VMnet8)都连接在虚拟交换机Vmnet0上,所以桥接模式的虚拟机必须与主机在同一网段且子网掩码,网关与DNS也要与主机网卡一致。所以虚拟机与宿主机和物理机处于同一个局域网中,可以和本局域网中的其它真实主机进行通讯。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,并且还要和宿主机器处于同一网段中。

简化后的桥接模式拓扑图:

2025-03-15T16:37:47.png

同样的,我们仍然以小区的例子来解释这个工作模式。

桥接模式的小区呢和前面的NAT模式小区有所不同,桥接模式小区每个居民都拥有一个对外界公开的地址,居民们收取和发送包裹都直接使用自己的地址(公网IP),而不是收发室的地址(路由器的公网IP)。这样一来,外界就能看到他们收发到小区的包裹具体是来自/给到哪个居民了,在这种模式下,收发室(路由器)并不需要对进出包裹(数据包)进行公私地址的转换,只是提供了一个收发的通道。

  1. 仅主机模式 仅主机模式,是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络,使用的虚拟网卡是VMnet1。仅主机模式的虚拟网卡仅对主机可见,并在虚拟机和主机系统之间提供网络连接。在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。

2025-03-15T16:37:54.png

------ 本文结束,感谢您的阅读 ------ 本文作者: wxler 本文链接: https://wxler.github.io/2021/02/02/221724/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

https://wxler.github.io/2021/02/02/221724/