一道matlab编程题,这是一道随机游走模型,10人互相间两两赌博,问多少次后只剩一人.本人用产生均匀分布随机数模拟二人赌博过程,b为10人手中钱的数量,当b(i,1)为0时,将 i 移到序列后面,前面非

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 13:25:56

一道matlab编程题,这是一道随机游走模型,10人互相间两两赌博,问多少次后只剩一人.本人用产生均匀分布随机数模拟二人赌博过程,b为10人手中钱的数量,当b(i,1)为0时,将 i 移到序列后面,前面非
一道matlab编程题,
这是一道随机游走模型,10人互相间两两赌博,问多少次后只剩一人.本人用产生均匀分布随机数模拟二人赌博过程,b为10人手中钱的数量,当b(i,1)为0时,将 i 移到序列后面,前面非零量继续赌博.但是我的结果不是b只剩第一项为100,而是前几项都非零,
s=0
k=10
b=ones(10,1)
for m=1:1:2
    for n=2:1:10
      if b(n,1)>0
        for i=1:1:k-1
            if b(i,1)<1
                for j=i:1:k-1
                    b(j,1)=b(j+1,1)
                end
            end
        end
        k=nnz(b)
        if mod(k,2)>0
            g=k-2
        else mod(k,2)<=0
            g=k-1
        end
        for i=1:2:g
            a(i)=rand(1);
            if a(i)>=0.5
                b(i,1)=b(i,1)+1
                b(i+1,1)=b(i+1,1)-1
            else a(i)<0.5
                b(

一道matlab编程题,这是一道随机游走模型,10人互相间两两赌博,问多少次后只剩一人.本人用产生均匀分布随机数模拟二人赌博过程,b为10人手中钱的数量,当b(i,1)为0时,将 i 移到序列后面,前面非
你好歹把你的代码以文本的形式发一份,让别人可以复制调试啊,难道让别人再敲一遍,无语
纯属建议,楼主勿喷
这个问题最终得到的矩阵b是一定的,即为
b=[10 0 0 0,...]
因为总钱数就10块钱,变得只是次数,即s.
楼主你把问题搞得那么复杂干什么,我帮你另外编了一个,你的程序太绕了,恕我真心看不懂
clc;clear;
s=0;
k=10;
b=ones(10,1);
while k>1
if mod(k,2)>0
g=k-2;
else
g=k-1;
end
for i=1:2:g
a=rand(1);
if a>=0.5
b(i,1)=b(i,1)+1;
b(i+1,1)=b(i+1,1)-1;
else
b(i,1)=b(i,1)-1;
b(i+1,1)=b(i+1,1)+1;
end
s=s+1;
end
b
k=nnz(b);
b=b(b>0);
b(10)=0;
b
end
s