IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 20年ICPC澳门站L - Random Permutation -> 正文阅读

[C++知识库]20年ICPC澳门站L - Random Permutation

An integer sequence with length?nn, denoted by?a_1,a_2,\cdots,a_na1?,a2?,?,an?, is generated randomly, and the probability of being?1,2,\cdots,n1,2,?,n?are all?\frac{1}{n}n1??for each?a_iai??(i=1,2,\cdots,n)(i=1,2,?,n).

Your task is to calculate the expected number of permutations?p_1,p_2,\cdots,p_np1?,p2?,?,pn??from?11?to?nn?such that?p_i \le a_ipi?≤ai??holds for each?i=1,2,\cdots,ni=1,2,?,n.

Input

The only line contains an integer?nn?(1 \leq n \leq 50)(1≤n≤50).

Output

Output the expected number of permutations satisfying the condition. Your answer is acceptable if its absolute or relative error does not exceed?10^{-9}10?9.

Formally speaking, suppose that your output is?xx?and the jury's answer is?yy. Your output is accepted if and only if?\frac{|x - y|}{\max(1, |y|)} \leq 10^{-9}max(1,∣y∣)∣x?y∣?≤10?9.

InputcopyOutputcopy
2
1.000000000000

Sample 2

InputcopyOutputcopy
3
1.333333333333

Sample 3

InputcopyOutputcopy
50
104147662762941310907813025277584020848013430.758061352192

题意:长度为n的a数组中,每个数是1,2,3,4..n的概率都是1/n,对于全排列的p数组(如1,2,3。1,3,2。2,1,3。2,3,1。3,1,2。3,2,1),全部下标i都成立的pi<ai的数学期望是多少。

题意比较难懂,就是所有全排列的p数组答案+起来,p数组为1,2答案2/4,因为a数组有1,2。2,2可以,两个的概率是2/2*2=0.5,p数组为2,1的答案也是0.5,最后就是1.000000。

思路:答案简单算算可以知道为:(n!*n!)/n^n。没有公式直接算即可。

,他的意思应该是前10位对就ok,所以c++的long double和py直接小数计算都可

?代码:

#include<bits/stdc++.h>
using namespace std;
#define fo(a,b) for(int i=a;i<=b;i++)
#define inf 0x3f3f3f3f
#define dou long double
#define M 100005
dou res=1,n;
int main(){
    cin>>n;
    for(dou i=1;i<=n;i++){
        res*=i*i/n;
    }
    printf("%.15Lf\n",res);
    return 0;
}

py代码:

n=(int)(input())
res=1
for i in range(1,n+1):
    res*=1.0/n*i*i
print(res)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 18:48:02  更:2022-06-29 18:51:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:40:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码