关于Online Judge题目tick and tick的数学公式推导
来源:互联网 发布:儿童电脑画图软件 编辑:程序博客网 时间:2024/05/17 22:35
题目大意:
一个钟的三个指针在不停的转动,他们已经厌烦了这样,当他们互相的距离角度大于等于D时,他们会很开心,问一天之中他们happy的时间占总时间的概率。
我觉得这是在解不等式,我原来使用的暴力破解,毫无疑问失败了;我们只要找到某一分钟内,他们happy的时间,然后钟每过12个小时相当于43200秒复原一次。因此总时间就是43200白秒,只要求出在这43200的happy时间,答案就知道了;
假设现在的时钟是h小时,m分钟,s秒,给定的角度为degree;则列出happy的不等式有
时针到0时刻的角度的实际值为hw = (h+m/60+s/3600)*30,分针的角度mw = (m+s/60)*6,秒针的角度为sw = s*6;则他们都happy的条件为
degree<|hw -mw|<360 - degree;
degree<|hw - sw|<360 - defgree;
degree<|sw - mw|<360 - degree ;
解这三个不等式即可得到s的区间,把区间的最大值减去最小值就是happy的时间,把每小时每分钟的happy时间再叠加,就是总的happy时间了,再除以总时间的百分比并保留三个小数就是答案。
interval solve(double v,double a){//解方程 //Angle<=v*t+a<=360-Angle;,并且和[0,60]取交集 interval p; if(v>0){ p.l=(Angle-a)/v; p.r=(360-Angle-a)/v; } else{ p.l=(360-Angle-a)/v; p.r=(Angle-a)/v; } if(p.l< 0)p.l= 0; if(p.r>60)p.r=60; if(p.l>=p.r)p.l=p.r=0; return p; } interval jiao(interval a,interval b){ interval p; p.l=max(a.l,b.l); p.r=min(a.r,b.r); if(p.l>=p.r)p.l=p.r=0; return p; } /*解方程 Angle<=|hh-mm|<=360-Angle*/ /* Angle <= |30*h + m/2 + s/120 - 6*m - s/10| <= 360-Angle*/ v_diff= 1.0/120.0 - 1.0/10.0; //second a_diff= 30*h + m/2.0 - 6.0*m; //时针分针夹角 s0[0][0]=solve( v_diff, a_diff); s0[0][1]=solve(-v_diff,-a_diff); /*解方程 Angle<=|hh-ss|<=360-Angle*/ /* Angle<=|30*h + m/2 + s/120 - s*6|<=360-Angle */ v_diff= 1.0/120-6.0; a_diff= 30*h+m/2.0;//时针秒针夹角 s0[1][0]=solve( v_diff, a_diff); s0[1][1]=solve(-v_diff,-a_diff); /*解方程 Angle<=|mm-ss|<=360-Angle*/ /*Angle<=|6*m + s/10 - s*6|<=360-Angle*/ v_diff=1/10.0 - 6; a_diff= 6*m;//分针秒针夹角 s0[2][0]=solve( v_diff, a_diff); s0[2][1]=solve(-v_diff,-a_diff);
根据上述代码我们不难看出这个不等式 Angle <= | ax + b| <=360 - Angle 被转换为:
Angle <= ax + b < 360 - Angle && Angle <= -ax -b <= 360 - Angle,由于这个数学公式在高中学的,差不多还给老师了,于是自己有推算了一遍,如下图:
0 0
- 关于Online Judge题目tick and tick的数学公式推导
- Tick and Tick
- hdoj_1006 Tick and Tick
- hdu-Tick and Tick
- hdu1006-Tick and Tick
- 1006 tick and tick
- hdu1006 Tick and Tick
- 1006-Tick and Tick
- zoj 2106 Tick and Tick(比较好的数学题目,代码特麻烦,注意精度)
- HDU 1006 Tick and Tick
- HDOJ 1006 Tick and Tick
- HDU 1006 Tick and Tick
- hdu 1006 Tick and Tick
- [HDU]1006 Tick and Tick
- [杭电]Tick and Tick
- HDU 1006 TICk and TICK
- HDOJ1006 Tick and Tick题解
- HDU 1006 Tick and Tick
- Ajax解析html、xml、json、js原生方式、jquery方式
- Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
- JavaScript语言特性
- Dragon of Loowater UVA
- URL模拟登陆出现的小问题(新手)
- 关于Online Judge题目tick and tick的数学公式推导
- 水题-find q
- python模块win32com下载
- TabLayout和Viewpage连用
- 天梯赛练习——到底有多二
- 因为这游戏一旦开始 从未有谁能够把它停下
- iOS开发:UIButton的两个小坑
- 图形学基础(3)——模型变换动画
- 98:Maximal Rectangle