年会抽奖【编程题】

                                                                                             

                                   📑打牌 : da pai ge的个人主页
                                   🌤️个人专栏 : da pai ge的博客专栏
                                   ☁️宝剑锋从磨砺出,梅花香自苦寒来

目录

☁️题目解析

☁️解题思路

☁️示例代码


☁️题目解析

错排问题举例:
A B C…… 表示写着n位友人名字的信封, a b c…… 表示n份相应的写好的信纸。把错装的总数为记作
D(n) 。假设把 a错装进B里了 ,包含着这个错误的一切错装法分两类:
b 装入A里,这时每种错装的其余部分都与 A B a b 无关,应有 D(n 2) 种错装法。
b装入 A B 之外的一个信封,这时的装信工作实际是把(除 a 之外的) n 1 份信纸b、c …… 装入(除 B 以外
的) n 1 个信封 A C…… ,显然这时装错的方法有 D(n 1) 种。
总之在a装入 B 的错误之下,共有错装法 D(n 2) D(n 1) 种。
a 装入 C ,装入 D…… n 2 种错误之下,同样都有 D(n 1) D(n 2) 种错装法,因此 D(n) (n 1)[D(n 1) D(n
2)]
D(n) = (n-1) [D(n-2) + D(n-1)]
特殊地, D(1) = 0, D(2) = 1.

☁️解题思路

错排的递推公式是: D(n) = (n - 1) [D(n - 2) + D(n - 1)] ,也就是第 n 项为 n - 1 倍的前两项和。通过这个递推公式可以
得到在总数为 n 的时候,错排的可能性一共有多少种。那么要求错排的概率,我们还需要另一个数值,就是当总数
n 的时候,所有的排列组合一共有多少种,那么根据排列组合,肯定是使用
的公式来求,也就是 n 的阶乘。所以结果很简单,就是用公式求出第 n 项的错排种类,和 n 的阶乘,然后两者一除,
就是概率了。

☁️示例代码

import java.util.*;
public class Main{
public static void main(String[] args){
long d[] = new long[21]; // 错排数据
d[0] = d[1] = 0;
d[2] = 1;
long f[] = new long[21]; // 阶乘
f[0] = f[1] = 1;
f[2] = 2;
// 算N错排数据和阶乘
for(int i = 3; i <= 20; ++i){
d[i] = (i-1) * (d[i-1] + d[i-2]);
f[i] = i * f[i-1];
}
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
System.out.printf("%.2f%%\n", 100.0*d[n]/f[n]);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA 阻塞队列原理

JAVA 阻塞队列原理 阻塞队列&#xff0c;关键字是阻塞&#xff0c;先理解阻塞的含义&#xff0c;在阻塞队列中&#xff0c;线程阻塞有这样的两种情况&#xff1a; 当队列中没有数据的情况下&#xff0c;消费者端的所有线程都会被自动阻塞&#xff08;挂起&#xff09;&#x…

浅析不同NAND架构的差异与影响

SSD的存储介质是什么&#xff0c;它就是NAND闪存。那你知道NAND闪存是怎么工作的吗&#xff1f;其实&#xff0c;它就是由很多个晶体管组成的。这些晶体管里面存储着电荷&#xff0c;代表着我们的二进制数据&#xff0c;要么是“0”&#xff0c;要么是“1”。NAND闪存原理上是一…

新瓶装旧酒之底座概念

一、前言 互联网技术总是喜欢创造一下新的词汇以显示技术先进或者高大上&#xff0c;比如&#xff1a;云计算&#xff0c;中台&#xff0c;引擎&#xff0c;敏捷&#xff0c;领域模型等等。刚出来的时候总是让人看的云里雾里&#xff0c;但是了解后发现也就那么回事。比如今年…

【运维】将Linux的硬盘当内存用,Linux内存不够用的时候如何用硬盘提升内存

文章目录 内存不够用&#xff0c;可以用硬盘当内存吗如何取消这种交换空间交换空间是优先使用的还是说原始内存是会被优先使用的 内存不够用&#xff0c;可以用硬盘当内存吗 是的&#xff0c;可以使用硬盘作为虚拟内存来扩展容器中的内存。这个过程被称为“交换”或“交换空间…

管理空闲存储空间

位示图是操作系统中一种管理空闲存储空间的方法。管理空闲除使用位示图法还可用&#xff1a;空闲区表法&#xff0c;空闲链表法&#xff0c;成组链接法 1.空闲区表法 空闲表法属于连续分配方法。它与内存管理中的动态分区分配方法雷同。 将外存空间上一个连续未分配区域称为“…

【兔子王赠书第11期】成为一名优秀的程序员,从读一本好书开始

文章目录 写在前面《代码大全2》前 言哪些人适合阅读本书还可以从哪些地方找到更多相关信息本书的关键收益为什么要写这本书 推荐理由粉丝福利写在后面 写在前面 如果你曾经想要学习软件开发&#xff0c;却因为零基础而感到困惑&#xff0c;那么《代码大全2纪念版》是你的完美…

第三十二课 电商系统增删改查统一接口的编写

商品增删改查 统一接口 接口方法&#xff0c;只有五个 Add增 Delete 删 Update 更新 findAll查询所有 findOne查询某一个 add增加一个数据 不管增加哪一个表的数据 表名&#xff08;小写&#xff09;与类名一致表中的字段在类中私有化封装 采用&#xff1a;java技术…

ArcGIS无法绘制一个或多个图层

背景&#xff1a;在导入一份数据时候&#xff0c;arcmap出现无法绘制一个或多个图层的错误&#xff0c;...点数少于要素所要求的的数量&#xff0c;查阅了半天资料发现是制作数据时候拓扑关系错误造成&#xff0c;现将处理方法详细记录如下&#xff1a; 1.原数据&#xff1a; …

logstash之grok插件自定义规则学习

文章目录 1、前言2、Grok提供的常用Patterns说明及举例2.1 常用的表达式说明 3、使用grok插件进行日志字段处理4、案例1&#xff1a;处理nginx的日志4.1、查看nginx日志格式4.2、对nginx的日志进行过滤处理 5、案例2&#xff1a;处理tomcat的日志5.1、[安装logstash-filter-mul…

JAVA安全之Spring参数绑定漏洞CVE-2022-22965

前言 在介绍这个漏洞前&#xff0c;介绍下在spring下的参数绑定 在Spring框架中&#xff0c;参数绑定是一种常见的操作&#xff0c;用于将HTTP请求的参数值绑定到Controller方法的参数上。下面是一些示例&#xff0c;展示了如何在Spring中进行参数绑定&#xff1a; 示例1&am…

7.25 SpringBoot项目实战【我的借阅记录】

文章目录 前言一、编写控制器二、编写服务层三、Git提交前言 至此,我们已经实现 图书借阅、收藏、评论等场景,最后来到【还书】场景,首先 还书的 入口 一般 是【我的借阅记录】,在这里可以根据产品设计,对于需要归还的书 操作【还书】,所以本文来实现【我的借阅记录】。…

喜讯 | 同立海源生物荣获北京市“专精特新”企业认定

喜 讯 近日&#xff0c;北京市经济和信息化局公示了2023年第三季度专精特新中小企业名单&#xff0c;北京同立海源生物科技有限公司凭借专业技术实力、创新研发能力、行业影响力以及卓越的企业文化&#xff0c;顺利通过专家层层评审与综合评估&#xff0c;荣获北京市“专精特…

大数据讲课笔记1.1 安装配置CentOS

文章目录 零、学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;安装VMWare Workstation1、获取安装程序2、进入安装向导3、按提示完成安装 &#xff08;二&#xff09;虚拟网络编辑器1、启动虚拟网络编辑器2、选择VMnet8虚拟网3、更改网络配置4、查看DHCP设置5、查…

用PHP和HTML做登录注册操作数据库Mysql

用PHP和HTML做登录注册操作数据库Mysql 两个HTML页面&#xff0c;两个PHP,两个css,两张图片&#xff0c;源码资源在上方。 目录 HTML页面 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta nam…

Python基础(四、探索迷宫游戏)

Python基础&#xff08;四、探索迷宫游戏&#xff09; 游戏介绍游戏说明 游戏介绍 在这个游戏中&#xff0c;你将扮演一个勇敢的冒险者&#xff0c;进入了一个神秘的迷宫。你的任务是探索迷宫的每个房间&#xff0c;并最终找到隐藏在其中的宝藏。 游戏通过命令行界面进行交互…

工业总线I/O网关模块的作用有哪些?

工业网关是工业互联网中的重要组成部分&#xff0c;工业I/O网关模块I代表输入&#xff0c;O代表输出&#xff0c;I/O模块的核心是实现计算机硬件组件与外部世界之间的通信和数据传输。它可以将物联网设备和工业设备连接起来&#xff0c; 实现设备、系统、平台之间的数据交换和信…

【教程】逻辑回归怎么做多分类

目录 一、逻辑回归模型介绍 1.1 逻辑回归模型简介 1.2 逻辑回归二分类模型 1.3 逻辑回归多分类模型 二、如何实现逻辑回归二分类 2.1 逻辑回归二分类例子 2.2 逻辑回归二分类实现代码 三、如何实现一个逻辑回归多分类 3.1 逻辑回归多分类问题 3.1 逻辑回归多分类的代…

【华为鸿蒙系统学习】- HarmonyOS4.0开发|自学篇

​ &#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 HarmonyOS 4.0 技术介绍&#xff1a; HarmonyOS三大特征&#xff1a; 1.实现硬件互助&#…

【LeetCode热题100】【滑动窗口】找到字符串中所有字母异位词

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p "…

运营商二要素API:验证姓名和手机号码一致性的关键工具

前言 在当今数字化时代&#xff0c;手机号码已成为人们日常生活中不可或缺的一部分。然而&#xff0c;由于各种原因&#xff0c;姓名和手机号码往往并非完全匹配。为了解决这一问题&#xff0c;运营商二要素API应运而生&#xff0c;它能够验证姓名和手机号码是否一致&#xff…