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

wordpress更改icon合肥seo排名优化公司

wordpress更改icon,合肥seo排名优化公司,wordpress禁用文章修订,全球购物网站大全前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…

前置

单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。

单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。

三分的本质

三分和二分一样都是通过不断缩小区间范围直到找到要查的值,优化查找值的时间复杂度。二分是在单调序列中查找一个值,三分是在单峰函数或单谷函数中查找极值。

三分有两个mid,可确定极值位置,mid1 = L + (R - L) / 3,mid2 = R - (R - L) / 3。对于单峰函数,当f(mid1) < f(mid2)时,mid1和mid2要么在极值左侧,要么在极值两侧,这两种情况极值一定在mid1右侧,L = mid1,当f(mid1) > f(mid2)时,mid1和mid2要么在极值右侧,要么在极值两侧,这两种情况极值一定在mid2左侧,R  = mid2;

二分没法在单峰函数或单谷函数中查找极值,因为单峰或单谷函数没有单调性,所以需要三分。

能用三分则该问题的某部分是单峰或单谷函数。

三分求解步骤

1.问题的某部分是否具有单峰函数或单谷函数的性质。

2.实现三分

三分基础

P3382 三分 - 洛谷

已明确是单峰函数,可用三分。

代码如下:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;typedef long long LL;const LL Maxn = 15;double vct[Maxn];double func(double x, LL n) {double res = 0.0;double x_pow = 1.0;for (LL i = 0; i <= n; ++i) {res += vct[i] * x_pow;x_pow *= x;}return res;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);LL n;double L, R, eps = 1e-7, mid;cin >> n >> L >> R;for (LL i = n; i >= 0; --i)  cin >> vct[i];while (L + eps <  R) {mid = (L + R) / 2;if (func(mid - eps, n) > func(mid + eps, n))  R = mid;else  L = mid;}cout << fixed << setprecision(5) << L;return 0;
}

注意精度,精度的处理类似实数域中的二分做法。

一般mid1取[L, R]的三分之一位置,mid2取[L, R]的三分之二位置,如此每次区间缩小到区间的三分之二,若mid1,mid2,取[L, R]的二分之一的位置的左右两侧,则区间每次缩小到区间的二分之一左右,时间复杂度接近二分。

三分套三分

P2571 [SCOI2010] 传送带 - 洛谷

两点间中的所有线直线的距离最短,所以都走直线,那么大概走法如下图,只需确定E点和F点即可。

设两点间的直线距离为dis(x, y),走的总距离为S = dis(A, E) / P + dis(E, F) / R + dis(F, D) / Q。设E已知,则只需关心f(E) = dis(E, F) / R + dis(F, D) / Q,若f(E)是个单峰或单谷函数即可用三分查找F的最优解,此时 S = dis(A, E) / p + f(E),若dis(A, E) / p + f(E)是个单峰或单谷函数即可用三分查找E的最优解,需要严格的数学证明,可我不会,就问了DeepSeek,它给出了如下图的详细证明。

DeepSeek证明了一定是单峰函数,则可用三分法求解。

代码如下:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;typedef long long LL;const double eps = 1e-8;double ax, ay, bx, by, cx, cy, dx, dy, p, Q, r;double getDis(double nx, double ny, double mx, double my) {return sqrt((nx - mx) * (nx - mx) + (ny - my) * (ny - my));
}double in_ter(double ex, double ey) {double Lx = cx, Ly = cy, Rx = dx, Ry = dy;double f1x = 0.0, f1y = 0.0, f2x = 0.0, f2y = 0.0, t1 = 0.0, t2 = 0.0;while (getDis(Lx, Ly, Rx, Ry) > eps) {f1x = Lx + (Rx - Lx) / 3.0;f1y = Ly + (Ry - Ly) / 3.0;f2x = Rx - (Rx - Lx) / 3.0;f2y = Ry - (Ry - Ly) / 3.0;t1 = getDis(ex, ey, f1x, f1y) / r + getDis(f1x, f1y, dx, dy) / Q;t2 = getDis(ex, ey, f2x, f2y) / r + getDis(f2x, f2y, dx, dy) / Q;if (t1 < t2) {Rx = f2x;Ry = f2y;} else {Lx = f1x;Ly = f1y;}}return getDis(ex, ey, Lx, Ly) / r + getDis(Lx, Ly, dx, dy) / Q;
}double out_ter() {double Lx = ax, Ly = ay, Rx = bx, Ry = by;double e1x = 0.0, e1y = 0.0, e2x = 0.0, e2y = 0.0, t1 = 0.0, t2 = 0.0;while (getDis(Lx, Ly, Rx, Ry) > eps) {e1x = Lx + (Rx - Lx) / 3.0;e1y = Ly + (Ry - Ly) / 3.0;e2x = Rx - (Rx - Lx) / 3.0;e2y = Ry - (Ry - Ly) / 3.0;t1 = getDis(ax, ay, e1x, e1y) / p + in_ter(e1x, e1y);t2 = getDis(ax, ay, e2x, e2y) / p + in_ter(e2x, e2y);if (t1 < t2) {Rx = e2x;Ry = e2y;} else {Lx = e1x;Ly = e1y;}}return getDis(ax, ay, Lx, Ly) / p + in_ter(Lx, Ly);
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin >> ax >> ay >> bx >> by >> cx >> cy >> dx >> dy >> p >> Q >> r;if (getDis(ax, ay, bx, by) < eps) {cout << fixed << setprecision(2) << in_ter(ax, ay);} else {cout << fixed << setprecision(2) << out_ter();}return 0;
}

最后的值是double型的,虽然输入数据是整数,但用double型表示,避免转换。

f1x为Lx,Rx三分之一的位置,f1y为Ly,Ry三分之一的位置,坐标必须能对在一起,否则(f1x,f1t)不在线段AB上。

总结

数学很重要,P2571就需要数学,没有数学证明是没法用三分的,也就没法写出这篇实现代码。要练习使用AI工具,缺知识的时候AI工具会派上大用场,关键是拆解问题规模,提出明确的问题。


文章转载自:

http://MGqvq0Hm.jkpnm.cn
http://DRj93R0Y.jkpnm.cn
http://axld0oG5.jkpnm.cn
http://v02nmviS.jkpnm.cn
http://9XYe7hJU.jkpnm.cn
http://mfLaE8Uu.jkpnm.cn
http://4ayX83IT.jkpnm.cn
http://KX4K5XRP.jkpnm.cn
http://5rQcuwAF.jkpnm.cn
http://7PSUVE3J.jkpnm.cn
http://BJ1HmyU1.jkpnm.cn
http://JcS0xwHj.jkpnm.cn
http://XcZyhzkl.jkpnm.cn
http://Cv9ZHir8.jkpnm.cn
http://GS5levkV.jkpnm.cn
http://WjEpYRgl.jkpnm.cn
http://v43HXdOy.jkpnm.cn
http://yDYihKz6.jkpnm.cn
http://pPvPCTIC.jkpnm.cn
http://U3JrA8I6.jkpnm.cn
http://RjeBQbGq.jkpnm.cn
http://7rjofB05.jkpnm.cn
http://FOyfsK4D.jkpnm.cn
http://FhITDozn.jkpnm.cn
http://6pK48fU6.jkpnm.cn
http://5hF6oBKy.jkpnm.cn
http://FltrtOHL.jkpnm.cn
http://tbEcCAzm.jkpnm.cn
http://BGxBggQc.jkpnm.cn
http://1wdeLUpB.jkpnm.cn
http://www.dtcms.com/wzjs/667373.html

相关文章:

  • 北京网站建设模板湖南正规seo优化报价
  • 网站开发联系人国强住建局领导班子成员分工
  • 天津商城网站建设福州品牌网站建设oem
  • wordpress主题添加一个自定义页面推广关键词如何优化
  • 潍坊哪里做网站wordpress the_terms
  • 网页设计模板首页素材厦门网站优化公司
  • 自己搭建网站需要多少钱用dw设计最简单的网页
  • 佛山搭建建网站哪家好做欧美贸易的主要有哪些网站
  • 百度多久收录一次网站广告设计app免费
  • 网站开发的团队有哪些ui设计怎么收费
  • 城阳在线网站建设网站移动端怎么做的
  • 郴州网站制作找工作湖北省住房城乡建设厅网站查
  • 做区位分析底图的网站双鸭山网站建设企业
  • 九江县网站建设怎样给公司做一个网站
  • 石家庄网站建设选汉狮网站建设 产品拍照
  • 深圳网站建设服务便宜珠海移动网站建设公司排名
  • 营销型网站建设市场分析中国小康建设网 是个什么网站
  • 网站上线的步骤做网站 seo
  • 地产网站开发公司好看ppt模板免费下载
  • 织梦做的网站首页幻灯片怎么不能显示wordpress主题标签
  • wordpress站外链接做网站的服务器用什么 系统好
  • 网站后台更新 前台不显示增城高端网站建设
  • 网站建设在哪里找网站建设做什么
  • 网站备案个人承诺书wordpress 必备
  • ui设计在哪个网站可以接做网站描本链接怎么做
  • 莱芜租房网站郑州做网站价格
  • 网站程序语言网站平台建设的当前问题
  • 怎样建设网站官网管理系统项目
  • 自己做企业网站服务器做wish选品参考什么网站
  • 企业网站设计话术济南58同城网