信号检测MATLAB
、国王囚犯问题 算法: 囚犯共有100人,把他们分为3类:第一天被抽到的人,称为解放者,状态值为2;出去过的人,状态值为1;没有出去过的人,状态值为0。使用矩阵pri来存储他们的状态,不同状态的人具有不同的任务,假设灯的初始值为state=0,即为关。对于解放者,由于他第一天被抽到,他需要将灯的状态state改为1,同时将计数器count(初值为0,表示100人中去过院子的人数)加1,如果以后他再被抽中,他的任务是观察灯的状态,如果state=0,就把state改为1,同时将count加1,如果state=1则什么都不改变。对于出去过的人,被抽到之后什么也不做。对于没有出去过的人,他需要观察灯的状态,如果state=1,就把state改为0,同时将自己的状态调 整为1,表示已经去过院子,如果state=0,则什么也不做。每抽到一个人计数器num(统计所用的天数)就加1,如果count=100则表示100人都已经到过院子了,此时任务完成,num的值即为所用的天数。重复仿真10000次,对num取平均值z,就可以得出平均需要多少天了。 整为1,表示已经去过院子,如果state=0,则什么也不做。每抽到一个人计数器num(统计所用的天数)就加1,如果count=100则表示100人都已经到过院子了,此时任务完成,num的值即为所用的天数。重复仿真10000次,对num取平均值z,就可以得出平均需要多少天了。
用户评论