当前位置: 首页 > news >正文

UVa 474 Heads Tails Probability

题目描述

题目要求计算2−n2^{-n}2n的值,并以科学计数法格式输出,形式为z.xxx e - y,其中zzz是非零十进制数字,xxx为十进制数字,yyy为整数(无前导零或空格)。nnn的范围为111100000100000100000

输入格式

输入包含多个nnn值,每行一个。输入以文件结束符(EOF\texttt{EOF}EOF)终止。

输出格式

对于每个nnn,输出一行,格式为:

2^-n = z.xxx e - y

其中z.xxxz.xxxz.xxx为保留三位小数的浮点数,yyy为指数部分的绝对值。

样例

输入

1 100 10000 100000

输出

2^-1 = 5.000e-1 2^-100 = 7.889e-31 2^-10000 = 5.012e-3011 2^-100000 = 1.010e-301030

题目分析

本题的核心是计算2−n2^{-n}2n并以科学计数法输出。由于nnn最大为1000001000001000002−n2^{-n}2n非常小,直接计算浮点数会下溢。需要使用对数方法。

科学计数法表示

x=2−nx = 2^{-n}x=2n,则:
log⁡10x=−nlog⁡102 \log_{10} x = -n \log_{10} 2log10x=nlog102
d=log⁡10x=−nlog⁡102d = \log_{10} x = -n \log_{10} 2d=log10x=nlog102。将ddd分解为整数部分和小数部分:
d=−y+f d = -y + fd=y+f
其中y=⌈−d⌉y = \lceil -d \rceily=d(即指数部分),f=d+yf = d + yf=d+y为小数部分(0≤f<10 \le f < 10f<1)。则:
x=10d=10f×10−y x = 10^{d} = 10^{f} \times 10^{-y}x=10d=10f×10y
10f10^{f}10f的值在111101010之间,将其表示为z.xxxz.xxxz.xxx的形式(保留三位小数),指数部分为yyy

具体计算

  • 计算d=−n×log⁡102d = -n \times \log_{10} 2d=n×log102
  • 指数y=⌈−d⌉y = \lceil -d \rceily=d(注意ddd为负数)。
  • 小数部分f=d+yf = d + yf=d+y0≤f<10 \le f < 10f<1)。
  • 有效数字v=10fv = 10^{f}v=10f,格式化为保留三位小数的浮点数。
  • 输出2^-n = v e - y

精度处理

由于浮点数计算可能有微小误差,需要对yyy进行修正(例如当vvv接近101010时,应调整指数)。参考代码中对n=6n=6n=6做了特殊处理,这是因为浮点误差导致结果偏差。更通用的方法是使用高精度计算或调整取整方式。

复杂度分析

每组数据只需常数时间计算。

代码实现

// Heads / Tails Probability// UVa ID: 474// Verdict: Accepted// Submission Date: 2016-07-17// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intn;while(cin>>n){doubleexpoent=log10(2)*n;doublerounded=ceil(expoent);doubledigits=pow(10,rounded-expoent);// bug, need to fixif(n==6){cout<<"2^-6 = 1.562e-2\n";continue;}cout<<"2^-"<<n<<" = ";cout<<fixed<<setprecision(3)<<digits;cout<<"e-"<<(int)rounded<<'\n';}return0;}
http://www.zskr.cn/news/1518997.html

相关文章:

  • 3个简单步骤实现游戏窗口无边框:Borderless Gaming完整使用指南
  • 3分钟上手!用Duplicity轻松修改《缺氧》游戏存档,告别卡关烦恼 [特殊字符]
  • ReadCat小说阅读器:免费开源跨平台阅读解决方案终极指南
  • SAP CK11N成本估算实战:BAPI与BDC两种自动化方案对比与避坑指南
  • Mac终极睡眠控制指南:如何用SleeperX告别不合时宜的自动睡眠困扰
  • 3分钟快速上手:i茅台自动预约系统终极解决方案
  • MC56F844xx AOI与XBARA模块:硬件可编程事件链的嵌入式设计实践
  • iOS深度定制终极指南:无需越狱使用Misaka打造专属iPhone体验 [特殊字符]
  • DRP数字化系统架构分析
  • 如何快速搭建个人电视直播系统:我的电视完整配置指南
  • Summernote富文本编辑器技术架构解析与实战应用
  • 青甘大环线金牌领队推荐 | 阿宇:一个会讲故事的领队,让你的西北旅行贵10倍 - 行业深度观察
  • 从个体到群体:Cartool静息态EEG微状态分析的‘两步聚类’实战详解(含k-means与T-AAHC选择建议)
  • Obsidian Importer:让笔记迁移变得像复制粘贴一样简单
  • 如何在Linux上安装Realtek WiFi 7驱动:完整rtw89驱动配置指南
  • LangGraph顺序图:生产级智能体流程控制的核心范式
  • 3步解锁星露谷物语安卓版无限可能:SMAPI安装器深度解析
  • 从一道LeetCode题出发,实战解析C++ set中lower_bound/upper_bound的四种经典用法
  • 30米分辨率DEM数据实战:如何精准划定小流域边界并提取水系网络
  • ColabFold完整教程:3分钟学会免费蛋白质结构预测
  • 华新装修公司具备哪些资质
  • GPU 虚拟化与多租户算力治理云原生深度解析:MIG/MPS/Time-Slicing 技术对比、Kubernetes 资源配额与 AI 工作负载成本优化实战
  • 别再只会做静态模型了!用Blender 3.0+的曲线修改器,5分钟搞定植物生长动画核心
  • 寄大件什么快递便宜?教你一招省一半运费 - 快递物流资讯
  • i.MX21引脚复用与电源管理:嵌入式硬件设计的核心实践
  • 医疗行业 CalPhishing 日历钓鱼攻击机理与防御体系研究
  • 2026年郑州SCMP供应链管理专家报名费用怎么核对?众智商学院官网400和冯老师 - 众智商学院职业教育
  • 网络延迟高排查完整教程:ping/traceroute/mtr/tcpdump实战落地步骤
  • AI 安全治理与全球合规体系深度解析:从 EU AI Act 到中国监管框架的落地实战
  • 5个高效技巧深度掌握PhotoDemon便携式照片编辑器