趣味数模问题1-棋子颜色问题(利用matlab进行模拟)

棋子颜色问题

在任意拿出黑白两种颜色的棋子共n个,随机排成一个圆圈。然后在两颗颜色相同的棋子中间放一颗黑色棋子,在两颗颜色不同的棋子中间放一颗白色棋子,放完后撤掉原来所放的棋子,再重复以上的过程,问这样重复进行下去各棋子的颜色会怎样变化呢?
在这里插入图片描述

  • 分析与求解:
    在两颗同色棋子中放一颗黑色棋子,两颗不同色的棋子中间放
    一颗白色棋子。采用什么符号表示白色和黑河呢?
    因为-1×(-1)=1,1×1=1,故可将黑色棋子用1表示
    因为1×(-1)= -1,白色棋子用-1表示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 结论:当棋子数为2n时,至多经过2n次操作,就可以全部变为黑子,当棋子数不为2n时则一般不能全变为黑子.

  • matlab模拟:

%   1--黑子   -1--白子
n=128;     %棋子个数
times=128;    %操作次数
x=zeros(1,n);   %操作前的状态 %利用zeros函数产生1行n列个0
y=zeros(1,n);   %操作后的状态

for i=1:n
    k=rand(1);  %利用rand函数产生一个01之间的随机数
    if(k>0.5) x(i)=1;   %对每个棋子赋予初始状态的颜色
    else x(i)=-1;
    end
end
disp('初始状态:') 
x
for i=1:times
    i   %显示操作次数
    for k=1:n-1
        y(k)=x(k)*x(k+1);
    end
    y(n)=x(1)*x(n);
    y   %显示每次操作的结果
    x=y;	%每次的结果作为初值赋给下次
end


  • 结果
    在这里插入图片描述
    该代码将棋子个数和操作次数均设置为128,可以看到最终全变为了黑子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值