当前位置: 首页 > wzjs >正文

自我介绍网页郑州靠谱seo整站优化

自我介绍网页,郑州靠谱seo整站优化,免费网站后台管理系统模板,wordpress 不能拖动了一、实数二分法回顾 1.1问题背景 在1~2的范围内找到一个x&#xff0c;使得式子5x2 -9x 1 的绝对值<10-9&#xff08;即无限接近0&#xff09; 要求&#xff1a;x精确到小数点后9位。 换句话说也就是求&#xff1a;就是求方程 5x2- 9x 1 0 在1~2内的近似解 1.2怎么找到…

一、实数二分法回顾

1.1问题背景

在1~2的范围内找到一个x,使得式子5x2 -9x +1 的绝对值<10-9(即无限接近0) 要求:x精确到小数点后9位。

换句话说也就是求:就是求方程  5x2- 9x + 1 =0 在1~2内的近似解

1.2怎么找到这个x呢?

我们需要一个一个试,关键是:试哪些数?

先试边界1和2

将1、2分别带入下列方程

令y = 5x2 - 9x + 1 ,目标:|y| <10-9

得到y=-3、y=3

下一个试谁呢?

将x=1.5带入y = 5x2 - 9x + 1

1.3接下来我们往左边试还是往右边试?

应该往右试:

我们接下来要做的就是反复的左右试题x的值,直到y的绝对值小于10的-9次方为止。

1.4 算法实现

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;int main() {double left = 1, right = 2;double x = (left + right) / 2;double y = 5 * x * x - 9 * x + 1;while (abs(y) > 1e-9) {if (y > 0) right = x;  // 解在左侧else left = x;         // 解在右侧x = (left + right) / 2;y = 5 * x * x - 9 * x + 1;}cout << fixed << setprecision(9) << x;return 0;
}

核心特点

  • 终止条件:解的精度达到 1e-9

  • 区间更新:直接赋值 left = x 或 right = x

  • 中间值计算:无需考虑整数溢出问题


二、整数二分法解析

猜数字游戏

输入一个范围在 [1, 1000] 内的数字,让计算机去猜,看使用二分法,计算机需要几次就能猜出来:

#include<iostream>
using namespace std;
int main(){int sum=0;//记录一共猜了几次数 int b=0,e=1000,x=173;//b,e左边界和右边界确定了数据范围,x=173是我们猜的数字 //使用二分法开始猜数 while(b<=e){//左边界小于等于右边界是整数二分的条件 int mid=(b+e)/2;//获取中间值 if(x==mid){cout<<"猜对了"<<endl;break;}else if(mid>x){cout<<"大了"<<mid<<endl; e=mid-1;//更新右边界值 sum++;}else{cout<<"小了"<<mid<<endl; b=mid+1;//更新左边界值 sum++;}}cout<<"一共猜了几次"<<sum;        return 0;
} 

与实数二分的核心差异

特性实数二分整数二分
终止条件精度达到阈值left > right
中间值计算直接取平均需要处理整数除法特性
区间更新直接赋值需要±1操作
内存消耗浮点运算整型运算

三、整数二分经典应用

练习:在数组中查找数字3的位置

问题要求

  1. 输入无序数组

  2. 输出首次出现3的位置(从1开始计数)

  3. 不存在时输出-1

实现方案

#include <iostream>
#include <algorithm>
using namespace std;struct Item {int id;int value;
} a[100];bool cmp(Item a, Item b) {return a.value < b.value;
}int main() {int n;cin >> n;for (int i = 1; i <= n; ++i) {a[i].id = i;cin >> a[i].value;}// 排序保持原始位置sort(a + 1, a + n + 1, cmp);// 二分查找int left = 1, right = n, res = -1;while (left <= right) {int mid = left + (right - left) / 2;if (a[mid].value >= 3) {if (a[mid].value == 3) res = a[mid].id;right = mid - 1;} else {left = mid + 1;}}// 验证是否为首次出现if (res != -1) {for (int i = right + 1; i <= left; ++i) {if (a[i].value == 3) {res = min(res, a[i].id);}}}cout << (res != -1 ? res : -1);return 0;
}

关键点解析

  1. 结构体排序:保存原始位置信息

  2. 查找策略

    • 查找第一个≥3的元素

    • 反向扫描确认首次出现位置

  3. 边界处理:处理多个相同值的情况


四、二分算法适用场景

  1. 有序数据集:单调递增/递减序列

  2. 离散数值查找:整数集合中的定位

  3. 分治问题:最大值最小化/最小值最大化问题

  4. 高效查询:时间复杂度O(log n)


五、常见错误及规避

  1. 死循环问题

    • 确保区间更新有进展

    • 使用标准模板:left = mid + 1 / right = mid - 1

  2. 整数溢出

    int mid = left + (right - left) / 2;  // 正确写法
  3. 边界处理

    • 初始化时明确开闭区间

    • 终止条件验证 left <= right


通过系统掌握实数与整数二分法的实现差异,结合经典应用场景的实战训练,可显著提升算法设计能力与代码实现水平。

http://www.dtcms.com/wzjs/210983.html

相关文章:

  • 河南做网站多少钱域名注册网站系统
  • 服装网站建设效果2023年8月新闻热点事件
  • 买了虚拟主机怎么建设网站表白网页制作免费网站制作
  • 企业网络组网设计方案seo的优缺点
  • 微信上的网站怎么做的吗关键词seo排名公司
  • 摄影作品网站建设方案书网站设计方案模板
  • 网站建设制作放之宁波seo推广服务
  • 关于加强政务网站建设的通知常见的网络营销平台有哪些
  • 电子商务网站b2c开源网站怎么注册个人网站
  • 网站建设后的优势四川seo推广方案
  • 群晖nas安装wordpress南宁seo推广外包
  • 欧亚达网站是哪家公司做的郑州网站优化培训
  • 怎么做网站备案八百客crm系统登录入口
  • 网页设计基础填空题及答案石家庄网络推广优化
  • 做网站 服务器多少钱一年深圳做网站公司
  • 个人网站示例营销推广是干什么的
  • 免费的产品展示小程序seo工具有哪些
  • 新疆做网站的公司排名营销推广的工具有哪些
  • 装饰网站建设流程长沙网站推广公司
  • 自己做网站制作需要多少钱网络营销与直播电商就业前景
  • wordpress 评论头像不显示网站优化方案案例
  • 北京网站建设的服务公司深圳全网营销哪里好
  • 房产网签备案查询网站推广优化外包公司
  • 做网站时最新菜品的背景图软文推广代理
  • 网站开发建设招聘要求网站源码交易平台
  • 厦门知名网站建设新闻式软文经典案例
  • tomcat做公司网站厦门关键词优化企业
  • 如何做一个网页调查网站外部优化的4大重点
  • 网站上的节日主题怎么做整站优化cms
  • 怀化网站建设网站4p 4c 4r营销理论区别