归档:220815 - 220816 | 再被劝退:怎么又是数学题!
想起初一比较流行的一首打油诗:
学物理,如雾里,雾里看雾里。勿理,物理;
学数学,如输血,输血学数学。速学,数学。
谁写的,杀掉!😠
困困困困困困困困困困困困,怎么会这么困 😪
所以为什么 :sleepy:
会是 😪 ???
首先是 15 号的古典概率问题。
铁锹:S 代表的是一种传统农业工具,就是铲子,也就是我们说的,呃,啊,嗯,铁锹。
(先进行一个大坑的挖。)
呃呃呃,开始做题了。。。。
Codeforces 9A - Die Roll
@TQAFC 你认为这样的水题是有意义的吗?请布置更有意义的题目!(大嘘)
所谓概率。。。就是扔得比最大值大的方案数。。。
代码
namespace XSC062 {
using namespace fastIO;
int x, y, a, b;
int gcd(int x, int y) {
return y ? gcd(y, x % y) : x;
}
inline int max(int x, int y) {
return x > y ? x : y;
}
int main() {
read(x);
read(y);
x = 6 - max(x, y) + 1;
y = 6;
printf("%d/%d", x / gcd(x, y), y / gcd(x, y));
return 0;
}
} // namespace XSC062
Codeforces 1459A - Red-Blue Shuffle
因为红蓝数字一样的牌不管放在哪个位置都不会对结果造成任何影响,所以我们直接无视掉他们。
然后剩下的牌红蓝数字都不一样。所以放在第一位的牌直接就会决定最终谁更大。
因为每一张牌放在第一位的概率相同,所以直接统计一下红比蓝大、蓝比红大的牌的数量,比较一下就好了。
所以和概率有什么关系,,,
代码
namespace XSC062 {
const int maxn = 1e3 + 5;
int T, n, cnta, cntb;
int a[maxn], b[maxn];
int main() {
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
cnta = cntb = 0;
for (int i = 1; i <= n; ++i)
scanf("%1d", &a[i]);
for (int i = 1; i <= n; ++i) {
scanf("%1d", &b[i]);
if (a[i] > b[i])
++cnta;
if (a[i] < b[i])
++cntb;
}
if (cnta == cntb)
puts("EQUAL");
else if (cnta > cntb)
puts("RED");
else puts("BLUE");
}
return 0;
}
} // namespace XSC062
CodeChef MHP2O - Monty Hall Paradox 2
是非常经典的三扇门概率问题哎。
解释一下样例。
假设三扇门分别为门 \(1\),门 \(2\),门 \(3\),明显每扇门后面有车的概率是 \(\dfrac 13\)。
假设选定门 \(1\),那么选中车的概率是 \(\dfrac 13\),没选中的概率(也就是车在门 \(2\) 或门 \(3\) 后的概率)是 \(\dfrac 23\)。
此时魔术师打开门 \(3\),里面没有车。但此时没选中车的概率没有发生改变(因为一开始给出 \(\dfrac 23\) 这个概率本身就是建立在 \(2\) 和 \(3\) 中有一扇空门的情况下的,所以条件并没有发生改变,概率也自然不会变动),也就是说,车在门 \(2\) 或门 \(3\) 后的概率仍然是 \(\dfrac 23\)。门 \(3\) 后有车的概率为 \(0\),所以门 \(2\) 后有车的概率是 \(\dfrac 23\)。
然后题目问的就是门 \(1\) 后有车的概率和把门 \(3\) 到门 \(n\) 的所有门都打开后门 \(2\) 后有车的概率。
那不就是 \(\dfrac 1n\) 和 \(\dfrac {n-1}n\)???
代码
namespace XSC062 {
using namespace fastIO;
int T, n;
int main() {
read(T);
while (T--) {
read(n);
printf("%d %d %d %d\n", 1, n, n - 1, n);
}
return 0;
}
} // namespace XSC062
CodeForces 476B - Dreamoon and WiFi
首先算出来预期终点,再算出来排除所有 ?
后的实际终点,记两个终点的距离为 \(dis\),?
的个数为 \(cnt\)。
如果 \(dis>cnt\),说明就算把所有 ?
都用光也没有办法回到预期起点。
所以 \(cnt\ge dis\)。明显,当我们花费最小代价,也就是直接走直线从实际终点走到预期终点后,还会剩下一些步数。
那么这些步数应该怎么消耗呢?明显,能前仅能通过向前一步,向后一步消耗两步。
如果剩余步数为奇数,无解。
如果剩余步数为偶数,那么向前和向后各占一半。还有朝着某一个方向走直线的代价,因为现在向前、向后的步数相等,所以随便把这些代价看成哪个方向都可以。
然后随便挑选一个方向的步数,假设为 \(x\),那么在 \(cnt\) 中选
然后是 16 号的条件概率问题。
走过来看到铁锹给我的 wx 的 PPT 的 lhy:我去,这都是多老的 PPT 了,怎么连我都有。。。
注意事件概率计算的书写方式和它们的实际计算方式容易产生混淆!
一般来说,表示实际概率数值的,我们会加上一个 \(P\),如 \(P(A)\),\(P(A+B)\) 等。
而没有加上 \(P\) 的呢,本身表示某种事件,比如 \(A\),\(A+B\)。
首先是概念相关的一些定义:
-
蕴含 / 包含:如果 \(A\) 发生时 \(B\) 也一定发生,称 \(A\) 包含 / 蕴含 \(B\)。
-
互斥:\(A\) 发生了 \(B\) 就不可能发生。反之亦然。
其中一个特殊的情况是,\(A\) 不发生时,\(B\) 一定发生,反之亦然。此时 \(B\) 也可称为 \(\bar{A}\),读作 A bar。
-
事件的和:我们记 \(A\) 发生或 \(B\) 发生(或都发生)为 \(A+B\)。此时 \(A\) 和 \(B\) 至少发生一个。
-
事件的积 / 事件的交:记 \(A\) 和 \(B\) 都发生为 \(AB\) 或 \(A\times B\)。当 \(A\) 与 \(B\) 互斥时,事件 \(AB\) 为不可能事件。
-
事件的差:通常记 \(A\) 发生而 \(B\) 不发生为 \(A-B\)。
-
条件概率:在满足 \(A\) 的条件下满足 \(B\) 的概率记为 \(B|A\)。
那么它与 \(AB\) 有什么区别呢?
答案很简单,\(B|A\) 是建立在 \(A\) 已经发生的基础之上的,也就是说我们不用考虑 \(A\) 事件本身发生的概率。而 \(AB\) 是以 \(A\)、\(B\) 事件都没有发生为基础计算的。
-
独立事件
若 \(P(A\times B)=P(A)\times P(B)\),即 \(P(A|B)=P(A)\),此时 \(B\) 的状态对 \(A\) 没有任何影响,我们称 \(A,B\) 这个整体是一个独立事件。
一般地,当 \(P(\prod\limits_{i=1}^n A_i) = \prod\limits_{i=1}^n P(A_i)\) 时,\(A\) 为独立事件。
独立一定推出两两独立,反之不一定对。
以 \(A\) 举例子:
当 \(A\) 独立时,\(\forall i,j\in [1,n],P(A_i\times A_j)=P(A_i)\times P(A_j)\,\,\,\,\,\,(j\ne i)\)。
但当 \(\forall i,j\in [1,n],P(A_i\times A_j)=P(A_i)\times P(A_j)\,\,\,\,\,\,(j\ne i)\) 时,\(A\) 不一定独立。
举个例子:
有四个除标记的数字外完全相同的球,球 \(1,2,3\) 分别标记了 \(1,2,3\),球 \(4\) 标记了 \(1,2,3\) 这三个数。
事件 \(A_i(i\in [1,3])\) 表示随机抽取一个球,球上数字包含 \(i\)。
对于事件 \(A_i\),可选的方案有球 \(4\) 和球 \(i\),\(P(A_i)=\dfrac 12\)。
对于事件 \(A_iA_j(j\ne i)\),可选的方案只有球 \(4\),\(P(A_iA_j)=\dfrac 14=P(A_i)P(A_j)\)。所以 \(A_i,A_j\) 为独立事件。
但对于 \(A_1,A_2,A_3\) 来说,可选的方案也只有球 \(4\),\(P(A_1A_2A_3)=\dfrac14\ne P(A_1)P(A_2)P(P_3)\),\(A_1,A_2,A_3\) 不为独立事件。
接着,是一些事件计算相关:
-
事件运算定律
-
交换律:
\[A+B=B+A \\ AB = BA \]呃呃,这个原因显然?因为事件的加法和乘法都是无顺序的。。。
-
乘法结合律:
\[(AB)C=A(BC)=ABC \]这个因为乘法的定义是「都发生」,反正到了最后答案一定是 \(A,B,C\) 的公共部分,所以成立吧。
-
加法结合律:
\[(A+B)+C = A+(B+C) \]然后最后答案都是 \(A,B,C\) 中挑至少两件来发生,所以是等价的。然后注意上式和 \(A+B+C\) 是不等价的,因为 \(A+B+C\) 是 \(A,B,C\) 中挑至少一件事。
-
分配率:
\[A(B+C)=AB+AC \\ (A+B)C=AC+BC \] -
德摩根律:
\[\overline{A+B} = \bar A \times \bar B \\ \overline{A\times B} = \bar A +\bar B \]对于多个事件,可推广:
\[\overline{A_1 + A_2 + \cdots + A_n} = \overline {A_1} \times \overline {A_2} \times \cdots \times \overline{A_n} \\ \overline{A_1\times A_2\times \cdots A_n}=\overline{A_1} + \overline{A_2} + \cdots + \overline{A_n} \]
-
-
易错的事件运算
- \(A+A\) 的答案是 \(A\),而不是 \(2A\)(话说 \(2A\) 是什么)。
- \(AA\) 的运算结果是 \(A\),而不是 \(A^2\)(所以真的存在这种书写方式吗)。
- \(A-B=\varnothing\) 无法推出 \(A=B\),只能得到 \(A\subset B\)。
- \((A-B)+B\) 不是 \(A\),而是 \(A+B\)。
总而言之就是不要用数字的运算法则计算事件。。。
然后是概率的计算:
-
加法定理:
若 \(\sum\limits_{i=1}^nA_i\)(即 \(A_1,A_2,\cdots,A_n\))两两互斥,则有:
\[P(A_1 + A_2 + \cdots + A_n) = P(A_1) + P(A_2) + \cdots + P(A_n) \] -
加法定理的推论:
\[P(A)=1-P(\bar A) \] -
广义加法公式:
对任意两个事件 \(A\) 与 \(B\),有:
\[P(A+B)=P(A)+P(B)-P(AB) \]其实就是容斥(
\(n\) 个事件相当于大小为 \(n\) 的容斥。
-
乘法公式:
\[P(AB)=P(A)\times P(B|A)=P(B)\times P(A|B) \] -
独立事件乘法公式:
对于独立事件 \(A,B\),有:
\[P(A\times B)=P(A)\times P(B) \]有推广,对于大小为 \(n\) 的独立事件 \(A_1,A_2,\cdots,A_n\),有:
\[P(A_1\times A_2\times \cdots \times A_n) = P(A_1)\times P(A_2) \times \cdots \times P(A_n) \] -
全概率公式:
若 \(\forall i, j,A_i\times A_j\neq \varnothing\) 且 \(\sum\limits_{i=1}^n A_i=1\),有:
\[P(B) = \sum_{i = 1}^n P(A_i)\times P(B|A_i) \] -
贝叶斯定理:
\[P(B_i|A)=\frac{P(B_i)\times P(A|B_i)}{\sum\limits_{j = 1}^n P(B_j)\times P(A|B_j)} \]
—— · EOF · ——
真的什么也不剩啦 😖