少儿编程思维每日一练(20191205)

网友投稿 2019-12-04 11:14

[20191205] 在书架上放有编号为1 ,2 ,...,n的n本书。现将n本书全部取下然后再放回去,当放回去时要求每本书都不能放在原来的位置上。例如:n = 3时:

              原来位置为:1  2  3

              放回去时只能为:3  1  2  或  2  3  1  这两种

问题:求当n = 5时满足以上条件的放法共有多少种?(不用列出每种放法)

(本题目选自第8届全国青少年信息学奥林匹克联赛(NOIP)初赛)

(先自己算一下)

答案分界线

https://cdn.china-scratch.com/timg/191206/1114113457-0.jpg

答案思路:

我们之前已经有一个和这个题目非常类似的题目,如果忘记了,可以点击这里查看:

少儿编程思维每日一练(20191116)

重复一下:对于n个数,每个数都不在原来位置数的计算需要运用到筛法公式,该公式如下:

f(n)=n!(1/2!-1/3!+1/4!+..+(-1)^n/n!)

该公式在n不大于5的情况结果分别为:

* f(2)=1

* f(3)=2

* f(4)=9

* f(5)=44

因此,这里的答案为:44种。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com