浅谈[0,1]区间内的n个随机实数变量中增加偏序关系类题目的解法


众所周知,把[0,1]区间内的n个随机、相互独立的实数变量\(x_i\)之间的大小关系写成一个排列\(\{p_i\}\),使得\(\forall i<n, x_{p_i} < x_{p_{i+1}}\),那么有一个结论是所有的排列都是等概率出现的,这完全不难理解,因为所有的变量都是可以轮换的。
但是,题目显然不会这么简单,有些题目会给一定的条件限制,例如强制一些偏序关系\(p_u<p_v\),对于这种情况,一般要求给定的偏序拥有特殊性质(例如一颗森林)才能做,并且可以通过常规的组合方法得到(对于森林的情况,合法的概率是\(\prod_{i} \frac 1 {i的子树大小}\))。但是对于这类问题的一些扩展,传统的组合方法便显得十分复杂,需要更加简洁,适用性更广的代数方法———对这些变量进行积分以得到答案。

CTS2019 day1t1随机立方体

题面

这个题目也是求一个排列,并且求满足某种排列的方案数。
注意到题目中要求的恰好k个极大的数的概率不太好算,考虑容斥掉这一条件。
我们强制k个极大的数,剩下的数没有限制,那么对于一种有l个极大数的方案,显然我们会算\(\binom l k\)次,直接二项式反演即可。
现在问题变成了如何算强制k个极大数的方案数。极大数这个概念较为复杂,我们尝试着将其变为简单的偏序关系。首先先枚举k个极大数,并且确定好这k个极大数之间的偏序关系,然后根据极大数的定义我们可以得到某个极大数与其他数的偏序关系。不难发现这个偏序关系本质上是一条链套一堆菊花,那么我们可以很方便的维护这个偏序关系的贡献。

CTS2019 day2t3氪金手游

题面
对于此题,我们相当于枚举一个合法抽卡顺序,根据这个抽卡顺序来计算概率。
这个顺序与排列有点像,唯一的不同是这个概率的计算是加权的,即若抽卡顺序的排列是\(\{p_i\}\),那么对答案的贡献是\(\prod_{i=1}^n {w_{p_i} \over \sum_{j=i}^n w_{p_j}}\)。
一种方法是强行转成与排列类似的问题,把问题转化成有n种颜色,每种颜色有\(w_i\)个不同的球,令某种颜色的第一个球的位置为\(T_i\),\(T_i\)需要满足某种偏序关系(基图为树);或者是倒着从大到小自底向上地考虑抽卡顺序。这两种方法都需要用到容斥,原因是偏序关系并不构成一个外向树,所以无法直接算。但是下面提到的积分法就不需要考虑这么多,这种大一统的思想利用随机变量显得无脑却十分有效。

我们令\(g_1(x)=1,g_2(x)=2(1-x),g_3(x)=3(1-x)^2\)
答案便为\[\int_{0}^1 g_{w_1}(x_1) {\rm d} x_1 \int_{0}^1 g_{w_2} {\rm d} x_2......\int_{0}^1 g_{w_n}(x_n) {\rm d} x_n \prod [x_{u_i} < x_{v_i}]\]

只需要证
\[\int_{0}^1 g_{w_1}(x_1) {\rm d} x_1 \int_{0}^1 g_{w_2} {\rm d} x_2......\int_{0}^1 g_{w_n}(x_n) {\rm d} x_n \prod_{i=1}^{n-1} [x_{p_i}<x_{p_{i+1}}] = \prod_{i=1}^n {w_{p_i} \over \sum_{j=i}^n w_{p_j}}\]
可以轻松用归纳证明。
我们任选一点为根,直接对答案的式子自底向上的进行积分即可。
题目中\(w_i=j\)的概率为\(p_{ij}\),这样的话我们直接令i的函数\(f_i(x)=\sum_{j=1}^3 p_{ij}g_j(x)\)即可。

浅谈[0,1]区间内的n个随机实数变量中增加偏序关系类题目的解法的更多相关文章

  1. 浅谈css的行内类型标签和块级标签

    常用标签的行内类型标签有:a.span.img:块级标签有:div.p.h1~6.ul.ol.li.dl.dt.dd. 行内类型标签的特征:标签的大小由标签的内容决定,不能设置width和height ...

  2. [0, 1] 区间内 n 次独立随机事件的一些问题

    问题一 证明:一根1米长的绳子,随机切成 $N$ 刀,变成($N+1$)根绳子,则最短的一根绳子长度的期望为 $\displaystyle \frac{1}{(N+1)^2}$. 证: 引理:当分成 ...

  3. 技术分析 | 浅谈在MySQL体系下SQL语句是如何在系统中执行的及可能遇到的问题

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 SQL语句大家并不陌生,但某种程度上来看,我们只是知道了这条语句是什么功能,它可 ...

  4. 浅谈UML中类之间的五种关系及其在代码中的表现形式

    本文转载:http://www.cnblogs.com/DebugLZQ/archive/2013/05/13/3066715.html 什么是类? 将某类东西归纳在一起,可以成为一个类. 类有很多种 ...

  5. 好代码是管出来的——浅谈.Net Core的代码管理方法与落地(更新中...)

    软件开发的目的是在规定成本和时间前提下,开发出具有适用性.有效性.可修改性.可靠性.可理解性.可维护性.可重用性.可移植性.可追踪性.可互操作性和满足用户需求的软件产品. 而对于整个开发过程来说,开发 ...

  6. 浅谈C++三种传参方式

    浅谈C++三种传参方式 C++给函数传参中,主要有三种方式:分别是值传递.指针传递和引用传递. 下面通过讲解和实例来说明三种方式的区别. 值传递 我们都知道,在函数定义括号中的参数是形参,是给函数内专 ...

  7. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service ...

  8. 浅谈Java线程安全

    浅谈Java线程安全 - - 2019-04-25    17:37:28 线程安全 Java中的线程安全 按照线程安全的安全程序由强至弱来排序,我们可以将Java语言中各种操作共享的数据分为以下五类 ...

  9. 浅谈android代码保护技术_ 加固

    浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...

随机推荐

  1. jdk1.8 Stream 特性总结

    不是数据结构 它没有内部存储,它只是用操作管道从 source(数据结构.数组.generator function.IO channel)抓取数据. 它也绝不修改自己所封装的底层数据结构的数据.例如 ...

  2. PyTorch中MaxPool的ceil_mode属性

    PyTorch中的MaxPool(最大池化)有一个属性:ceil_mode,默认为False(地板模式),为True时是天花板模式.  

  3. 使用CodeFirst创建数据库

    1.新建一个类库项目 2.右键管理Nuget程序包,搜索EntityFramework.然后安装 3.新建一个类,然后引用 using System.Data.Entity; 然后写类初始化方法(ba ...

  4. EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

    在用.net core进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EF Core 和EF6 的原生sql查询存在很大的差异. 在EF6中我们用SqlQuery和Exe ...

  5. java包装类和值类型的关系

    java包装类总是让人疑惑 它与值类型到底是怎么样一种关系? 本文将以int和Integer为例来探讨它们的关系 java值类型有int short char boolean byte long fl ...

  6. 关于 Java 关键字 volatile 的总结

    1 什么是 volatile volatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制.相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下 ...

  7. 安装Python,输入pip命令报错———pip Fatal error in launcher: Unable to create process using

    今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python27\;D:\Python27\Scripts; 不管是在哪个目录,Python可以执行了 ...

  8. mysql查询表大小

    工作中常用命令参考,收集如下: 查询表大小:select table_name, data_length from information_schema.tables where table_sche ...

  9. Golang 需要避免踩的 50 个坑1

    最近准备写一些关于golang的技术博文,本文是之前在GitHub上看到的golang技术译文,感觉很有帮助,先给各位读者分享一下. 前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免 ...

  10. Nginx 高级配置-压缩功能

    Nginx 高级配置-压缩功能 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx压缩相关参数概述 1>.gzip on | off; Nginx支持对指定类型的文 ...