博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九度 1551 切蛋糕(数学)
阅读量:6609 次
发布时间:2019-06-24

本文共 1102 字,大约阅读时间需要 3 分钟。

有如下图半价为R的圆形蛋糕,被切一刀后(图中红色直线),分成两个部分(黄色和绿色),已知其比例为r,求刀痕长度(图中红色直线)。

 

思路

1. 画个图比划比划, 可以看出是道数学题

2. 将刀痕的长度设成 l, 就能建立等式, 接下来就是求 l 了

3. 写成等式后需要以编程的角度出发求解未知数 l, 很自然就能联想到二分法搜索, 但是需要从数学的角度去证明 L 在区间 (0, R) 是单调的

4. 再看图, 发现不需要求导数证明单调, L 越大黄色部分越大, L 越小黄色部分越小, 单调性是 straight forward

5. 对 double 进行二分搜索还是第一次做, 二分后对 low, high 更新时, 我随手取了 0.0001, 觉得精度应该差不多

 

代码 未通过九度测试

#include 
#include
#include
using namespace std;const double PI = 3.14159;double r, l, h;double theta, portion;int main() { freopen("H:\\Copy\\workplace_cpp\\tt.txt", "r", stdin); while(scanf("%lf%lf", &r, &portion) != EOF) { double low = 0.00001, high = 2*r; while(low <= high) { l = (low+high)/2; double fff0 = r * r * acos(l/2/r); double fff1 = l * sqrt(r*r-l*l/4) / 2; double fff2 = PI * r * r / 2 * (1-portion) / (1+portion); double fff3 = fff0 + fff1; if(fff3 >= fff2) { low = l + 0.0001; }else{ high = l - 0.0001; } } printf("%0.2f\n", l); } return 0;}

 

 

转载地址:http://mziso.baihongyu.com/

你可能感兴趣的文章
rpm安装PostgreSQL
查看>>
k sum(lintcode)
查看>>
28. extjs中Ext.BLANK_IMAGE_URL的作用
查看>>
Hibernate注解配置N:N关联
查看>>
Android 控件属性
查看>>
【244】◀▶IEW-Unit09
查看>>
处理有外键约束的数据
查看>>
par函数的xaxt函数-控制x轴刻度的显示
查看>>
Unity5.1 新的网络引擎UNET(十五) Networking 引用--中
查看>>
用任务计划管理计划任务对付任务计划-禁止WPS提示升级
查看>>
Android——SlidingMenu学习总结
查看>>
React-Native 之 GD (十六)首页筛选功能
查看>>
UI概念体系要素
查看>>
SSISDB5:使用TSQL脚本执行Package
查看>>
performSelectorInBackground V.S detachNewThreadSelector?
查看>>
linux,Centos,bash: service: command not found
查看>>
【转】UIColor对颜色的自定义
查看>>
php编译报错 configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-...
查看>>
asp.net后台进程做定时任务
查看>>
Ural_1671. Anansi's Cobweb(并查集)
查看>>