如何获得可能的4位数字的数量,并限制可能的数字和位数

时间:2013-06-14 00:49:49

标签: math combinatorics

我试图解决一个编程问题而陷入困境,因为我无法理解其中一个例子,如下所示:

我们猜测一个四位数,猜测是“1234”。给出这个猜测的提示是,

  1. 每个数字都不在正确的位置(根据正确答案)。也就是说,1不在位置1,2不在位置2,3不在位置3而4不在位置4.

  2. 4位正确答案包含数字1,2,3,4。

  3. 该示例给出了基于上述约束的四位数字的可能组合的数量为9。 {2143,2341,2413,3142,3412,3421,4123,4312,4321}

    我试图以这种方式解决问题:

    方法1:

    (组合的总数#为4!) - ((在位置1中以1开头的组合+在位置2中与2组合的组合+在位置3中与3组合+在位置4中与4组合))但是'无' t得到上述公式的第二部分的解决方案..因为在第1位以1开头的组合将是3! - (在第2位以2开头的组合)..等等我无法继续编写组合数量。)

    approach2:

    (1可以在3个位置)*(2可以在3或2个位置,基于放置1的位置)*(3可以在1或2个位置,基于2的位置)*(1个位置为4) - 再次不清楚如何找到2,3,4的位置数。

    请帮助我了解如何解决此问题

2 个答案:

答案 0 :(得分:2)

所以我们的提示是:n1n2n3n4,完全使用1234全部。

1)有三个地方我们可以放入1,让我们留下_1n3n4,_n21n4和_n2n31。

2)对于这三个地方中的每一个,有一个数字可以在三个不同的地方进行 - 我们可以将它放在另一个被拒绝的空间(3 * 2)或第一个空间(3 * 1)。 / p>

3a)如果我们把它放在另一个被拒绝的空间中,那么最后一对数字只有一个方向(6 * 1)。

3b)如果我们将它放在自由空间中,最后一对数字只有一个方向(3 * 1)

所以有9种可能性:

_1__
2143
4123
3142

__1_
3412
4312
2413

___1
4321
3421
2341

想到它的第二种方式是这样的:

有4个! = 24种可能的排列。

6个位置在位置1中有1个(3个!排列其余3个的方式)

4个位置在位置2中有2个但在位置1中没有1个(3个!排列其余3个的方法,减去1个在1中的两个案例)

3个位置在位置3中有3个,但在位置2中没有1个或者在位置2中没有1个(3个!排列其余3个的方式,减去1个12的情况,减去1个剩余1个的情况,减去剩下的一例x2)

2个位置在位置4中有4个但是在2个OR 3中没有1个1个OR 2(3个方式排列它们,在开始时减去2个1,从剩余减法2减去2个)中间)

24-15 = 9

答案 1 :(得分:0)

设置哪一个并设置了多少个位置并不重要。每次设置位置时,您的选择都会减1。

现在,如果你问如何编程,那么我们应该首先选择一种语言。