关于“三门”问题的概率

最新编辑2:

又有网友提出,造成这个结果是因为 随机数Random.Next的方法永远拿不到上限值,也就是说 r.Next(0,2) 永远拿不到2。去source上查了一下确实如此,微软这个方法有点坑。

PS:特别感谢 御坂14491 号的提出,以及MatPopLeaSpo、言心亡、日后再说好不好、最萌的伊卡洛斯等朋友的在线对狙。

最后,公布最新的源码和跑的结果,先看结果:

改变选择有66465此中奖,不改变选择有33535此中奖,总数100000,
主持人选对了次数0
阅读更多

Flexsim最短路径算法50行代码搞定Floyd(弗洛伊德)

此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert W.Floyd这个牛人是朵奇葩,他原本在芝加哥大学读的文学,但是因为当时美国经济不太景气,找工作比较困难,无奈之下到西屋电气公司当了一名计算机操作员,在IBM650机房值夜班,并由此开始了他的计算机生涯。此外他还和J.W.J. Williams(威廉姆斯)于1964年共同发明了著名的堆排序算法HEAPSORT。堆排序算法我们将在第七章学习。Robert W.Floyd在1978年获得了图灵奖。——引用自【Angel Kitty】博客

本代码同时还参考了【火星十一郎】的博客上写了一篇关于最短路径算法的介绍。废话不多说,按照惯例直接上代码:

阅读更多

Flexsim学习笔记

建模小技巧:

// 获得场景中高亮的对象
treenode Perspective = node("?Perspective",views());
treenode selobj = selectedobject(Perspective);
if(objectexists(selobj))
{
   // 内容
}

// 打开用户命令和用户事件工具的脚本:
createview("VIEW:/standardviews/tools/UserCommands",
			"MAIN:/project/model/Tools/precision",
			"MAIN:/project/model/Tools/precision");
createview("VIEW:/standardviews/tools/UserEvents",
			"MAIN:/project/model/Tools/precision",
			"MAIN:/project/model/Tools/precision");

// 访问群组对象(例如设置flag属性)
string groupname = "Sources";
int members = groupnummembers(groupname);
for(int i=1;i<=members;i++)
{
    treenode o = groupmember(groupname,i);
    switch_selected(o,true);
}

// 获得AGV 控制点第一个资源对象的引用
treenode resource = ownerobject(tonode(get(first(node("/Location",connections(cp))))));


// 判断一个对象的类型(例如 AGV路径是不是CurvedPath)
treenode obj = rank(model(),10);
if(stringsearch(getname(first(classes(obj))),"CurvedPath",0)>0)
{
    // 内容
}

// AGV 刷新路径的空间更改
treenode path01 = ...;
function_s(path01 ,"finalizeSpatialChanges");
阅读更多

Flexsim实现Dijkstra最短路径算法

第一次接触最短路径算法是2012年去沈阳做项目,当时使用网络节点模拟AGV地图。学习最短路径算法,可以帮助建模工程师全部掌握中间经过的所有节点信息,这是实现复杂任务逻辑或交通管制逻辑的基础。

感谢【火星十一郎】博客上的一篇关于最短路径算法的介绍,科普和入门的大家可以前往查阅。受他恩惠,现在我重新写一篇使用flexsim的实现方法。

阅读更多