AT1445 乱数生成 题解
Description
有一个机器会等概率从 \(1\) 到 \(n\) 的正整数中选出一个整数。显然地,这个机器运行 \(3\) 次后会得到 \(3\) 个整数。求这 \(3\) 个整数的中位数是 \(k\) 的概率。
数据范围:\(1\leqslant k\leqslant n\leqslant 10^6\)。
Solution
发现自己快到 CSP 了完全不会概率,于是随便在 AtCoder 上面找了个题玩玩。
首先我们发现,由于选取的整数个数为奇数,那么要想这 \(3\) 个数为 \(k\),选取的三个数中至少应该有一个数是 \(k\)。
我们不妨设所选的 \(3\) 个正整数为 \(a,b,c\),然后对 \(a,b,c\) 的取值情况进行分类讨论。以下设 \(p\) 为任意不等于 \(k\) 的正整数。
\(a=b=c=k\)。
显然,只有一种情况能够满足这个要求。\(a,b,c\) 中恰好有 \(2\) 个整数为 \(k\)。
显然,从其余的 \(n-1\) 个正整数中选出一个数都能够满足这类条件。然后考虑一般的情况,由于不同的排列有 \((k,k,p)\),\((k,p,k)\) 和 \((p,k,k)\) 三种,因此这类下一共有 \(3(n-1)=3n-3\) 种情况。\(a,b,c\) 中恰好有 \(1\) 个整数为 \(k\)。
另外一个数要么是在 \([1,k-1]\) 中(也就是有 \(k-1\) 种不同的取值情况),要么是在 \([k+1,n]\) 中(也就是有 \(n-k\) 种不同的取值情况)。又由于不同的排列一共有 \((k,p_1,p_2)\),\((k,p_2,p_1)\),\((p_1,k,p_2)\),\((p_2,k,p_1)\),\((p_1,p_2,k)\) 和 \((p_2,p_1,k)\) \(6\) 种,因此这类下一共有 \(6(k-1)(n-k)=6nk-6k^2-6n+6k\) 种情况。
把上面这三类整合在一起,因此一共有 \(6nk-6k^2-6n+6k+3n-3+1=6nk-6k^2-3n+6k-2\) 种情况。又因为所有不同的情况一共有 \(n^3\) 种。因此概率为:
\]
注意在代码实现中,由于允许的误差很小,答案需要用 long double
储存以保证精度。
代码就不贴了。
AT1445 乱数生成 题解的更多相关文章
- C#版 - Leetcode 633. 平方数之和 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- [CQOI2014]数三角形 题解(组合数学+容斥)
[CQOI2014]数三角形 题解(数论+容斥) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1328780 链接题目地址:洛谷P3166 BZOJ 350 ...
- [CQOI2014]数三角形 题解(找规律乱搞)
题面 其实这道题不用组合数!不用容斥! 只需要一个gcd和无脑找规律(滑稽 乍一看题目,如果单纯求合法三角形的话情况太多太复杂,我们可以从局部入手,最终扩展到整体. 首先考虑这样的情况: 类似地,我们 ...
- 洛谷P1066 2^k进制数(题解)(递推版)
https://www.luogu.org/problemnew/show/P1066(题目传送) (题解)https://www.luogu.org/problemnew/solution/P106 ...
- CodeForces 509C Sums of Digits(贪心乱搞)题解
题意:a是严格递增数列,bi是ai每一位的和,告诉你b1~bn,问你怎样搞才能让an最小 思路:让ai刚好大于ai-1弄出来的an最小.所以直接模拟贪心,如果当前位和前一个数的当前位一样并且后面还能生 ...
- 洛谷【P2022 有趣的数】 题解
题目链接 https://www.luogu.org/problem/P2022 题目描述 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10 ...
- Gym 101480I Ice Igloos(思维乱搞)题解
题意:给个最多500 * 500的平面,有半径最多不为1的n个圆,现在给你1e5条线段,问你每条线段和几个圆相交,时限10s 思路: 因为半径<1,那么我其实搜索的范围只要在线段附近就好了.x1 ...
- T66099 小xzy的数对 题解
T66099 小xzy的数对 题目背景 老师带同学参加表演,要求学生两两一组表演,但有些学生一起会发生冲突,现在老师想知道有多少组学生分到一起时不会发生冲突. 题目描述 学生发生冲突当且仅当他们身上的 ...
- Hdoj 2084.数塔 题解
Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...
随机推荐
- git新手配置(ios环境)
ios环境,初步了解git是个什么东西,使用过svn相关软件最佳,否则可以先补一下git的相关概念和用处,相关教程:https://www.liaoxuefeng.com/wiki/896043488 ...
- 最简单的Python3启动浏览器代码
#encoding=utf-8 from selenium import webdriver import time from time import sleep dr = webdriver.F ...
- JOI 2020 Final 题解
T1. 只不过是长的领带 大水题,把 \(a_i,b_i\) 从小到大排序. 发现最优方案只可能是大的 \(a_i\) 跟大的 \(b_i\) 匹配,小的 \(a_i\) 与小的 \(b_i\) 匹配 ...
- 6 — springboot中设置默认首页 -没屁用
1.页面在static目录中时 2).测试 2.页面在templates模板引擎中时 1).这种需要导入相应的启动器 <dependency> <groupId>org.spr ...
- 从零构建Java项目(Maven+SpringBoot+Git) #02 奥斯丁项目
前两天我说要写个项目来持续迭代,有好多小伙伴都表示支持和鼓励,项目的第一篇这不就来了么~我给项目取了个名字,英文名叫做:austin,中文名叫做:奥斯丁 名字倒没有什么特别的含义,我单纯觉得这个名字好 ...
- A Child's History of England.15
And indeed it did. For, the great army landing from the great fleet, near Exeter, went forward, layi ...
- IDEA中对代码进行测试
一. 建立对应得目录 二.导入junit依赖 <dependency> <groupId>junit</groupId> <artifactId>jun ...
- Vue相关,Vue JSX
JSX简介 JSX是一种Javascript的语法扩展,JSX = Javascript + XML,即在Javascript里面写XML,因为JSX的这个特性,所以他即具备了Javascript的灵 ...
- android studio 使用 aidl(一)基础用法
最近公司需要开发一个项目用的到aidl,之前研究过eclipse版本的,但是好久了一直没用,现在需要捡起来,但是现在都用android studio了,所以查了下资料 都不是很全,我在这里总结一下,方 ...
- adb命令对app进行测试
1.何为adb adb android debug bridge ,sdk包中的工具,将Platform-tooks 和tools 两个路径配置到环境变量中 2.SDK下载链接:http://t ...