解不等式之平方根不等式
来源:互联网 发布:手机离线下载软件 编辑:程序博客网 时间:2024/04/28 11:39
对指定的正数n,试求满足以下平方根不等式的正整数;
√m+√(m+1)+√(m+2)+···+√(2*m)>=n
1.说明:
显然不等式左边是m的增函数,因而对于指定的正数n设置m循环,m从1开始递增1取值,对每一个m求和:
s(m)=√m+√(m+1)+√(m+3)+···√(2*m)
如果s(m) < n;
m增1后继续按上式求和判别,直至s>=n时输出不等式的解。
2.程序设计:
(1).应用循环设计求解;
#include<stdio.h>#include<math.h>void main(){ long i,m; double n,s,s1; printf("请输入正数n(n>3):"); scanf("%lf",&n); /*输入任意正数*/ m=0; while(1) { m++; s=0; for(i=m;i<=2*m;i++) s+=sqrt(i); /*对每一个m计算和s*/ if(s>=n) break; else s1=s; /*为以下注明提供依据*/ } printf("不等式的解为:m>=%ld\n",m); printf("注:当m=%ld时,s=%.2f;当m=%ld时,s=%.2f\n",m-1,s1,m,s); getch();}
(2).应用递推设计求解;
事实上,可以建立s(m)与s(m-1)之间的递推关系,应用递推简化求解平方根不等式。
对于m-1与m,累加和s(m)与s(m-1)显然满足以下递推关系:
s(m)=s(m-1)-√(m-1)+√(2* m-1)+√(2* m)
初始条件:s(1)=1+√2
因此,前面程序设计中的双循环可简化为单循环,程序效率得以大大提高。
#include<stdio.h>#include<math.h>void main(){ long m; double n,s,s1; printf("请输入正数n(n>3):"); scanf("%lf",&n); m=1; s=1.0+sqrt(2); do { m++; s1=s; s=s-sqrt(m-1)+sqrt(2*m-1)+sqrt(2*m); }while(s<n); printf("不等式的解为:m>=%ld\n",m); printf("注:当m=%ld时,s=%.2f;当m=%ld时,s=%.2f\n",m-1,s1,m,s); getch();}
3.程序运行示例及其注意事项:
请输入正数n(n>3):2017
不等式的解为:m>=140
注:当m=139时,s=2011.83;当m=140时,s=2033.48
注意:以上程序中的“注”对解不等式并不是必要的,只是为了说明不等式解。同时,输入的数不限定为整数,可为任意正数(约定n>3)。
0 0
- 解不等式之平方根不等式
- 解不等式之调和级数不等式
- 解不等式之代数和不等式
- 不等式
- 不等式
- 不等式
- 解一元二次不等式
- MATLAB 解不等式组
- 【枚举算法】解不等式
- Schwarz不等式 三角不等式
- 四边形不等式之石子归并
- 平方根不等式中的陷阱与反思 c语言
- 均值不等式用于解方程
- 情感不等式
- 美好生活不等式
- Jensen不等式
- 三角不等式
- 四边形不等式
- C#+ArcEngine:打开Mxd地图文档
- 移动端meta几个值的设置以及含义
- unity中根据鼠标移动旋转物体
- 第十四周OJ项目B输入一个数并按序数插入
- W: 无法下载 http://ppa.launchpad.NET/fcitx-team/nightly/ubuntu/dists/jessie/main/binary-amd64/Packages
- 解不等式之平方根不等式
- Constant expression required
- combineByKey报错 unsupported oprand t
- 第十三周 进制转换(十进制转二进制)
- C语言常见陷阱之“纠缠不清的位域”
- jq采用href提交表单
- 创建unique时,约束和索引有何区别。唯一约束和唯一索引区别,选项"忽略重复键"作用
- oracle workflow 使用plsql推送代办
- Java-RPC:3)Netty入门初窥