yiban168 发表于 2017-8-3 23:16:03

棋子该如何摆放

本帖最后由 yiban168 于 2017-8-5 12:58 编辑


棋盘上有6颗棋子 如图,在棋盘上再放8颗棋子。达到如下条件:
1.每条横线上有3颗棋子(计4条)
2.每条竖线上有3颗棋子(计4条)
3.每个小正方形有3颗棋子(计9个)
该如何放棋子?
求详细解法。

黑白子 发表于 2017-8-5 16:26:36

tm__xk 发表于 2017-8-5 20:26:43

> s:=0:
> for a11 in{1}do
> for a12 in{0,1}do
> for a13 in{0,1}do
> for a14 in{0,1}do
> for a15 in{0,1}do
> for a16 in{0,1}do
> for a17 in{1}do
> if a11+a12+a13+a14+a15+a16+a17=3 then
> for a21 in{0,1}do
> for a22 in{0,1}do
> for a23 in{0,1}do
> for a24 in{1}do
> for a25 in{0,1}do
> for a26 in{0,1}do
> for a27 in{0,1}do
> if a21+a22+a23+a24+a25+a26+a27=3 then
> for a31 in{1}do
> for a32 in{0,1}do
> for a33 in{0,1}do
> for a34 in{0,1}do
> for a35 in{0,1}do
> for a36 in{0,1}do
> for a37 in{1}do
> if a31+a32+a33+a34+a35+a36+a37=3 then
> for a41 in{0,1}do
> for b11 in{0,1}do
> for b21 in{0,1}do
> for b31 in{0,1}do
> if a11+b11+a21+b21+a31+b31+a41=3 then
> for b12 in{0,1}do
> if a11+a12+a13+a21+a22+a23+b11+b12=3 then
> for b22 in{0,1}do
> if a21+a22+a23+a31+a32+a33+b21+b22=3 then
> for b32 in{0,1}do
> for a42 in{0,1}do
> for a43 in{0,1}do
> if a13+b12+a23+b22+a33+b32+a43=3 then
> if a31+a32+a33+a41+a42+a43+b31+b32=3 then
> for a44 in{0,1}do
> for a45 in{0,1}do
> for b13 in{1}do
> if a13+a14+a15+a23+a24+a25+b12+b13=3 then
> for b23 in{0,1}do
> if a23+a24+a25+a33+a34+a35+b22+b23=3 then
> for b33 in{0,1}do
> if a15+b13+a25+b23+a35+b33+a45=3 then
> if a33+a34+a35+a43+a44+a45+b32+b33=3 then
> for a46 in{0,1}do
> for a47 in{0,1}do
> if a41+a42+a43+a44+a45+a46+a47=3 then
> for b14 in{0,1}do
> if a15+a16+a17+a25+a26+a27+b13+b14=3 then
> for b24 in{0,1}do
> if a25+a26+a27+a35+a36+a37+b23+b24=3 then
> for b34 in{0,1}do
> if a17+b14+a27+b24+a37+b34+a47=3 then
> if a35+a36+a37+a45+a46+a47+b33+b34=3 then
> print();
> s:=s+1 fi fi od fi od fi od fi od od fi fi od fi od fi od od od fi fi od od od fi od fi od fi od od od od fi od od od od od od od fi od od od od od od od fi od od od od od od od:s;
>

  [1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1,

        0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0]


  [1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0,

        1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0]


  [1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0,

        0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0]


  [1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0,

        0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0]


                                  4


o-o-+-o
| | o |
+o+o+-o
| o | |
o-+-o-o
| | | |
o-o-o-+

o-o-+-o
| | o |
o-+o+-o
| o | |
o-+-o-o
| | | |
+oo-o-+

o-o-+-o
| | o |
o-+o+-o
| | o |
o-o-+-o
| | | |
+-o-oo+

o-o-+-o
| | o |
o-+o+o+
| | o |
o-o-+-o
| | | |
+-o-o-o

不爱pop 发表于 2017-8-5 23:10:47

tm__xk 发表于 2017-8-5 20:26 static/image/common/back.gif
> s:=0:
> for a11 in{1}do
> for a12 in{0,1}do


6666666666666666

yiban168 发表于 2017-8-6 08:12:47

tm__xk 发表于 2017-8-5 20:26
> s:=0:
> for a11 in{1}do
> for a12 in{0,1}do


答案没错。就是这解法看不懂。你运用的什么知识解答的?
  这道看上去简单的题,有没有简单的、通俗易懂的解法?比如初中知识……

yiban168 发表于 2017-8-6 08:34:08

yiban168 发表于 2017-8-6 08:12
答案没错。就是这解法看不懂。你运用的什么知识解答的?
  这道看上去简单的题,有没有简单的、通俗易懂 ...

2楼   你的答案我也能做出来,可我是试出来、试填出来的。
3楼    你的解法会让看这帖的人望而却步的。  

有没有简明的、一般人能看懂的解法。
大家参与 交流交流!

黑白子 发表于 2017-8-6 12:00:37

yiban168 发表于 2017-8-6 08:34 static/image/common/back.gif
2楼   你的答案我也能做出来,可我是试出来、试填出来的。
3楼    你的解法会让看这帖的人望而却步的。  ...

我的办法是先在16个交叉点上放满16枚棋子,然后按照题意去掉4个变成12枚棋子,使之满足前2个条件,最后就是通过试验调整增加2枚棋子,满足第3个条件。这个方法有点笨,理论上的我也不知道。

tm__xk 发表于 2017-8-6 12:10:09

yiban168 发表于 2017-8-6 08:12 static/image/common/back.gif
答案没错。就是这解法看不懂。你运用的什么知识解答的?
  这道看上去简单的题,有没有简单的、通俗易懂 ...

这种穷举题不需要什么知识.


这道看上去简单的题,有没有简单的、通俗易懂的解法?
讲真,这种思想本来就有问题.
外行人的"看上去"并没有什么意义.没有贬低的意思,但外行人总觉得"看上去简单"的东西就非得有一种谁都能看懂而又足够短的"正确做法".
就这题而言,可以吖,毫无疑问的穷举,说白了就是一个一个试,所有人都听得懂对吧,然而并没有什么卵用.
啥?穷举太慢了?那加上各种启发各种剪枝就行了(比如我得到所有答案一秒钟都不用),然而并没有什么卵用.

说白了,如果不接受"一个哪怕是'看上去很简单'的问题也有可能并没有什么值得一提的有意义的'谁都能看懂而又足够短'的'正确做法'",而又偏偏要问这种问题,那得不到满意答复也是没办法的事儿.

yiban168 发表于 2017-8-6 14:26:40

   楼上的观点我不认同。
  首先,我发的这道题要大家解答,而不是要程序 或机器解答。
  其次,这道题即使非要用程序 或机器解答,也希望大家分析了 思考了 优化了(网搜穷举学到的新名词)再用程序 或机器解答。
    就比如我的“车牌号是多少”的帖子,按 楼上的观点 用穷举法从0000——9999搜索一遍,答案就出来了。
而也有人先分析题,将“0000——9999”优化到6个数,再一个一个试(这就是穷举?!)这才是我追求的解法。
   
    这道看上去简单的题,有没有简单的、通俗易懂的解法?比如初中知识……
    虽说就要进入机器人时代,但我们应该向人+机靠近,而不是纯粹的靠程序 或机器。
   这才是我发这两道题的初衷。


   

黑白子 发表于 2017-8-6 14:49:08

穷举法也是一种思考方法,也是逻辑推理!
页: [1] 2 3
查看完整版本: 棋子该如何摆放