ACM入门教程(2-数学问题).ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

2024/5/61ACM程序竞赛入门

开课号:85019授课教师:王英姿

2024/5/62第二讲数学问题

2024/5/63引例:本校OJ1207

〔相似题〕杭电1018,求n!的位数

Inmanyapplicationsverylargeintegersnumbersarerequired.Someoftheseapplicationsareusingkeysforsecuretransmissionofdata,encryption,etc.Inthisproblemyouaregivenanumber,youhavetodeterminethenumberofdigitsinthefactorialofthenumber.

2024/5/64InputInputconsistsofseverallinesofintegernumbers.Thefirstlinecontainsanintegern,whichisthenumberofcasestobetested,followedbynlines,oneinteger1≤m≤107oneachlineOutputTheoutputcontainsthenumberofdigitsinthefactorialoftheintegersappearingintheinput.SampleInput21020SampleOutput719

2024/5/65如何求位数?算出阶乘,循环求位数?阶乘怎么存储?一定要算出阶乘吗?n!的位数:(int)log10(n!)+1(int)(log10(1)+log10(2)+log10(3)+…+log10(n))+1

2024/5/66代码怎么写?超时问题怎么解决?能不能降低计算量?有没有更简便的公式?

2024/5/67《计算机程序设计艺术》中给出了另一个公式??n!=sqrt(2*π*n)*((n/e)^n)*(1+1/(12*n)+1/(288*n*n)+O(1/n^3))??π=acos(-1)e=exp(1)两边对10取对数忽略log10(1+1/(12*n)+1/(288*n*n)+O(1/n^3))≈log10(1)=0得到公式??log10(n!)=log10(sqrt(2*pi*n))+n*log10(n/e)

2024/5/68如果不知道高效的计算公式?(int)(log10(1)+log10(2)+log10(3)+…+log10(n))对于每个输入的数都要按上述公式计算如何防止重复计算?先算小数的位数,在此根底上再算大数。〔1〕每次找最小值?需要存储数据和位数的计算〔2〕先把算出的log10存储?

2024/5/69数学问题的特点:题意容易理解;数学关联性一般比较大;语言的关联性相对较小;但有时需要相关策略来躲避过高的复杂度。要注意复杂度问题;适合ACM/ICPC入门练习。每次竞赛一般会有1-2个数学问题。

2024/5/610常用单词:1、integer整数〔不一定就是32位的〕2、positive正的3、negative(adj)负的;(n)负数4、factorial(n)阶乘;(adj)因子的,阶乘的5、digital(n)数字;(adj)数字的6、multiple倍数7、multiplication乘法运算

2024/5/611常用单词:〔图形相关〕1、vertex(vertices)顶点2、polygon多边形3、convex凸的4、concave凹的5、segment(线)段〔n〕;分割〔v〕

2024/5/612数学问题

〔分类分析〕

2024/5/613第一类简单问题

2024/5/6141288电梯

不管在什么事情上,总是想方设法给自己带来方便。于是在一幢古老楼房的电梯里就发生了争吵事件。大家都想在自己住的这一层停下〔因为电梯在上升的过程中只能停下一次,之后就只能返回到地下车库了〕。争吵给保安带来了麻烦,所以保安想请你编个程序。当人们每次进入电梯,统计一下人数,再统计一下到每层的人数就计算出电梯到哪一层停最合理〔当人从高往低走时,走一层要花3点力量

文档评论(0)

199****4744 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档