三⾓形最⼩路径和

三⾓形最⼩路径和:https://leetcode-cn.com/problems/triangle/
思路:自顶向下,将本级的数字加到下一级的相同位置或者左一位,若下一级有两个选择则进行比较,选择和最小的保存到本级,进行循环,二维数组最后一行则为最后的结果,遍历得到最小的路径值输出

class Solution {
public static int minimumTotal(List<List<Integer>> triangle) {
    for(int i=0;i<triangle.size()-1;i++){
        triangle.get(i+1).set(0,triangle.get(i+1).get(0)+triangle.get(i).get(0));
       
        for(int j=1;j<=i;j++){
           triangle.get(i+1).set(j,triangle.get(i+1).get(j)+(triangle.get(i).get(j-1)>triangle.get(i).get(j)?
                   triangle.get(i).get(j):triangle.get(i).get(j-1)));
            
        }
        triangle.get(i+1).set(i+1,triangle.get(i+1).get(i+1)+triangle.get(i).get(i));
        
    }
    int m=triangle.get(triangle.size()-1).get(0);
    for(int i=0;i<triangle.get(triangle.size()-1).size();i++){
        if(m>triangle.get(triangle.size()-1).get(i)){
            m=triangle.get(triangle.size()-1).get(i);
        }
    }
    return m;
}

}

### 小二乘法(LS)在优化问题中的应用与实现 小二乘法(Least Squares, LS)是一种用于解决线性回归问题的经典方法,其核心思想是通过小化误差的平方来寻找佳拟合参数。这种方法广泛应用于数据拟合、参数估计以及系统建模等领域。 #### 1. 小二乘法的基本原理 假设我们有一组观测数据 \((x_i, y_i)\),其中 \(x_i\) 是输入变量,\(y_i\) 是输出变量。目标是找到一个线性模型 \(y = w^T x + b\),使得预测值与真实值之间的误差小化。误差可以通过以下公式表示: \[ E(w, b) = \sum_{i=1}^{n} (y_i - (w^T x_i + b))^2 \] 为了使误差小,可以通过对 \(w\) \(b\) 求偏导并令其为零来求解优参数[^6]。 ```python import numpy as np # 输入数据 X = np.array([[1, 2], [2, 3], [3, 4], [4, 5]]) y = np.array([2, 3, 4, 5]) # 添加偏置项 X_b = np.c_[np.ones((len(X), 1)), X] # 计算参数 theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y) print("佳参数:", theta_best) ``` 上述代码展示了如何使用矩阵运算求解小二乘法的解析解。 #### 2. 小二乘法的应用场景 - **数据拟合**:小二乘法常用于拟合多项式或其他式的函数。 - **参数估计**:在统计学中,小二乘法被用来估计模型参数。 - **控制系统**:小二乘法可用于辨识系统的动态特性[^7]。 #### 3. 实现方式 小二乘法可以通过解析解或迭代优化两种方式实现: - **解析解**:直接通过矩阵运算求解优参数,适用于规模较小的问题。 - **迭代优化**:如梯度下降法,适合处理大规模数据集。 梯度下降法的核心思想是通过不断调整参数以减小误差函数的值。以下是梯度下降法的一个简单实现: ```python # 梯度下降法实现 eta = 0.1 # 学习率 n_iterations = 1000 m = len(X_b) theta = np.random.randn(3, 1) # 初始化参数 for iteration in range(n_iterations): gradients = 2 / m * X_b.T.dot(X_b.dot(theta) - y) theta = theta - eta * gradients print("通过梯度下降得到的参数:", theta) ``` #### 4. 小二乘法的优缺点 - **优点**:计算简单,易于实现,结果具有良好的统计性质。 - **缺点**:对异常值敏感,且当特征数量较大时,计算复杂度较高[^8]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值