UVA 11971 Polygon 多边形(连续概率)
题意:
一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率?
思路:
数学题。要求的是概率,明显与n无关。
将木条围成一个圆后再开切k+1刀,得到k+1段。组不成多边形就是其中有一段特别长,比其他k段加起来还要长。先算出不能围成多边形的概率,那么就是圆上面必须要有一段的长度大于半个圆周长,且其他的k-1个位置都要在同一边。
第一个点随机选,概率为1,假设这个点就是木条要组成圆的那两端。接下来要选其他的k个点的位置,他们都在同一个半圆上的概率是(1/2)k。假设分成这样的k+1段,A0A1A2....AK。那么A0--A1就是一段了。假设是这一段最大且超过n的一半。那么其他的k-1个位置就必须在同一边且在偏短的那一边。共有k+1段,都有可能是最长的那段,所以概率(k+1)*(1/2)k。答案为1-(k+1)*(1/2)k。
这题其实在考逻辑和证明能力啊,不是很懂的感觉。但就大概这样理解过来的。建议参考一下这些证明:http://www.zhihu.com/question/25408010/answer/30732054
#include <bits/stdc++.h>
#define pii pair<int,int>
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=; int main()
{
//freopen("input.txt", "r", stdin);
int Case=, n, k, t;
cin>>t;
while(t--)
{
scanf("%d%d", &n, &k);
LL up=((LL)<<k)-k-;
LL down=((LL)<<k); LL g=__gcd(up, down);
up/=g;
down/=g;
printf("Case #%d: %lld/%lld\n", ++Case, up, down); }
return ;
}
AC代码
UVA 11971 Polygon 多边形(连续概率)的更多相关文章
- UVA 11971 - Polygon 数学概率
Polygon John has been given a segment of lenght N, however he n ...
- UVa 11971 - Polygon(几何概型 + 问题转换)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVa 11971 Polygon (数学,转化)
题意:一根长度为n的木条,随机选k个位置将其切成k+1段,问这k+1段能组成k+1条边的多边形的概率. 析:这个题,很明显和 n 是没有任何关系的,因为无论 n 是多少那切多少段都可以,只与切多少段有 ...
- uva 11971 Polygon
https://vjudge.net/problem/UVA-11971 有一根长度为n的木条,随机选k个位置把它们切成k+1段小木条.求这些小木条能组成一个多边形的概率. 将木条看做一个圆,线上切k ...
- UVa 11971 (概率) Polygon
题意: 有一根绳子,在上面随机选取k个切点,将其切成k+1段,求这些线段能够成k+1边形的概率. 分析: 要构成k+1边形,必须最长的线段小于其他k个线段之和才行. 紫书上给出了一种解法,但是感觉理解 ...
- 紫书 例题 10-21 UVa 11971(连续概率)
感觉这道题的转换真的是神来之笔 把木条转换成圆,只是切得次数变多一次 然后只要有一根木条长度为直径就租不成 其他点的概率为1/2^k 当前这个点的有k+1种可能 所以答案为1 - (k+1)/2^k ...
- UVa 10900 (连续概率、递推) So you want to be a 2n-aire?
题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖 ...
- UVA 11346 Probability 概率 (连续概率)
题意:给出a和b,表示在直角坐标系上的x=[-a,a] 和 y=[-b,b]的这样一块矩形区域.给出一个数s,问在矩形内随机选择一个点p=(x,y),则(0.0)和p点组成的矩形面积大于s的概率是多少 ...
- 紫书 例题 10-20 UVa 10900(连续概率)
分两类,当前第i题答或不答 如果不回答的话最大期望奖金为2的i次方 如果回答的话等于p* 下一道题的最大期望奖金 那么显然我们要取最大值 所以就要分类讨论 我们设答对i题后的最大期望奖金为d[i] 显 ...
随机推荐
- 第一次通过AVD Manager创建了一个虚拟设备,但是在Android Studio运行程序时却无设备可选
第一次通过AVD Manager创建了一个虚拟设备,但是在Android Studio运行程序时却无设备可选 原因是adb.exe未运行起来 至于adb.exe未正常运行起来的原因多半是5037端口被 ...
- [Java] String类, StringBuffer类
1. String 类 1. 创建: String s1 = new String; s1 = "abc"; String s2 = new String("abc&qu ...
- python中为什么需要使用“if __name__ == '__main__'”语句
首先用最简洁的语言来说明一下 if __name__ == '__main__': 的作用:防止在被其他文件导入时显示多余的程序主体部分. 先举个例子,如果不用 if __name__ == '__m ...
- memset函数学习
memset是计算机中C/C++语言函数.将s所指向的某一块内存中的后n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存 ...
- Eclipse中删除导入的jar包,总是报错?已解决!
参考百度经验 http://jingyan.baidu.com/article/851fbc37c7512e3e1f15abec.html
- k8s关键性概念
1.service每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver.kube-controller-manager和kube- ...
- 关于<?php exit;?>"的绕过问题
在Moctf中看到一道题目: <?php show_source(__FILE__); $c="<?php exit;?>"; @$c.=$_POST['c']; ...
- loj#2540. 「PKUWC2018」随机算法
传送门 完了pkuwc咋全是dp怕是要爆零了-- 设\(f(S)\)表示\(S\)的排列数,\(S\)为不能再选的点集(也就是选到独立集里的点和与他们相邻的点),\(mx(S)\)表示\(S\)状态下 ...
- 【Tip】Python
『基本操作』 [查看Python所在目录] import os print(os.__file__) [查看已安装的包] pip list [获取当前脚本所在目录] import sys import ...
- queue+模拟 Codeforces Round #304 (Div. 2) C. Soldier and Cards
题目传送门 /* 题意:两堆牌,每次拿出上面的牌做比较,大的一方收走两张牌,直到一方没有牌 queue容器:模拟上述过程,当次数达到最大值时判断为-1 */ #include <cstdio&g ...