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

求数组最大最小值的数值方法

给定一个数组 A = [ a i ] A = [a_i] A=[ai],求它的最大值或最小值,一般会用遍历查找或排序的方法,但其实可以直接用计算的方法求出数组的最大最小值。

m a x ( A ) = lim ⁡ n → ∞ a 1 n + ⋯ + a N n n max(A) = \lim_{n\rightarrow \infty}\sqrt[n]{a_1^n + \cdots + a_N^n} max(A)=nlimna1n++aNn
m a x ( A ) = lim ⁡ β → ∞ 1 β log ⁡ ( e β a 1 + ⋯ + e β a N ) m i n ( A ) = lim ⁡ β → − ∞ 1 β log ⁡ ( e β a 1 + ⋯ + e β a N ) max(A) =\lim_{\beta\rightarrow \infty}\frac{1}{\beta}\log \left(e^{\beta a_1}+\cdots +e^{\beta a_N} \right)\\ min(A) =\lim_{\beta\rightarrow -\infty} \frac{1}{\beta}\log \left(e^{\beta a_1}+\cdots +e^{\beta a_N} \right) max(A)=βlimβ1log(eβa1++eβaN)min(A)=βlimβ1log(eβa1++eβaN)

证明也很简单。

下面用程序来说明:

import numpy as np

def max1(A):
    n = 100
    return pow(np.sum(A**n),1/n)

def max2(A):
    beta = 10
    return np.log(np.sum(np.exp(beta*A)))/beta


A = np.array([i for i in range(10)])+0.001
print(A)

print(max1(A))
print(max2(A))

'''
[1.000e-03 1.001e+00 2.001e+00 3.001e+00 4.001e+00 5.001e+00 6.001e+00 7.001e+00 8.001e+00 9.001e+00]
9.001000691258799
9.001004540096037
'''

需要注意的是,这种近似方法容易出现数值溢出,使用时须谨慎

相关文章:

  • 鸡笼岗啊鸡笼岗
  • 深度学习三巨头的主要贡献
  • 安装 nnet-ts 报错 no module named TimeSeriesNnet
  • DOS下删除文件和文件夹
  • python 时间序列预测——简单神经网络
  • Java反编译工具――Jode
  • python 时间序列预测——SimpleRNN
  • ADSL拨号断线
  • python 时间序列预测——Jordan循环神经网络
  • 强大的数据报表中心
  • python 时间序列预测——Elman循环神经网络
  • IFormatProvider 接口
  • python 时间序列预测——NARX循环神经网络
  • 好可爱啊
  • python 时间序列预测——LSTM, GRU
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java 网络编程(2):UDP 的使用
  • Laravel Telescope:优雅的应用调试工具
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux快速复制或删除大量小文件
  • Mybatis初体验
  • python 装饰器(一)
  • Python学习之路16-使用API
  • Rancher如何对接Ceph-RBD块存储
  • React-flux杂记
  • Service Worker
  • 给新手的新浪微博 SDK 集成教程【一】
  • 实习面试笔记
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 思维导图—你不知道的JavaScript中卷
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 阿里云ACE认证之理解CDN技术
  • 数据库巡检项
  • #vue3 实现前端下载excel文件模板功能
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (003)SlickEdit Unity的补全
  • (1)STL算法之遍历容器
  • (4)Elastix图像配准:3D图像
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)Linux网络编程入门
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET MVC第三章、三种传值方式
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET构架之我见