Hdu 3903 Trigonometric Function(3)
来源:互联网 发布:灵沃软件培训 编辑:程序博客网 时间:2024/05/16 06:34
这道题关于分子已经是有理数的证明过程就不写了,另外想说的一点就是关于强制转换,比方说int a,b;long long sum;
要计算(a*a+b*b),在a*a+b*b有可能超出int范围时,强制转换成long long时,下面的做法是错误的:
sum=(long long)(a*a+b*b)
因为超出以后已经变成负数了,在强制也还是负的;应该这样:
sum=(long long)a*a+b*b;
这样,在计算过程中转化为long long了;以前在这个问题上是个误区,谨记。。
证明:
引理1:若cosA 为有理数,n 为整数,则cos(nA)也为有理数。
证:n=1,2 时,cos(nA)为有理。
若 n=1..k 时均成立,即n<=k 时,cos(nA)为有理数,此时有cos(kA) =
cos((k-1)A)*cos(A) - sin((k-1)A)*sin(A),故sin((k-1)A)*sin(A)
有理。
当 n=k+1 时:
有cos((k+1)A) = cos((k-1)A)*cos(2A) - sin((k-1)A)*sin(2A) =
cos((k-1)A)*cos(2A) - sin((k-1)A)*2*sinA*cosA.
由于sin((k-1)A)*sin(A)与cos(nA)(其中n<=k)有理.
故cos((k+1)A)有理,所以对所有正整数n,cos(nA)为有理数,由此可得对
所有整数n,cos(nA)为有理数。证毕
引理 2:若cosA 为有理数,则sin(nA) = u*sinA,其中u 为一有理数。
证:n=1 时成立。
若 n=k 成立,即sin(kA)=u*sinA,其中u 为有理数,则sin((k+1)A) =
sin(kA)*cosA + sinA*cos(kA) , 由引理1 得cos(kA) 有理, 故
sin((k+1)A) = (u*cosA+cos(kA)) * sinA = v*sinA 中的v 为有理
数,得证。
#include<stdio.h>#include<math.h>int main(){ int t,a,b,c,n,m,k; long long int sum,p; scanf("%d",&t); while(t--) { scanf("%d%d%d%d%d%d",&a,&b,&c,&n,&m,&k); sum=(4ll*a*a*b*b)-((long long )a*a+b*b-c*c)*((long long)a*a+b*b-c*c); p=(long long)sqrt((double)sum); if(p*p==sum) printf("YES\n"); else printf("NO\n"); } return 0;}
- Hdu 3903 Trigonometric Function(3)
- HDU 3903 - Trigonometric Function
- hdu 3903 Trigonometric Function
- HDU 3903 Trigonometric Function
- hdu 3903 Trigonometric Function (数学题)
- HDU 3903 Trigonometric Function(数学定理)
- HDU/HDOJ 3903 Trigonometric Function 多校联合7
- HDU 3903 Trigonometric Function (三角恒等式&余弦定理)
- Trigonometric Series
- HDU-Function
- Function HDU
- hdu 6156 palindrome function #数位dp 3
- HDU The Euler function
- hdu --- The Euler function
- HDU 5609 function
- HDU 5674 Function
- HDU 5875 Function
- hdu 5875 Function(multiset)
- SQL经典面试题及答案
- linux检测网络故障以及恢复网络的方法
- unix中管道符
- Adobe Flash CS5 快捷键
- Linux 配置文件说明
- Hdu 3903 Trigonometric Function(3)
- 个人遇到的问题总结
- hdu1102类似hdu1879
- Custom UIView 要重定的方法
- liunx添加用户,用户组,密码
- 面试sql
- Thread-Local Storage
- 关于BitmapFactory.decodeStream(is)方法无法正常解码为Bitmap对象的解决方法
- 交叉工具链的安装和使用