zoukankan      html  css  js  c++  java
  • 浅谈三分法

    浅谈三分法

    本篇随笔简单讲解一下算法中的三分算法。


    一、前置知识

    要学三分的话,首先要对二分有一个了解和掌握。这是肯定的了。

    尤其是二分答案,把求解转化为判定。


    二、三分法的概念

    刚刚已经提到过,二分答案是把求解转化成判定,但是其有一个很重要的适用范围:答案一定要满足单调性。这很显然。

    但是如果答案函数就不是一个单调函数,而是一个类似于二次函数的波峰、波谷函数的话,怎么办呢?显然,二分是无勇武之地的。

    那就三分呗。

    是的,三分法可以求解波峰波谷函数的极值问题。(怎么感觉高中数学讲过呢?)


    三、三分的正确性和原理

    三分其实就是每次把可行区间分成三等分,进行判断后缩小区间的过程也是三分之一三分之一地缩小。所以其复杂度应该是以3为底的对数。这也不是很严格的。

    那么三分为什么是对的呢?

    现在你把可行区间分成了三份,因为只有一个最值,那么你的三等分点一定是同时处于答案一侧或者分别处于答案两侧。这个时候显然只需要判断两个三等分点的函数值大小,决定函数值往左右移动即可。这个考场画图即可正确模拟。

  • 相关阅读:
    linux下互相传文件的快捷方法
    c语言学习笔记.内存管理.
    c语言学习笔记.结构体.
    格雷码
    c语言学习笔记.指针.
    c语言学习笔记.数组.
    c语言学习笔记.关键字.存储类型关键字等
    leetcode.C.4. Median of Two Sorted Arrays
    Verilog笔记.6.FIFO
    Verilog笔记.5.同步、异步
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14019968.html
Copyright © 2011-2022 走看看