洛谷-5147 随机数生成器

Python-CYaRon另一个随机的奥林匹克数学测试数据生成器 CYaRon:另一个随机的奥林匹克 - 数学测试数据生成器 立即下载

题目描述
HKE最近编写了一个函数 rand\text{rand}rand,其中 l,r 为正整数且 l≤r。这个函数会等概率返回区间 [l,r] 中任意一个正整数。然后,他又编写了一个函数:
int work(int x){
if(x==1) return 0;
else return work(rand(1,x))+1;
}
现在给定一个正整数 n,请问 work(n) 的返回值的期望值是多少?
期望的定义:假设 work(n) 返回的所有可能的值为 x1,x2,…,xkx_1,x_2,\dots ,x_kx1​,x2​,…,xk​,它们出现的概率分别为 p1,p2,…,pkp_1,p_2,\dots,p_kp1​,p2​,…,pk​,则期望为:
E=∑i=1npixiE=\sum\limits_{i=1}^np_ix_iE=i=1∑n​pi​xi​

输入格式
一个正整数 n

输出格式
一个实数,表示 work(n) 的期望值。保留 5 位小数。

输入输出样例
输入 #1
2

输出 #1
2.00000

输入 #2
3

输出 #2
2.50000

输入 #3
100000

输出 #3
13.09014

说明/提示
对于 100% 的数据,1≤n<231

解释:推公式额。
E(n)=∑i=1n1nE(i)+1E(n)=\sum\limits_{i=1}^n\frac{1}{n}E(i)+1E(n)=i=1∑n​n1​E(i)+1
nE(n)=∑i=1nE(i)+nnE(n)=\sum\limits_{i=1}^nE(i)+nnE(n)=i=1∑n​E(i)+n另外
(n−1)E(n)=∑i=1n−1E(i)+n−1(n-1)E(n)=\sum\limits_{i=1}^{n-1}E(i)+n-1(n−1)E(n)=i=1∑n−1​E(i)+n−1
两式相减得
(n−1)(E(n)−E(n−1))=1(n-1)(E(n)-E(n-1))=1(n−1)(E(n)−E(n−1))=1
E(n)−E(n−1)=1n−1=D(n)E(n)-E(n-1)=\frac{1}{n-1}=D(n)E(n)−E(n−1)=n−11​=D(n)
E(n)=E(2)+∑i=3n−1D(n)E(n)=E(2)+\sum\limits_{i=3}^{n-1}D(n)E(n)=E(2)+i=3∑n−1​D(n)
=2+∑i=1n−11i=2+\sum\limits_{i=1}^{n-1}\frac{1}{i}=2+i=1∑n−1​i1​
其中n=1和n=2要特判断
又当n足够大的时候,
∑i=1n1i=ln⁡(n)+γ\sum\limits_{i=1}^n\frac{1}{i}=\ln(n)+\gammai=1∑n​i1​=ln(n)+γ
γ=0.5772156649015328...\gamma=0.5772156649015328...γ=0.5772156649015328...
完成

#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int limit = 19260817;
const double _gamma = 0.5772156649015328;
double ans=0;
int main(){
    int n=0;cin>>n;
    if(n==1) ans=0.0;
    else if(n==2) ans=2.0;
    else if(n<=limit){
        ans=2.0;
        for(int i=3;i<=n;i++) ans+=1.0/(i-1);
    }else{
        ans=log(n)+_gamma+1;
    }
    printf("%.5f\n",ans);
    return 0;
}

CYaRon:另一个随机的奥林匹克 - 数学测试数据生成器-python CYaRon:另一个随机的奥林匹克 - 数学测试数据生成器 立即下载

相关推荐

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【亲测免费】 CYaRon:随机算法竞赛数据生成器快速指南及问题解答

CYaRon:随机算法竞赛数据生成器快速指南及问题解答 项目基础介绍: CYaRon是一个专为信息学奥林匹克设计的随机测试数据生成工具,由Luogu团队开发维护。它支持快速生成复杂的随机数据集,包括但不限于图论问题、随机数列、多维向量、图和树结构等,非常适合算法练习和测试。该项目采用Python作为主要编程语言,确保了高度的灵活性和易用性。 新手指引:注意点与解决步骤 注意点1:环境配置 问题描...

gitblog_07254的博客 898

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

洛谷生成数据指南

配置数据指南

NOIP_YYDS的博客 6327

解决VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法

在启用了Credential Guard或Device Guard的Windows 10主机上启动12.5版之前的VMware Workstation中的虚拟机时,将显示蓝色诊断屏幕(BSOD)。 会看到类似于以下内容的错误: VMware Workstation和Device / Credential Guard不兼容。禁用Device / Credential Guard后,可以运行VMwar...

Hern(宋兆恒) 39万+

特征提取 Features Extraction

介绍了特征提取的基本概念,从分类变量,文本信息和图片信息中进行特征提取的方法,以及实现特征提取的类库

JasonH2021的博客 1万+

Python造数据模板

注:需要下载cyaron第三方库!!! 这个项目时洛谷开发的哟!详情请见:https://www.luogu.org/discuss/show/11410 from cyaron import * #i从1循环到3 for i in range(1,4): #创建文件,文件名为“heat” test_data=IO(file_prefix="heat", data_...

alobjgo278266549的博客 551

Aurora8b10b光口通信实战:复位时序与IP核配置详解

本文深入解析了Aurora 8B10B协议在FPGA高速光口通信中的核心实践,重点剖析了确保链路稳定启动的关键复位时序与IP核配置细节。通过详解全双工与单工模式下的复位流程、Vivado中IP核的物理层与链路层参数设置,并结合用户逻辑设计实例,为工程师实现可靠的高速数据传输提供了清晰的实战指南。

weixin_29280219的博客 177

Python 造数据,对拍利器

OI选手福利来了! 使用Python,让你在考场上如虎添翼!

Sun 3169

运用AD进行stm32最小系统PCB图的绘制

运用AD进行stm32最小系统PCB图的绘制一、PCB图的绘制(1)布局(2)布线(3)覆铜(4)电气规则检查二、给PCB添加logo三、生成garber文件总结 一、PCB图的绘制 (1)布局 1.画好原理图后,新建一个PCB项目 2.在Design中选择第二项,导入器件 3.先点击右下角第一项,再点第二项导入器件 导入成功 4.导入后效果 选择紫红色方框,按电脑上的delete键把它删掉 5.在Tools选择Outside Board,自动排布器件 排布后效果如图 6.画线,确定板子范围

lucario1的博客 2149

(1)大蚂蚁即时通讯

即时通讯软件BigAnt(大蚂蚁)是杭州艾朴软件推出的一个”企业级”的即时通讯平台。该平台专为企业,其他企事业单位和政府单位而设计,目的就是为了增强内部沟通能力,提高内部员工的工作效率;同时服务器就直接置于单位内部,所有信息由单位自己管理,让单位以更安全、更可伸缩和更易于管理的方式灵活方便地使用协同和通信服务的功能! BigAnt(大蚂蚁)即时通讯软件包括服务器端和客户端。客户端功能包括单位

少安的砖厂 2234

OJ测试数据生成器

多叉树生成器

上山打老虎的博客 2983

11、Windows Autopilot 部署与设备注册全攻略

本文详细介绍了Windows Autopilot的完整部署流程,涵盖注册配置文件设置、注册状态页面(ESP)配置、设备注册方法(包括CSV导入、JSON注入、在线注册等)、自动化脚本实现及故障排除技巧。通过手动与PowerShell自动化两种方式指导用户完成配置,并提供流程图、最佳实践和常见问题解答,帮助IT管理员高效实现设备零接触部署与管理。

ii567的博客 342

洛谷P5147 随机数生成器 题解

摘要 本文研究了递归函数work(n)的期望值计算问题。该函数使用随机数生成器rand(1,x)递归调用自身,直到参数为1时返回0。通过建立递推关系式,发现期望值$\mathbb{E}_x$遵循调和级数规律。求解方法包括: 推导出$\mathbb{E}x = \mathbb{E}{x-1} + \frac{1}{x-1}$的关系式 利用调和级数性质 采用分段打表策略(每1e7个值打表)优化计算 结合预处理表值和局部暴力计算来高效求解任意n的期望值

Hans_Jiang_jnrz的博客 743

uni-app - 最新实现将 uniapp 项目打包编译为 H5 网站,并上传部署到 web 服务器进行发布预览(从打包到发布完整流程步骤,Hbuilder 编译打包 h5 发行到 web 服务器)

uniapp,打包h5,打包编译H5网站,怎么打包h5,uniapp打包成H5部署到服务器教程,uniapp打包H5页面发布到服务器,uniapp开发,打包成H5部署到服务器_uniapp打包h5,uniapp如何打包h5项目,怎么把项目打包成H5,uniapp如何打包成H5并且放到web端上,打包成h5部署到服务器的步骤,打包发行到h5报错怎么办,如何将uniapp打包的h5网站放到服务器上,编译打包后怎么放到web服务器中,如何将uniapp开发的H5打包并部署到服务器,部署使用uniapp开发的h5

🏆 前端领域优质创作者 1万+

MATLAB 基于深度学习的步态识别算法仿真

步态识别是一种通过分析人体行走方式来识别身份的技术。基于深度学习的步态识别算法利用卷积神经网络 (CNN) 提取步态特征,并通过分类器进行身份识别。基于深度学习的步态识别算法是实现身份识别的重要手段,具有广泛的应用前景。MATLAB 提供了丰富的工具和函数,可以方便地进行算法仿真和性能评估。

走向CTO的路上... 518

[洛谷P5147]随机数生成器

题目大意:$$f_n=\begin{cases}\frac{\sum\limits_{i=1}^nf_i}n+1&(n>1)\\0&(n=1)\end{cases}$$求$f_n(n<2^{31})$ 题解:考虑$n>2$时的情况。 $$f_n=\dfrac{\sum\limits_{i=1}^nf_i}n+1\\nf_n=\sum\limits_{i=1}^...

weixin_30699235的博客 126

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

信息竞赛 OI比赛 造数据、测试数据 生成工具 汇总

信息竞赛 OI比赛 造数据、测试数据 生成工具 汇总

青少年趣味编程 7721

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Cyaron:一款高效的代码高亮与语法检测工具

是一个强大的开源项目,致力于提供高质量的代码高亮和编程语言语法检查功能。由Luogu团队开发并维护,它被广泛应用于在线编程平台、教育系统以及个人博客等领域,为开发者和学习者提供了便利的代码展示和校验服务。 ## 技术分析 Cyaron 基于 Rust 语言编写,这使得它具有天然的性能优势和内存安全性。它采用了自定义的解析器和词法分析器来处理不同编程语言的代码,可以准确地识别和高亮各种语言的关键...

gitblog_00066的博客 778

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【趣味】一个将任意数字分解成 114514 构成的公式的工具

一个将任意数字分解成 114514 构成的公式的工具

WillHou的博客 1万+

Python生成随机浮点数方法之一random

Python生成随机浮点数方法之一random

m0_72893325的博客 3029

【c++项目】信息学奥赛数据生成器

一个程序帮你快速生成数据!

apple_66764880的博客 1712

【NOI2012】随机数生成器

Description栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m, a, c, X0,按照下面的公式生成出一系列随机数< Xn >:Xn+1=(aXn+c) mod m其中 mod m 表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由

sadnohappy 537

【洛谷P2044】随机数生成器

题目描述 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: X[n+1]=(aX[n]+c) mod m 其中mod m表示前面的数除以m的余数。从...

weixin_30699235的博客 274

恶臭数字论证器:让任何数字秒变114514公式的终极工具

恶臭数字论证器是一款有趣的数字恶臭化工具,能够将任意数字分解成由114514构成的公式。无论是学习数学、娱乐还是满足好奇心,这款工具都能为你带来独特的体验。 ## 快速上手:一键实现数字恶臭化 使用恶臭数字论证器非常简单,只需在输入框中输入任意数字,工具就会自动将其转换为包含114514的公式。无需复杂的操作,轻松实现数字的恶臭化转换。 ### 简单使用步骤 1. 打开工具页面,你会看到一

gitblog_00432的博客 1132
上一篇: 洛谷-2922 [USACO08DEC]秘密消息Secret Message
下一篇: 洛谷-5154 数列游戏
mkopvec
博客等级 码龄8年 22粉丝 331原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值