题目描述:

n个数要在原来的位置实现错位排列,不能有数字n放在第n个位置上,n可以从一开始

解题代码:

import java.math.BigInteger;
import java.util.*;public class Test1 {public static void main(String[] args){Scanner input = new Scanner(System.in);int n = input.nextInt();if (n==1){System.out.println(0);return;}BigInteger[] D = new BigInteger[n+1];D[1] = new BigInteger(0+"");D[2] = new BigInteger(1+"");if (n>=3){for (int i = 3; i <= n; i++) {D[i] = new BigInteger(i-1+"").multiply(D[i-1].add(D[i-2]));}}System.out.println(D[n]);}}

解题思路:

因为这是自己平常做的一题,开始做的时候感觉是动态规划的问题,但是自己是在想不明白这个动态规划的方程,借鉴了很多博主的文章,知道了这个叫做错位排列,代码进行了实现,这里需要用到大数,最后也通过了测试。

D(n)=(n−1)(D(n−1)+D(n−2))

借鉴文章:

彻底搞懂错排问题_骑鱼的喵喵的博客-CSDN博客_错排问题

错位排列(java实现)相关推荐

  1. java错位_【LeetCode(Java) - 634】寻找数组的错位排列

    [LeetCode(Java) - 634]寻找数组的错位排列 [LeetCode(Java) - 634]寻找数组的错位排列 文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 2.解 ...

  2. 广东工业大学2017新生赛(决赛)-网络同步赛 1007 白色相簿的季节【全错位排列】

    白色相簿的季节 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submi ...

  3. 《LeetCode力扣练习》第31题 下一个排列 Java

    <LeetCode力扣练习>第31题 下一个排列 Java 一.资源 题目: 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列. 例如,arr = [1,2,3] ,以下这些都可 ...

  4. bzoj 4563 [Haoi2016]放棋子 错位排列+高精度

    题面 题目传送门 解法 可以直接将所有1全部放置在主对角线上,这样并不会影响答案 然后就是一个比较简单的错位排列了 需要高精度 代码 #include <bits/stdc++.h> us ...

  5. NYOJ 912 领帽子(全错位排列)

    领帽子 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 有n个人在参加晚会时寄存了自己的帽子.可是保管人忘记放寄存号,当每个人领取帽子时,他只能随机选择一顶帽子交给寄存人 ...

  6. 全错位排列 配对概率问题

    全错位排列    先看下面例子: 例1    5个人站成一排,其中甲不站第一位,乙不站第二位,共有多少种不同的站法. 这个问题在高中很多参考书上都有,有几种解法,其中一解法是用排除法: 先考虑5个有的 ...

  7. LeetCode-Python-634. 寻找数组的错位排列(数学 + 错排公式)

    在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列. 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大,你只需要 ...

  8. 错位排列——杨子曰数学

    错位排列--杨子曰数学 超链接:数学合集 首先,什么是错位排列? 就是你有1号物品,2号物品,3号物品--,它们都有自己对应的箱子:1号箱,2号箱,3号箱-- 现在你把物品放到箱子里,结果一个物品也没 ...

  9. 错位排列超详解(组合数学)

    错位排列 全错位排列最经典的问题是装错信封问题. 我们把信封问题转换一下: 对于1−n1-n1−n 共n个数字组成的序列中,每个数字仅出现一次,求每个数字跟位置完全不对应的总方案数. 对于第一个位置上 ...

最新文章

  1. 数据库分析函数 MySQL_MySql数据库索引分析explain函数的使用
  2. 【Android UI】图片 + 文字展示by SpannableStringBuilder
  3. math.hypot java_Java Math.hypot() 方法
  4. chrome扩展推荐 - 原生chrome浏览器小窗口看视频 - PIP Video
  5. linux /home recovering journal,linux报错:/dev/sdb2:recovering journal
  6. JVM运行时数据区和各个区域的作用
  7. Android之6.0 权限申请封装
  8. centos8 linux部署node项目
  9. php长按图片保存mui,Vue+mui实现图片的本地缓存
  10. 汉王拉开人脸识别产业化大幕 市场应用前景广阔
  11. 我对象说陪我过七夕,象说没时间,我一怒给女神做了一个某音上很火的3D旋转相册
  12. 长痘痘部位和对应的毛病
  13. PyQt5学习--基本窗口控件--QButton类控件
  14. Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
  15. c# 利用t4模板,自动生成Model类
  16. 数字图像处理02:直方图均衡化imhist函数的python实现
  17. 基于Python的Climate Indices库计算SPEI(标准化降水蒸散发指数)02—站点SPEI计算
  18. 蜂巢输入法android,讯飞输入法“蜂巢II”输入模型 内核提速便捷实用
  19. java的create vm_JNI_CreateJavaVM(Runtime::Create())
  20. 网站怎么样对接微信公众号,看以下操作

热门文章

  1. Xubuntu22.04之自动调节亮度护眼redshift(一百七十四)
  2. 致敬行业标杆|5家企业获得高工智能汽车2021年度行业贡献奖
  3. 阿里云Redis 资源购买流程
  4. python sobel滤波,数学之路-python计算实战(22)-机器视觉-sobel非线性滤波
  5. 百名高管立下“军令状”,这场会议释放强烈信号
  6. h5ai界面修改_CentOS搭建h5ai文件目录列表
  7. IPy——Python中ip地址处理模块
  8. mysql 人名用什么类型_数据库中 姓名一般给什么类型?
  9. c++ 可变数组使用
  10. python中列表list和元组tuple