您现在的位置是:源码地带 > 资源下载

伯努利装错信封问题-综合[难]

  • 上传时间: 2020-11-30
  • 上传用户:有山有水有
  • 资源积分:2 下载积分
  • 标      签: 编程 代码

资 源 简 介

题目描述

    某人写了n封信,同时为每一封信写1个信封,共n个信封。如果把所有的信都装错了信封,问共有多少种?(这是组合数学中有名的错位问题。著名数学家伯努利(Bernoulli)曾最先考虑此题。后来,欧拉对此题产生了兴趣,称此题是“组合理论的一个妙题”,独立地解出了此题)

    

    试编程求出完全装错情形的所有方式及其总量s。例如,输入n=3,即有3封信需要装入信封,完全装错的一种方式可以表示为312,表示第1封信装入第3个信封,第2封信装入第1个信封,第3封信装入第2个信封。对于n=3,完全装错的方式共有2种,分别是312231.

输入

输入一个正整数n(2<=n<=6)

输出

输出完全装错情形的所有方式以及装错方式的总量s (每行输出5种方式,一行中的相邻两种方式之间用1个空格隔开。装错方式输出时,从小到大排列,见输出样例)


样例输入

4

样例输出

2143 2341 2413 3142 3412 3421 4123 4312 4321 s=9

相 关 资 源