Bailian1183 POJ1183 反正切函数的应用【迭代计算】
1183:反正切函数的应用
总时间限制: 1000ms 内存限制: 65536kB
描述
反正切函数可展开成无穷级数,有如下公式
(其中0 <= x <= 1) 公式(1)
使用反正切函数计算PI是一种常用的方法。例如,最简单的计算PI的方法:
PI=4arctan(1)=4(1-1/3+1/5-1/7+1/9-1/11+…) 公式(2)
然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式:
tan(a+b)=[tan(a)+tan(b)]/[1-tan(a)*tan(b)] 公式(3)
通过简单的变换得到:
arctan§+arctan(q)=arctan[(p+q)/(1-pq)] 公式(4)
利用这个公式,令p=1/2,q=1/3,则(p+q)/(1-pq)=1,有
arctan(1/2)+arctan(1/3)=arctan[(1/2+1/3)/(1-1/2*1/3)]=arctan(1)
使用1/2和1/3的反正切来计算arctan(1),速度就快多了。
我们将公式(4)写成如下形式
arctan(1/a)=arctan(1/b)+arctan(1/c)
其中a,b和c均为正整数。
我们的问题是:对于每一个给定的a(1 <= a <= 60000),求b+c的值。我们保证对于任意的a都存在整数解。如果有多个解,要求你给出b+c最小的解。
输入
输入文件中只有一个正整数a,其中 1 <= a <= 60000。
输出
输出文件中只有一个整数,为 b+c 的值。
样例输入
1
样例输出
5
来源
Noi 01
问题链接:Bailian1183 POJ1183 反正切函数的应用
问题描述:(略)
问题分析:
留个解题程序代码,不解释。
程序说明:
需要注意变量类型,不用long long类型计算数据会溢出。
参考链接:(略)
题记:(略)。
AC的C语言程序如下:
/* Bailian1183 POJ1183 反正切函数的应用 */#include <stdio.h>int main(void)
{long long a, m;scanf("%lld", &a);for(m = a; ; m--)if(!((a * a + 1) % m))break;printf("%lld\n", 2 * a + m + (a * a + 1) / m);return 0;
}
Bailian1183 POJ1183 反正切函数的应用【迭代计算】相关推荐
- 【C语言】第五章 迭代计算与循环结构 题解
第五章 迭代计算与循环结构 1.代码如下: #include <stdio.h>int main() {double sum = 0, prev = 1, next = 2, temp;f ...
- 4.2 算法之数论 185 反正切函数的应用 scratch
http://noi.openjudge.cn/ch0402/185/ /* 4.2 算法之数论 185 反正切函数的应用 http://noi.openjudge.cn/ch0402/185/ */ ...
- 4.2 算法之数论 185 反正切函数的应用 python
http://noi.openjudge.cn/ch0402/185/ """4.2 算法之数论 185 反正切函数的应用 http://noi.openjudge.cn ...
- 按比例算出成绩 用c语言,Excel按指定比例生成学生总分,并迭代计算出各学科分数...
这篇博文题目很拗口,主要是因为这次做的表实在有点奇葩,很难用一两句话表达清楚.最近做个了个学生成绩表,不是真实存在的成绩,而是生成出来的,为了模拟得更像真的,费了不少力气.下面总结一下,备忘. 闲话少 ...
- POJ 1183 反正切函数的应用
Language:Default 反正切函数的应用 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12424 Accep ...
- python迭代计算pi_python使用三角迭代计算圆周率PI的方法
本文实例讲述了python使用三角迭代计算圆周率PI的方法.分享给大家供大家参考.具体如下: 方法1: # Calculating PI using trigonometric iterations ...
- 高精度反正切函数的实现
反正切函数的根本实现方法还是泰勒展开式逼近,但它不能单独采用,必须使自变量X趋进这个函数曲线的平滑度最高的点,这个点的收敛速度最快,反正切函数arctan(x)的这个点是0和无穷大. 这里采用趋近零的 ...
- Flink之DataSet迭代计算
目录 (1)迭代计算分类与原理 (2)全量迭代计算详解 (2.1)案例分析 (2.2)案例实战 (3)增量迭代计算详解 (1)迭代计算分类与原理 迭代计算在批量数据处理过程中的应用非常广泛,如常用的机 ...
- 递归计算过程与迭代计算过程
最近重新看SICP,写点感想.下面是关于递归与迭代计算的一些知识,SICP 1.2.1. 递归 递归是实现程序计算过程中的描述过程的基本模式之一,在讨论递归的问题前我们必须十分小心,因为递归包含两个方 ...
最新文章
- Android常用知识点回顾
- Understanding the Framework (理解FMS框架)
- Word的常用功能设置(
- SQL AUTO INCREMENT 字段
- Centos Apache服务搭建
- ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...
- Apollo进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战
- matlab求RMSECV,CARS 用于matlab模式识别(分类和回归)的特征变量提取方法 联合开发网 - pudn.com...
- sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载
- mysql批量取消多行sql_mysql批量删除指定前缀的表,批量修改表名的SQL语句
- python *args用法_python函数参数*args**kwargs用法实例
- 专家:未来三年为转云时间窗口
- c语言跑马灯循环三次停止,跑马灯代码 连续不间断的跑马灯的代码(js)
- C++ 正则获取url中参数
- echarts社区饼图 echart饼图 玫瑰图
- vue表格中的内容换行与导出Excel换行
- 【论文导读】Causal Protein-Signaling Networks Derived from Multiparameter Single-Cell Data
- 服务器装机选哪个系统好,服务器该装08系统好还是03系统好?
- WIN10键盘无法使用,什么按键都不管用
- 如何用Python画一只狗狗——turtle基础
热门文章
- Nginx——安装与虚拟主机配置(域名非80端口问题)
- 苹果本Win10双系统开启CPU虚拟化
- Fission:基于 Kubernetes 的 Serverless 函数框架
- 基于libmemcached为php扩展memcached服务
- [ANE for Android]Java接口部分引用第三方JAR的解决办法
- Android中RelativeLayout及TableLayout使用说明
- 为什么eolinker发送老是等待_eolinker环境管理之开发、测试和生产环境
- IDEA工作常用快捷键
- Mysql执行计划2
- Android多线程--AsyncTask