理解:首先上面改给出的那个公式还是很好理解的,有点不太明白的就是最后面那个1是个定值吗?

每一 E(x,y)看成一个未知量,它只有可能和上下左右四个E(dx,dy)未知量有关系,且满足上述方程,如果移动不是等概率的,只需要将1/4改成相应的数值就可以了,当然这个等值的未知量不仅仅是5个,未知量是矩阵的个数个(NM),其他没有关系的未知量的系数已经初始化为0了,因为有NM个未知量,就得有N*M个方程,为了消除分数,代码中未知量相应的做了变换改成了下式:

-E(x-1,y)-E(x+1,y)-E(x,y-1)-E(x,y+1)+4E(x,y)==4

当然,因为移动概率不是固定的,所以代码中用move记录,接下来就是用高斯消元求解了
#pragma GCC optimize(2)
#include<bits/stdc++.h>using namespace std;typedef long long ll;
#define pi acos(-1.0)
#define e exp(1.0)
const ll maxn=50,maxm=50;
const double EPS=1e-10;
char grid[maxn][maxm+1];//存图
bool can_goal[maxn][maxm];
ll N,M;
ll dir[4][2]={0,1,1,0,-1,0,0,-1};
typedef vector<double> vec;
typedef vector<vec> mat;
mat A(maxn*maxm,vec(maxn*maxm,0));//,系数矩阵,初始化这是个sao cao zuo
vec B(maxn*maxm);//方程等式右边的值
void DFS(ll x,ll y)//判断哪些位置能到达终点
{can_goal[x][y]=1;ll i,j,X,Y;for(i=0;i<4;i++){X=x+dir[i][0];Y=y+dir[i][1];if(X>=0&&X<N&&Y>=0&&Y<M&&!can_goal[X][Y]&&grid[X][Y]!='#')DFS(X,Y);}return ;
}
bool Find_line(ll k)//在大于等于k的行数中找到第k个未知数的系数不为0的一行,并将其交换到第k行
{ll i=k;while(k<N*M&&abs(A[k][i])<EPS)k++;if(k==N*M)return 0;for(ll j=0;j<N*M;j++)swap(A[k][j],A[i][j]);return 1;
}
void built_matrix()
{ll x,y;for(x=0;x<N;x++){for(y=0;y<M;y++){  //终点或者其他不能到达终点的位置 if((x==N-1&&y==M-1)||!can_goal[x][y]){A[x*M+y][x*M+y]=1;continue;}ll move=0;for(ll k=0;k<4;k++){ll X,Y;X=x+dir[k][0];Y=y+dir[k][1];if(X>=0&&X<N&&Y>=0&&Y<M&&grid[X][Y]=='.'){A[x*M+y][X*N+Y]=-1;move++;} }A[x*M+y][x*M+y]=move;B[x*M+y]=move;}}return ;
}
void gauss_jordan()
{built_matrix();ll i,j,k;for(i=0;i<N*M;i++){if(!Find_line(i)){puts("No Solution");return ;}for(j=i+1;j<N*M;j++){double mul=A[j][i]/A[i][i];A[j][i]=0;for(k=i+1;k<N*M;k++)A[j][k]-=(A[i][k]*mul);B[j]-=(B[i]*mul);}}for(i=N*M-1;i>=0;i--){if(!A[i][i]){puts("No Solution");return ;}B[i]/=A[i][i];for(j=i-1;j>=0;j--)B[j]-=(B[i]*A[j][i]);}printf("%.8lf\n",B[0]);return ;
}
int main()
{//  freopen(".../.txt","w",stdout);ios::sync_with_stdio(false);cin>>N>>M;ll i,j;for(i=0;i<N;i++){for(j=0;j<M;j++)cin>>grid[i][j];}memset(can_goal,0,sizeof(can_goal));DFS(N-1,M-1);gauss_jordan();return 0;
}

Random walk(期望值和方差)相关推荐

  1. Random Walk 随机漫步理论 Random Walk Theory 随即漫步应用

    目录 Random walk 点阵随机游走 一维随机游走 马尔可夫链 更高的纬度 与维纳过程的关系 高斯随机游走 异常扩散 不同站点的数量 应用 变种 在图表上 自我互动随机游走 远程相关步行 偏向随 ...

  2. 重尾分布,长尾分布,肥尾分布 和 随机游走 (Heavy-tailed, Long-tailed, Fat-tailed distribution and Random walk)

    一看题目就知道本文内容较多,但因为放在一起讨论才能互相比较理解异同.本文主要讨论重尾分布,长尾分布,肥尾分布三者的联系,同时顺带讨论了一下 Random walk 中的 Lévy flight 和 B ...

  3. 《Nature-Inspired Metaheuristic Algorithms》—— Random Walk

    1 什么是随机游走random walk? 随机游走是由一系列随机步骤组成的随机过程. 随机游走SN=每个连续随机步骤Xi的和. 也就是说在N次游走时的位置SN是由第一次.第二次-第N-1次游走之后再 ...

  4. 随机游走(Random Walk)模型

    Random Walk Model 1 模型及性质简介 给定一随机变量u(i)={1,−1}u(i)={\{1, -1\}}u(i)={1,−1} 随机游走模型可表示为随时间ttt变化的函数y(t)= ...

  5. 重启随机游走算法(RWR:Random Walk with Restart)

    重启随机游走算法(RWR:Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决 ...

  6. GNN笔记: random walk

    1 随机游走定义 所谓随机游走(random walk),就是在网络上不断重复地随机选择游走路径,最终形成一条贯穿网络的路径. 从一个顶点出发,然后按照一定的概率随机移动到一个邻居节点,并将该节点作为 ...

  7. 2021“MINIEYE杯”中国大学生算法设计超级联赛(5)Random Walk 2(推式子+矩阵逆+矩阵乘)

    Random Walk 2 [2.4]Gauss-Jordan消元法求矩阵的逆 高斯消元求矩阵的逆,伴随单位矩阵一起消元即可. [A,I]→[I,A−1][\text A,\text I]\to [\ ...

  8. 随机游走 Random Walk

    随机游走(英语:Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的.[1][2]它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程 ...

  9. HDU 4487 Maximum Random Walk

    Maximum Random Walk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

最新文章

  1. 洛谷.4234.最小差值生成树(LCT)
  2. java api 调用 kettle 执行etl任务
  3. java string字节数组_java(基本类型或者String字符串)与(字节数组)相互转换
  4. 小师妹学JVM之:JIT中的LogCompilation
  5. 心理学博士vs计算机博士,零基础跨专业考心理学博士,可以给我一些建议吗?...
  6. 搞生物的速看!有了它,30分钟可以把一天的工作都给干完!
  7. java 数据转成xml_java转换CSV文件生成xml格式数据
  8. 教你编写高质量的 Java 代码!
  9. Android Studio 2.3.1导出jar文件不能生成release解决办法
  10. 16 数值的整数次方 (第3章 高质量的代码-代码的完整性)
  11. java div和table_详细为你讲解,DIV+CSS布局和TABLE布局的优缺点(经典)
  12. Multisim14仿真基本模拟电路之 10.5电压比较器及其应用电路的仿真实验与分析
  13. smart bi 学习
  14. mes系统多少钱,企业要不要上mes系统?
  15. 数字图像处理实验八图像的傅里叶变换
  16. nginx 配置网站通用的伪静态代码
  17. Three layer Neural Networks
  18. 第三方登录-[微博、微信、qq] java实现
  19. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
  20. html中的src路径怎么写,HTML src路径的用法

热门文章

  1. Django models新增属性后 迁移报错 KeyError ,--fake解决
  2. c语言中assert函数,C++ 中assert断言函数的基本用法
  3. html5桌面录制,前端使用html5、ffmpeg实现录屏摄像等功能
  4. Error Writing E2PROM at AutoInc Address 0x0报错原因
  5. Linux环境下Apache配置多个虚拟主机
  6. 基因数据处理38之dbSnpId到omimId的映射表
  7. 常熟理工学院计算机科学与技术嵌入式培养,严卫 - 常熟理工学院 - 计算机科学与工程学院...
  8. 火狐浏览器怎么禁止更新提示 新版火狐浏览器禁止更新提示窗口的方法
  9. telnet登录到远程计算机系统,Telnet远程登录如何工作?基本命令如何用?
  10. AJAX的完整介绍-江阳宏海