读书人

请问一个排列组合的有关问题

发布时间: 2012-05-28 17:59:54 作者: rapoo

请教一个排列组合的问题
题目是“国际象棋中的车可以水平的或竖直的移动,一个车要从一个棋盘的一角移到对角线的另一角,有多少种最短路径?”。写题目文章的人给出两种方法,一个是动态规划,这个我看懂了。还是一个方法是“b.用高中学的初等排列组合知识求解”,即N行N列的棋盘,方法总数为C(2N-2, N-1)。
我就是不明白,用排列组合的方法是个什么思路?

[解决办法]
假设车要从左下角移动到右上角,且路径最短,则只要整个移动路径中有N-1次右移,N-1次上移即可。而总移动步数必然为2*N-2步。此时,最短路径条数即为从2N-2中选择出N-1个(作为右移或上移均可)。
[解决办法]
所谓最短路径在本问题中就是 不要没事转圈
那么只要右移n-1步,上移n-1步就可以到达目标
共2n-2步
把这2n-2步想象成2n-2个 0、1 的组合,0代表右移,1代表上移
那么这2n-2个0/1 组成的字符串有多少种呢?
这么理解应该简单些了吧
[解决办法]
看来LZ对数学中的组合还不是很理解
5楼已经说明:把这(2n-2)步想象成(n-1)个0和(n-1)个1的组合,0代表右移,1代表上移
那这(2n-2)步中的哪(n-1)步放入0,即为组合C(2n-2,n-1),剩下的(n-1)步必须放入1

探讨

引用:
把这2n-2步想象成2n-2个 0、1 的组合,0代表右移,1代表上移
那么这2n-2个0/1 组成的字符串有多少种呢?
这么理解应该简单些了吧

谢谢你的回答。问题就在这个地方,如果这个字符串每个位置都能自由的取0或1,那应该是2^(2n-2)种。但实际上有些地方可以填0或1,而有些地方只能填0或只能填1。这个是怎么和C(2n-2,n-1)联系起来的呢?说不……

读书人网 >软件架构设计

热点推荐