Algorithm 使用1、2、3、4、5查找5位数,其中前k位数不仅仅是o到k

Algorithm 使用1、2、3、4、5查找5位数,其中前k位数不仅仅是o到k,algorithm,Algorithm,问题是用1、2、3、4和5作为数字来寻找可能的5位数,其中前k个数字(k是自然数,k 1(4)24(很明显,k=1{1}={1}) 2 1=3!=6(很明显,k=2 { 2, 1 }={ 1, 2 },我们也不会考虑1,2),因为它已经包含在1)中。 2 3 1=2!=二, 3 1 2=2!=二, 3 2 1=2!=二, 2 3 4 1=1 2 4 1 3=1 2 4 3 1=1 3 1 4 2=1 3 2 4 1=1 3 4 2 1=1 3.4.1.2=1 4----=3!x 1=6(其中破折

问题是用1、2、3、4和5作为数字来寻找可能的5位数,其中前k个数字(k是自然数,k<5)的集合不等于1到k之间的数字集合

澄清-集合元素的顺序无关紧要。{1,2}与{2,1}相同,即{1,2}={2,1}

例如,在54213是一个正确的数字,它将被计算为

  • k=1,我们得到{5},和{5}!={1}
  • k=2,{5,4}={1,2}
  • k=3,{5,4,2}={1,2,3}
  • k=4,{5,4,2,1}={1,2,3,4}
此外,数字13245是无效的,因为对于k=1,{1}={1}

奖金问题,查找具有相同标准和数字1、2、3、4、5和6的6位数可能的数字


编辑-我很抱歉没有用我的方法跟进此问题。我已在下面添加了我的解决方案。

给定数字可能包含的5位数=5!=120

让我们考虑不形成的数字。< /P>

  • 1(4)24(很明显,k=1{1}={1})
  • 2 1=3!=6(很明显,k=2 { 2, 1 }={ 1, 2 },我们也不会考虑1,2),因为它已经包含在1)
  • 中。
  • 2 3 1=2!=二,
  • 3 1 2=2!=二,
  • 3 2 1=2!=二,
  • 2 3 4 1=1
  • 2 4 1 3=1
  • 2 4 3 1=1
  • 3 1 4 2=1
  • 3 2 4 1=1
  • 3 4 2 1=1
  • 3.4.1.2=1
  • 4----=3!x 1=6(其中破折号可由1、2、3填充)
  • 总数=49

    但事实并非如此。现在,所需的案例=120-49=71

    对于6,我使用了递归,很明显在5的情况下,序列(对于未形成的数字)是

    1 x 4!+1 x 3!+3 x 2!+13 x 1!(其中1、1、3和13分别是1位、2位、3位和4位给定条件的解)

    {即,对于仅使用1的1位数字,其中k<1,k是自然数,可能的位数为-1(1)。对于仅使用1的2位数字,其中k<2,可能的位数为-1(21)。对于3,则为321、231、312,依此类推)

    因此,对于6,序列变为

    1 x 5!+1 x 4!+3 x 3!+13 x 2!+71(其中71是5位给定条件的解)

    =259


    也就是说,对于6,答案=6!-259=461

    我真希望作业部分的作业问题能有一个明确的理由,而不是增加额外的问题,如果你表现出你的努力会更好。这是分区信息学奥林匹克竞赛中提出的一个问题-只是语言不同。我尝试过它和我的解决方案是71。我只是不确定,并希望看到其他人的尝试。我将学习一些新的,也许更快的方法!:)@GordonLinoff:你可以添加一个;)添加了我的问题解决方案。非常感谢大家的输入!:)@GordonLinoff