专栏
标签
全国大学生数学建模竞赛打卡活动,8月13日第一题解答
主题活动
发布于 2025-08-18 14:20:01
查看 2过去314天

8月13日 题目一解答

题目

用 for 循环找出矩阵 a 中的最小元素,并计算循环次数。
矩阵: a = [8 5 6 9 4 5 6 1 5 -1]

解题思路

1. 算法步骤

  1. 先把第一个数当作最小的
  2. 挨个看后面的数,如果发现更小的就换掉
  3. 每看一个数就数一次
  4. 最后得到最小值和总共看了几个数

2. 核心代码

function find_minimum(array)
    min_element = array[1]  # 先假设第一个最小
    loop_count = 0
    
    for i in 1:length(array)
        loop_count += 1     # 数一下看了几个数
        if array[i] < min_element
            min_element = array[i]  # 发现更小的就换掉
        end
    end
    
    return min_element, loop_count
end

执行过程

就像一个个比较一样:

第几次看 看到的数 当前最小的 换不换
1 8 8 不换
2 5 5 换!
3 6 5 不换
4 9 5 不换
5 4 4 换!
6 5 4 不换
7 6 4 不换
8 1 1 换!
9 5 1 不换
10 -1 -1 换!

结果

  • 最小元素: -1(最后一个数最小)
  • 循环次数: 10(总共看了10个数)

以下是完整代码

```# 8月13日 题目一:用 for 循环找出矩阵中的最小元素并计算循环次数

a = [8, 5, 6, 9, 4, 5, 6, 1, 5, -1]
println("原始矩阵 a = ", a)
println("矩阵长度 = ", length(a))
# 用 for 循环找出最小元素并计算循环次数
function find_minimum_for_loop(array)
    if isempty(array)
        return nothing, 0
    end
    
    min_element = array[1]  # 初始化为第一个元素
    loop_count = 0
    
    for i in 1:length(array)
        loop_count += 1
        if array[i] < min_element
            min_element = array[i]
        end
    end
    
    return min_element, loop_count
end

# 执行查找
min_value, loops = find_minimum_for_loop(a)

println("\n=== 结果 ===")
println("最小元素: ", min_value)
println("循环次数: ", loops)

# 验证结果
println("验证:使用内置函数 minimum() = ", minimum(a))





代码与运行结果已上传附件
所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
MWORKS体验官全国大学生数学建模竞赛
附件 3 个附件(303kb)

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天