全国大学生数学建模竞赛打卡活动,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. 算法步骤
- 先把第一个数当作最小的
- 挨个看后面的数,如果发现更小的就换掉
- 每看一个数就数一次
- 最后得到最小值和总共看了几个数
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科学计算环境