题目描述

"可爱的妹子就像有理数一样多,但是我们知道的,你在数轴上随便取一个点取到有理数的概率总是0,"芽衣在床上自顾自的说着这句充满哲理的话,"诶,柚子,我写完概率论的作业你就和我出去约会怎么样""好呀,但是你要做完才可以哦"柚子回答道,芽衣立刻从床上翻下来冲到了座位上,诶,就一道题啊,真好,题目是这样的:在一个圆上任取n个点,求由这n个点依次围成的凸n边形至少有一个锐角的概率是多少,芽衣急于和柚子去约会,当然没有心情想这一道题,于是她就来求助聪明的你啦。

输入

一个n,4<=N<=10000000000

输出

至少有一个锐角的概率,为了避免精度问题,对1e9+7取模

样例输入

136865353

样例输出

423626558


题解

微积分

显然对于一张图,如果有锐角,则一定存在逆时针方向连续的两个角分别为钝角和锐角,且这样的连续两个角仅存在一组。

那么我们对这样的部分单独分析:

我们令点 $P$ 为该钝角,点 $Q$ 为该锐角。

那么在其余的点中,点 $P$ 逆时针前一个点一定在 $\widehat{PQ'}$ 上,点 $Q$ 逆时针后一个点一定在 $\widehat{PQ'P'}$ 上。

因此其余的点一定满足条件:全部在 $\widehat{PQ'P'}$ 上,且至少有一个在 $\widehat{PQ'}$ 上。

那么满足条件的概率就是:全部在 $\widehat{PQ'P'}$ 上的概率减去全部在 $\widehat{P'Q'}$ 上的概率。

设 $\angle POQ=x\times {2\pi}$ ,那么对于剩下 $n-2$ 个有标号点,都在 $\widehat{PQ'P'}$ 上的概率为 $(\frac 12)^{n-2}$ ,都在 $\widehat{P'Q'}$ 上的概率为 $x^{n-2}$ 。

因此对于固定的 $\angle POQ= x\times {2\pi}$ ,其余 $n-2$ 个点的选择满足条件的概率为 $(\frac 12)^{n-2}-x^{n-2}$ 。

所以对于无标号的 $P$ 和 $Q$ ,有标号的剩余点选择满足条件的概率就是 $\int_0^{\frac 12}((\frac 12)^{n-2}-x^{n-2})dx=\frac{n-2}{n-1}(\frac 12)^{n-1}$ 。

由于我们考虑的情况没有讨论到 $P$ 和 $Q$ 的标号,因此还要乘上 $P$ 和 $Q$ 的标号方案数 $n(n-1)$ 。

最终答案为 $n(n-2)(\frac 12)^{n-1}$ 。

时间复杂度 $O(\log n)$ 。

#include <cstdio>
#define mod 1000000007
int main()
{
long long n , x = 500000004 , ans;
scanf("%lld" , &n) , ans = n * (n - 2) % mod , n -- ;
while(n)
{
if(n & 1) ans = ans * x % mod;
x = x * x % mod , n >>= 1;
}
printf("%lld\n" , ans);
return 0;
}

【bzoj5146】有趣的概率 微积分的更多相关文章

  1. 【BZOJ5146】有趣的概率 概率+组合数(微积分)

    [BZOJ5146]有趣的概率 Description "可爱的妹子就像有理数一样多,但是我们知道的,你在数轴上随便取一个点取到有理数的概率总是0,"芽衣在床上自顾自的说着这句充满 ...

  2. 利用 random 与 tertools 模块解决概率问题

    Python 中的 random 与 tertools 模块可以得到伪随机数与排列.组合,下面利用这两个模块求解一些有趣的概率问题. 一.random 与 tertools 模块 random 模块常 ...

  3. CF 148D Bag of mice【概率DP】

    D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes Promblem descriptio ...

  4. 【学习总结】 小白CS成长之路

    2017-9-3:入坑. 理想:敲着代码唱着歌. 现实:骨感. Step 1: 认识CS: CS大体可以分成以下几个大领域:硬件.系统.软件.网络.计算理论.计算方法. 硬 件 ---- 数字电路.集 ...

  5. Bzoj 2318 Spoj4060 game with probability Problem

    2318: Spoj4060 game with probability Problem Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 524  Sol ...

  6. BZOJ:4820: [Sdoi2017]硬币游戏&&BZOJ:1444: [Jsoi2009]有趣的游戏(高斯消元求概率)

    1444: [Jsoi2009]有趣的游戏 4820: [Sdoi2017]硬币游戏 这两道题都是关于不断随机生成字符后求出现给定字符串的概率的问题. 第一题数据范围较小,将串建成AC自动机以后,以A ...

  7. 【BZOJ1444】[Jsoi2009]有趣的游戏 AC自动机+概率DP+矩阵乘法

    [BZOJ1444][Jsoi2009]有趣的游戏 Description Input 注意 是0<=P Output Sample Input Sample Output HINT  30%的 ...

  8. BZOJ1444[Jsoi2009]有趣的游戏——AC自动机+概率DP+矩阵乘法

    题目描述 输入 注意 是0<=P, n , l, m≤ 10. 输出 样例输入 input 1 3 2 2 1 2 1 2 AB BA AA input 2 3 4 2 1 2 1 2 AABA ...

  9. BZOJ 1444 [Jsoi2009]有趣的游戏 (AC自动机 + 概率DP + Gauss)

    1444: [Jsoi2009]有趣的游戏 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1382  Solved: 498[Submit][Statu ...

随机推荐

  1. sort与qsort的异同

    主要内容: 1.qsort的用法 2.sort的用法 3.qsort和sort的区别 qsort的用法: 原 型: void qsort(void *base, int nelem, int widt ...

  2. 再论WPF中的UseLayoutRounding和SnapsToDevicePixels

    原文:再论WPF中的UseLayoutRounding和SnapsToDevicePixels 版权声明:.net/web/医疗技术的木子纵横的个人分享 https://blog.csdn.net/m ...

  3. 【原创】user.id字段

    odoo中User.ID 字段是用户登录表 res_users 中的字段,所以要关联某个用户或是判断某个用户,可以利用该字段. 例如:在某个 界面中的domain中,要求显示的是关联某用户的单子,则如 ...

  4. tableView--iOS11适配和iPhoneX适配

    1.UIScrollView及其子类在IOS 11之前的版本UI显示完全正常,但是在IOS 11上面会显示奇葩的界面. (1)先看一下UITablevIew. 原本在VC里面的automaticall ...

  5. 13 tcp3次握手 4次释放 mac和ip 访问百度的过程

    1.mac地址和ip地址的不同 (传棒棒糖) 需求:192.168.1.1  ping 192.168.2.1 1):获取默认的网关mac地址 2)寻找下一个网关的mac地址 3)mac地址在变,寻找 ...

  6. 你不需要jQuery You Don't Need jQuery

    转载:https://github.com/oneuijs/You-Dont-Need-jQuery/blob/master/README.zh-CN.md You Don't Need jQuery ...

  7. 关于js回调方法 js递归时使用方法

    js中递归调用本身可以这样: function a1(n){ a1(n)}但是如果需要在参数n进行自增的情况下判断会出错: function a1(n){ if(n>10) return 'aa ...

  8. css各种鼠标手型集合

    比较齐全的鼠标手型css在国内的网站上是没搜到这么全的比如说哪个禁止的手型:鼠标往下移动即可看到效果: html代码如下: <h1>Cursors</h1> <div c ...

  9. 小数第n位:高精度

    小数第n位 问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后 ...

  10. K-means + PCA + T-SNE 实现高维数据的聚类与可视化

    使用matlab完成高维数据的聚类与可视化 [idx,Centers]=kmeans(qy,) [COEFF,SCORE,latent] = pca(qy); SCORE = SCORE(:,:); ...