首页 > 编程语言 >素养赛Python复赛题——错排问题

素养赛Python复赛题——错排问题

时间:2024-06-16 15:54:36浏览次数:12  
标签:return Python 装错 错排 复赛 礼物

2023年北京赛区素养赛Python复赛题:
第6题,错排问题
题目描述:
圣诞节快到了,公司为每个员工都准备了礼物,每个礼物都有一个精美的盒
子。如果所有的礼物都不小心装错了盒子,求所有礼物都装错盒子共有多少种不
同情况。
输入描述:
输入一个正整数n表示公司人数,保证n≤20.
输出描述:
输出一个整数,代表有多少种情况。
样例1:
输入:
2
输出:
1

解析:
模拟:
n=1,有0种情况;
n=2,有1种情况;
n=3的时候,有两种情况:
3 1 2
2 3 1
n=4的时候,有9种情况
原定顺序是1 2 3 4
当1选择2的位置
2 1 4 3
4 1 2 3
4 1 3 2
当1选择3的位置
2 4 1 3
4 3 1 2
3 4 1 2
当1选择4的位置
2 3 4 1
3 4 2 1
4 3 2 1
动态转移方程f(n)表示n个礼物装错盒子,
第一反应感觉式子应该是如下:
第n个礼物装错盒子的选择有n-1种,f(n)=(n-1)f(n)
但是f(4)!=(4-1)
f(3)
因为f(n)和f(n-1)之间还有一些差异在于,
因为第n个礼物一旦占据了n-1箱子中的第m号,
那么m号假定放置于n号箱子,现在开始错排,
假设m号不能放于n号,情况即为f(n-1)。
但是m号可以放于n号,当m放在n号的时候,存在f(n-2)。


def f(n):
    if n == 1:
        return 0
    if n == 2:
        return 1
    return (n - 1) * (f(n - 1) + f(n - 2))


n = int(input())
print(f(n))

标签:return,Python,装错,错排,复赛,礼物
From: https://www.cnblogs.com/danlis/p/18250701

相关文章

  • python 小爬虫 DrissionPage+BeautifulSoup
    哈喽,大家好,我要开始写博客啦......
  • 【Python】数据处理:Matplotlib绘图
    Matplotlib是Python强大的数据可视化工具库,类似于MATLAB语言。Mat-lotlib提供了一整套与MATLAB相似的命令API,十分适合进行交互式制图,而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib是神经生物学家JohnD.Hunter于2007年创建的,其函数设计参考了MATLAB。......
  • python 如何生成原创文章
    生成原创文章是一个复杂的过程,因为它需要创造力、知识、语法和上下文理解。然而,Python可以用于辅助文章创作,例如通过生成文本、组合现有信息或根据特定模式进行内容创建。但要完全生成一个完全原创、有深度且逻辑连贯的文章,目前的技术还无法完全实现。不过,以下是一些Python可......
  • (必读)深入浅出Pandas:利用Python进行数据处理与分析 (李庆辉)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoPandas概述:介绍了Pandas库的基本概念、特点和优势,以及它在数据处理和分析领域的重要性。Series对象:讲解了Series对象的创建、访问、修改以及常用的统计和分析方法,如均值、中位数、标准差等。DataFrame对象:详细......
  • 算法精粹:经典计算机科学问题的 Python 实现 (David Kopec)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso书籍简介:介绍了本书的作者、出版背景以及主要目的,即帮助读者深入理解算法原理,并通过Python实现解决计算机科学中的经典问题。Python语言基础:简要介绍了Python语言的特点和优势,为后续使用Python实现算法打下基础......
  • windows系统python代码打包为exe
    目录1建立虚拟环境condavenv2打包安装pyinstaller打包1建立虚拟环境好处:打包文件小,成功率高。坏处:代码使用到的第三方库需要重新安装如果不想使用虚拟环境,直接看2打包。conda如果没有conda,直接使用venv。查看虚拟环境condaenvlist创建虚拟环境condacreate......
  • 运筹学练习Python精解——决策论
    练习1某地区有甲、乙、丙三家食品厂生产同一种食品,有一千个用户(或购货点),假定在研究期间无新用户加入也无老用户退出,只有用户的转移,已知2006年5月份有500户是甲厂的顾客;400户是乙厂的顾客;100户是丙厂的顾客。6月份,甲厂有400户原来的顾客,上月的顾客有50户转乙厂,50户......
  • (高清pdf集合)图灵程序设计丛书:大规模数据处理入门与实战(套装全10册)【图灵出品!一套囊括S
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso数据处理基础:介绍数据处理的基本概念、流程和应用场景,帮助读者建立对数据处理的整体认识。SQL语言与应用:详细讲解SQL的语法和用法,包括数据查询、数据操作和数据定义等,以及在实际应用中的最佳实践。Python数据挖......
  • MATLAB算法实战应用案例精讲-【数模应用】事后多重比较(附python、MATLAB和R语言代码实
    目录几个高频面试题目事后检验,多重比较,简单效应分析有什么区别?事后多重对比如何使用?算法原理SPSSAU疑难解惑提示‘数据质量异常’如何解决?如何做Dunnett法事后多重比较?方差分析事后多重比较提供‘字母标记法!’?关于方差分析时的效应量?字母标记法时没有输出结果?......
  • Demo | 利用机器学习构建作物模型的Python源码
    作物模型提出很早,但应用有限。看起来复杂,其实解决的是环境与表型间的关联,可参考前期推文:作物生长模型CropGrow。环境组的复杂,关键在于数据的准确性获取。对于数据分析人员来说,如果不care数据准确性,分析其实很简单的,就是经典的机器学习流程。这里提供一段伪代码仅供参考。1.导库......