数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
楼主: liuye216

求助:棋子颜色变化 大家一定帮帮忙呀!

[复制链接]
发表于 2004-8-5 11:27:36 | 显示全部楼层
<>我觉得26楼的兄弟说的没错,</P><>大侠们,能不能用不同的软件做一下这个题。</P><>如Matlab   ,mathemetica,Maple 之类。</P>[em04][em04][em04][em04]
发表于 2004-8-5 23:45:12 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>dormouse_buaa</I>在2004-6-20 11:51:42的发言:</B>

<>八个棋子 a1 a2 ..... a8,ai=1 表示黑色,ai=-1表示白色
第1轮的颜色是 (a1 * a2)(a2*a3)(a3*a4)(a4*a5)(a5*a6)(a6*a7)(a7*a8)(a8*a1)
第2轮的颜色是(a1*a2*a2*a3)(a2*a3*a3*a4)(a3*a4*a4*a5)(a4*a5*a5*a6)(a5*a6*a6*a7)(a7*a8*a8*a1)(a8*a1*a1*a2)
化简一下就是(a1*a3)(a2*a4)(a3*a5)(a4*a6)(a5*a7)(a6*a8)(a7*a1)(a8*a2)
第3轮的颜色是:(a1*a2*a3*a4)(a2*a3*a4*a5)(a3*a4*a5*a6)(a4*a5*a6*a7)(a5*a6*a7*a8)(a6*a7*a8*a1)(a7*a8*a1*a2)
4轮的颜色是:(a1*a5)(a2*a6)(a3*a7)(a4*a8)(a5*a1)(a6*a2)(a7*a3)(a8*a4)
5轮的颜色是:(a1*a2*a5*a6)(a2*a3*a6*a7)(a3*a4*a7*a8)(a4*a5*a8*a1)....
6轮的颜色是:(a1*a3*a5*a7)(a2*a4*a6*a8)(a3*a5*a7*a1)(a4*a6*a8*a2)....
7轮的颜色是:(a1*....*a8)(a1*....*a8)(a1*....*a8)(a1*....*a8)(a1*....*a8)....
8轮的颜色 就是全黑色了
</P></DIV>
<>完美的结论</P>
发表于 2004-8-29 18:20:43 | 显示全部楼层
别找原题,行不?
发表于 2004-8-29 21:26:11 | 显示全部楼层

一点意见

<>用+1-1的*法可以将结论推广,对N个双色棋子,进行上面操作,在N步之内一定变成全为黑棋情况。</P>
<>但是有没有考虑过N个M色棋子按照某种相似方式插入的情况,一定很有趣!</P>
发表于 2004-9-6 18:18:20 | 显示全部楼层
<>我认为最终的结果是,8个棋子的颜色都是黑色的。</P><>因为题设中说到,在两个相同的棋子之间放一个黑子,在不相同的两个棋子之间放一个白子。假如原先的棋子都是白色的(用“1”来表示),在任意两个棋子之间应该放一个黑子(用“0”来表示的便全部都是黑子了。);最)经过第一轮后变为全白子(11111111),再经过一轮后变为全黑子(00000000)后拿出所有的白子后剩下再在任意两个黑子之间放一个黑子,然后拿出先前所有的黑子后,剩下的仍然都是黑子。(也就是说,无论全白或是全黑,最后得到的都是黑子)。假如是黑白相间的话(01010101。再假如是(11001100)的话经过第一轮后变为(01010101),第二轮为(11111111),第三轮变为(00000000)。再次假如是(11101110)的话,经过第一轮后,变为(00110011),就变成了和再假如的第一轮一样了,最后又是全黑子。</P><>很多种情况,都会经历(01010101),(11111111),(00000000)。也就是任何情况,最终得到的都是黑子。这里就不再一一穷举了。</P><P>以上用到《数学逻辑电路》中的异域功能。即:0<FONT face="Times New Roman">⊕0=0    0⊕1=1   1⊕0=1   1⊕1=0</FONT></P>
发表于 2004-9-8 06:02:33 | 显示全部楼层
<DIV class=quote><B>以下是引用<I>daike1983kk</I>在2004-8-29 13:26:11的发言:</B>

<>用+1-1的*法可以将结论推广,对N个双色棋子,进行上面操作,在N步之内一定变成全为黑棋情况。</P>
<>但是有没有考虑过N个M色棋子按照某种相似方式插入的情况,一定很有趣!</P></DIV>
<>当 N=偶数 才一定成立的
<P>当 N=奇数 时不一定变成全为黑棋,比如 白黑白 -&gt;黑白白 -&gt; 循环
<P>我用奇偶分析得出来的。</P>
发表于 2004-9-13 20:46:44 | 显示全部楼层
<>全是黑子</P><>全是白子和黑白相间的情况不稳定。</P>
发表于 2004-9-15 01:23:08 | 显示全部楼层
引入0-1整形变量解决,挺厉害
发表于 2004-9-15 04:50:21 | 显示全部楼层

我的matlab程序

<>前面的同志说的不错,必须得是偶数个旗子才能一定有最终的结果,如果是奇数个的话,可能回进入死循环.上边有不少人用c编程实现,我用matlab随便编了一个一般的函数(很简单的程序),函数中参数可以输入任意多个由-1和1组成的向量,其中-1表示白子,黑子表示1.然后可以借助此函数编程序对任意偶数个旗子的情况进行遍历,证明了结果全是黑子.</P>
<>下面是求N个旗子的一般函数:</P>
<>function y=colour(varargin)
%调用格式:colour(a),a是一个一维的由-1,1组成的向量,个数必须为偶数,其中-1表示白子,1表示黑子。
n=length(varargin);
if mod(n,2)~=0
    input('出错,旗子个数必须得是偶数');
else
for i=1:n
    a(i)=varargin{i};
end
b=ones(1,n);
while ~all(b==a)
  b=a;
  for i=1:n-1
      a(i)=b(i)*b(i+1);
  end
  a(n)=b(n)*b(1);
end
y=a;
end</P>
<P>以上程序存为colour.m后在matlab工作窗口中输入:</P>
<P>&gt;&gt; colour(1,-1,1,1,-1,1,1,-1)</P>
<P>ans =</P>
<P>     1     1     1     1     1     1     1     1
表明结果全为黑子.</P>
<P>如果旗子个数为奇数,则出错,如:</P>
<P>&gt;&gt; colour(1,-1,1)
出错,旗子个数必须得是偶数</P>
发表于 2004-9-16 17:53:12 | 显示全部楼层
<>其实并不是所有偶数都有最终的结果</P><>例如:六个棋子时(看下一楼)</P><>也是死循环(补:当棋子黑白相间时可全为黑色)</P><P>当偶数符合2的n次方时(n&gt;=2),棋子颜色变化都有最终结果(全为黑)</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 18:45 , Processed in 0.054996 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表