魔方吧·中文魔方俱乐部

标题: 棋子该如何摆放 [打印本页]

作者: yiban168    时间: 2017-8-3 23:16:03     标题: 棋子该如何摆放

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

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


附件: 010.jpg (2017-8-3 23:15:45, 217.23 KB) / 下载次数 69
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjYyNDU3fDU4YjhkYjc0fDE3MTQ5MjM5OTJ8MHww

附件: 001.jpg (2017-8-3 23:03:53, 198.24 KB) / 下载次数 75
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjYyNDU2fDIzZmJmYjMxfDE3MTQ5MjM5OTJ8MHww
作者: 黑白子    时间: 2017-8-5 16:26:36

QQ截图20170805162209.png

附件: QQ截图20170805162209.png (2017-8-5 16:26:23, 9.92 KB) / 下载次数 55
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjYyNDc4fGM4N2Q0YWQ1fDE3MTQ5MjM5OTJ8MHww
作者: 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([a11,a12,a13,a14,a15,a16,a17,a21,a22,a23,a24,a25,a26,a27,a31,a32,a33,a34,a35,a36,a37,a41,a42,a43,a44,a45,a46,a47,b11,b12,b13,b14,b21,b22,b23,b24,b31,b32,b33,b34]);
> 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
> 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
2楼   你的答案我也能做出来,可我是试出来、试填出来的。
3楼    你的解法会让看这帖的人望而却步的。  ...


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

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

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


这道看上去简单的题,有没有简单的、通俗易懂的解法?

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

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

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


   
作者: 黑白子    时间: 2017-8-6 14:49:08

穷举法也是一种思考方法,也是逻辑推理!
作者: yiban168    时间: 2017-8-6 14:59:57

本帖最后由 yiban168 于 2017-8-6 15:07 编辑

我的意思是先优化再说,好比 “ 就比如我的“车牌号是多少”的帖子,按 楼上的观点 用穷举法从0000——9999搜索一遍,答案就出来了。
而也有人先分析题,将“0000——9999”优化到6个数,再一个一个试”

要穷举,也要先优化再穷举。

这才是解题的意义
作者: tm__xk    时间: 2017-8-6 15:09:43

yiban168 发表于 2017-8-6 14:26
楼上的观点我不认同。
  首先,我发的这道题要大家解答,而不是要程序 或机器解答。
  其次,这道题即 ...

你举的栗子并没有看到"优化"的可能性,毕竟你并没说明到底还有什么别的线索.
即便你举了一个确实有优化余地的栗子,和我的说法还是没有矛盾,因为那样的话和原题在我看来就未必有可比性.

至于原题,如果你要在纯粹的穷举上进行"优化",可以吖,看我的程序呗.
看得出里头是一堆for和if没啥规律的交织在一起对吧.这就是剪枝.这就是优化.效果拔群.
如果仅仅是一堆for后边跟着一堆if那么同样程序可以说会有2^40的复杂度,根本不是现在秒出答案的效果.
这就是有用的优化,并且对于这题而言已经足够了.
然而必须注意到,这步调整是手动的.

如果稍微改下题,比如某条线改成2个,某个方形改成4个,初态某个棋子换下位置,那么就得重新调整.
换个栗子,假如原题穷举时手动决定先试哪里(换句话说就是启发式搜索),那么题目更改时同样要重新考虑.
如果仅仅给出这种调整后的做法那么其实根本没价值,价值应该在于如何进行这种调整.
换句话说,如何对酱紫的指数级的搜索算法加入各种剪枝启发等.

在我看来,就这个题酱紫的,我一句"dlx算法"就已经绰绰有余了.
也有人先分析题,将“0000——9999”优化到6个数,再一个一个试(这就是穷举?!)这才是我追求的解法。
你当然可以这样做,但我只能说对于这种题而言,这种每看到一个题就分析一次,我把原题改一个数你就得重新分析,恰恰是我认为没价值的.
当然,我不是说一般地这么分析问题没价值,而是说对这个题这种题而言这种做法并没有值得一提的意义.

不然我直接用dlx给出的尝试顺序写成手动尝试的格式,你就能接受了?

但我们应该向人+机靠近,而不是纯粹的靠程序 或机器。
所以你觉得我的程序不是人写的?
人+机可以,但人负责什么机负责什么应该懂得判断,该人做的事情别硬退给机,该机做的事情人也别乱抢.

这才是我发这两道题的初衷。
我不反对你的初衷.我承认你的初衷是好的.我只能说对于你的初衷而言,这个题/这种题并不是一个适当的栗子.

这道看上去简单的题,有没有简单的、通俗易懂的解法?比如初中知识……
所以说这种问法并没有什么意义.我说穷举你知道我的意思对吧.如果不懂我也可以直接说"先试试这里有棋子会怎样然后再试试这里没有棋子会怎样"之类的,说白了就是把"穷举"说成大白话.
这样的做法简单吗?当然简单.有高深知识吗?当然没有.通俗易懂吗?表述得好的话那当然就通俗易懂了.
但,你觉得有意义吗?我反正觉得这不是你想要的.

首先,我发的这道题要大家解答,而不是要程序 或机器解答。
不是随便问个什么问题随便给些限制都还能得到答案的.如果你的问题和你的限制本身就不搭,那么你就不能怪人没有给出符合你愿望的答案.
作者: tm__xk    时间: 2017-8-6 15:11:08

yiban168 发表于 2017-8-6 14:26
楼上的观点我不认同。
  首先,我发的这道题要大家解答,而不是要程序 或机器解答。
  其次,这道题即 ...

也希望大家分析了 思考了 优化了(网搜穷举学到的新名词)再用程序 或机器解答。
你连"穷举"都得搜索,连"优化"都是"新学到",你是凭什么说写程序的人没有"分析了 思考了 优化了"的?
作者: tm__xk    时间: 2017-8-6 15:12:49

黑白子 发表于 2017-8-6 14:49
穷举法也是一种思考方法,也是逻辑推理!

在我看来"穷举法"并不是什么值得提的"方法"或者"逻辑推理".
作者: yiban168    时间: 2017-8-6 16:23:24

tm__xk 发表于 2017-8-6 15:09
你举的栗子并没有看到"优化"的可能性,毕竟你并没说明到底还有什么别的线索.
即便你举了一个确实有优化余 ...

我发的这道题我也分析了很久,一直想找到简明的解法。 时间跨度达两年之久。
   下面说说我“分析了 思考了 优化了"的一些线索
解法如下:  6+8=14颗  计全盘应有14颗棋子。图1
  横线:3颗X4条=12颗  图2
  竖线:3颗X4条=12颗  图3
合计24颗棋子。图4

?为何横线+竖线是24颗,而上面却说全盘为14颗?
那是因为横线竖线交叉之交叉点(16个交叉点)重复了一遍。
图4—图1=10颗
24—14=10颗   即为所以交叉点(16个交叉点)共计有10颗棋子。
全盘有14颗  14—10=4颗   即余下的4颗不在交叉点上。
在哪儿呢
横线:3颗X4条=12颗   14—12=2颗  有2颗在竖线上(4条横线已包括16个交叉点)
原题上已有1颗在竖线上(非交叉点上)  2—1=1颗   即余1颗在竖线上。
竖线:3颗X4条=12颗   14—12=2颗  有2颗在横线上(4条竖线已包括16个交叉点)
原题上已有1颗在横线上(非交叉点上)  2—1=1颗   即余1颗在横线上。
综上所述 得  全盘计有14颗棋子。
其中10颗在交叉点处(有16个交叉点)
余4颗   2颗在横线上(非交叉点处)
           2颗在横线上(非交叉点处) 棋
  
  这是我所分析的。再往后分析就有点乱了,大家看看咋样。

附件: [棋] 004_看图王(1).jpg (2017-8-6 16:20:33, 239.81 KB) / 下载次数 67
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjYyNDgyfGQzZTkwYWQxfDE3MTQ5MjM5OTJ8MHww
作者: 黑白子    时间: 2017-8-6 18:32:55

tm__xk 发表于 2017-8-6 15:12
在我看来"穷举法"并不是什么值得提的"方法"或者"逻辑推理".

不经过推理是不可能穷举的!否则有可能重复或者遗漏。
作者: tm__xk    时间: 2017-8-6 21:03:30

yiban168 发表于 2017-8-6 16:23
我发的这道题我也分析了很久,一直想找到简明的解法。 时间跨度达两年之久。
   下面说说我“分析了 思考 ...

像你这种如果要拿来说的话,我前边给出的方程组随便消点元都能拿来说事儿了..
作者: tm__xk    时间: 2017-8-6 21:04:08

黑白子 发表于 2017-8-6 18:32
不经过推理是不可能穷举的!否则有可能重复或者遗漏。

我们说的不是一回事儿.
作者: yiban168    时间: 2017-8-6 22:50:06

tm__xk 发表于 2017-8-6 21:03
像你这种如果要拿来说的话,我前边给出的方程组随便消点元都能拿来说事儿了..

我这是根据题意分析得来的一些信息,是通俗易懂的解法的一部分。
而你的“给出的方程组随便消点元" 很多人看不懂呀。
   要知道这道题原来是刊登在《意林》上的一道智力题。既然是智力题,那就应有简明的解法或者通俗易懂的解法。

再打个比方,一道小学数学题你却要用方程或微积分才能解出来,这道题就不算解出来。
只有用小学知识解出来才行,即使用小学知识解答很繁琐那也是解出来了。
这就是我说的简明的解法或者说是通俗易懂的解法,即使解法很复杂。
作者: tm__xk    时间: 2017-8-6 22:59:09

yiban168 发表于 2017-8-6 22:50
我这是根据题意分析得来的一些信息,是通俗易懂的解法的一部分。
而你的“给出的方程组随便消点元" 很多 ...
要知道这道题原来是刊登在《意林》上的一道智力题。既然是智力题,那就应有简明的解法或者通俗易懂的解法。
就这出处对讲究数学的人而言就根本没任何说服力.
"智力题"?网上被秒删的日经问题多了去了,你要不要去看看那些"问题"都有些什么鬼头衔?
一道小学数学题你却要用方程或微积分才能解出来
举个栗子,答案里有无法化简掉的反三角函数的"小学题"见过吗?
作者: tm__xk    时间: 2017-8-6 23:00:29

yiban168 发表于 2017-8-6 22:50
我这是根据题意分析得来的一些信息,是通俗易懂的解法的一部分。
而你的“给出的方程组随便消点元" 很多 ...
我这是根据题意分析得来的一些信息,是通俗易懂的解法的一部分。
而你的“给出的方程组随便消点元" 很多人看不懂呀。
你信不信我可以把程序的整个搜索过程写成一个完全"通俗易懂"的过程?
作者: yiban168    时间: 2017-8-6 23:24:05

tm__xk 发表于 2017-8-6 23:00
你信不信我可以把程序的整个搜索过程写成一个完全"通俗易懂"的过程?

我再重申一遍,这里指通俗易懂的解法。 而你的只是答案没错而已。
换句话说我需要用初中甚至小学的知识解这道题。或者说是让只有初中甚至小学知识的人能看懂解题过程。
这里要的不是靠程序去解答,即使这程序是人来操作。要的是靠纯粹人的分析得到的解法。

作者: tm__xk    时间: 2017-8-6 23:55:04

yiban168 发表于 2017-8-6 23:24
我再重申一遍,这里指通俗易懂的解法。 而你的只是答案没错而已。
换句话说我需要用初中甚至小学的知识解 ...

总共只有40个位置有可能有一个棋子.
I.如果第1个位置有棋子:
i.如果第2个位置有棋子:
  (i).如果第3个位置有棋子:
...
  (ii).如果第3个位置没有棋子:
...
ii.如果第2个位置没有棋子:
  (i).如果第3个位置有棋子:
...
  (ii).如果第3个位置没有棋子:
...
II.如果第1个位置没有棋子:
i.如果第2个位置有棋子:
  (i).如果第3个位置有棋子:
...
  (ii).如果第3个位置没有棋子:
...
ii.如果第2个位置没有棋子:
  (i).如果第3个位置有棋子:
...
  (ii).如果第3个位置没有棋子:
...



"通俗易懂"吗?是的.
有什么小学中学大学才有的知识吗?没有.
可以纯粹靠人来分析吗?可以.
有意义吗?我反正觉得没有.

而你的只是答案没错而已。
我知道你理想中的好过程.然而那种过程对我来说才恰恰是"用在这个题上没错而已".
作者: yiban168    时间: 2017-8-7 09:33:28

本帖最后由 yiban168 于 2017-8-7 09:34 编辑
tm__xk 发表于 2017-8-6 23:55
总共只有40个位置有可能有一个棋子.
I.如果第1个位置有棋子:
i.如果第2个位置有棋子:


你这算是通俗易懂的解法。
那这题还有其它的通俗易懂的解法吗?
比如类似我在15楼写的一部分解法
作者: tm__xk    时间: 2017-8-7 19:33:45

yiban168 发表于 2017-8-7 09:33
你这算是通俗易懂的解法。
那这题还有其它的通俗易懂的解法吗?
比如类似我在15楼写的一部分解法

这题不过是线性方程组求解罢了,什么高斯消元法之类的就是标准做法.

要"通俗易懂"?如果是个人都能看懂就/才叫"通俗易懂",那"通俗易懂"的东西很多都没什么价值.




欢迎光临 魔方吧·中文魔方俱乐部 (http://www.mf8-china.com/) Powered by Discuz! X2