python 对于二维数组a[m][n],先求出每行的最小值元素,放入min数组中。再求出每列的最大值元素放入max数组中。 若min[i]=max[j],则该元素a[i][j]便是马鞍点,找出所有这样的元素并输出。
时间: 2023-10-29 08:06:10 浏览: 101
好的,这个问题可以通过以下 Python 代码解决:
```python
# 先定义一个二维数组 a
a = [[2, 3, 4], [1, 5, 7], [8, 6, 9]]
# 求出每行的最小值
min = [min(row) for row in a]
# 求出每列的最大值
max = [max(col) for col in zip(*a)]
# 找出所有的马鞍点
saddle_points = []
for i in range(len(a)):
for j in range(len(a[0])):
if a[i][j] == min[i] == max[j]:
saddle_points.append((i, j))
# 输出结果
for point in saddle_points:
print("马鞍点:a[{}][{}] = {}".format(point[0], point[1], a[point[0]][point[1]]))
```
希望这个代码能够解决你的问题。
相关问题
找出二维数组每列中最小元素,并依次放入b所指一维数组中
以下是Python实现:
```python
def get_column_min(arr):
"""
找出二维数组每列中最小元素,并依次放入b所指一维数组中
"""
m, n = len(arr), len(arr[0])
b = [float('inf')] * n
for j in range(n):
for i in range(m):
if arr[i][j] < b[j]:
b[j] = arr[i][j]
return b
```
其中,参数arr表示二维数组,返回值b表示每列的最小元素组成的一维数组。程序先用浮点数的最大值初始化b,然后遍历每列,找出其中的最小值并赋值给b。
定义一个10行10列的二维数组,并且通过双重循环对第1列所有元素赋值1,主对角线也赋值1。根据a[i][j] = a[i-1][j] + a[i-1][j-1] 求出其它元素的值。 (2)从键盘上输入一串字符,将其逆向显示。例如:输入abcdefg,则输出gfedcba。 提示:首先计算字符串的长度,再从右边逐一显示字符,直到下标等于0为止。 (3)从键盘随机输入10个数,将最大的元素与第一个元素交换,最小的元素与最后一个元素交换,最后输出交换后的所有数组元素值。 (4)从键盘随机输入10个数放入数组中,然后将其前5个元素与后5个元素对换,即:第一个元素与第十个元素互换,第二个元素与第九个元素互换,……,第五个元素与第六个元素互换。分别输出数组原来各元素的值和对换后各元素的值。
好的,我来逐一回答你的问题:
1. 定义一个10行10列的二维数组,并且通过双重循环对第1列所有元素赋值1,主对角线也赋值1。根据a[i][j] = a[i-1][j] + a[i-1][j-1] 求出其它元素的值。
```python
arr = [[0 for i in range(10)] for j in range(10)]
for i in range(10):
arr[i][0] = 1
arr[i][i] = 1
for i in range(2, 10):
for j in range(1, i):
arr[i][j] = arr[i-1][j] + arr[i-1][j-1]
```
2. 从键盘上输入一串字符,将其逆向显示。例如:输入abcdefg,则输出gfedcba。提示:首先计算字符串的长度,再从右边逐一显示字符,直到下标等于0为止。
```python
s = input("请输入字符串: ")
n = len(s)
for i in range(n-1, -1, -1):
print(s[i], end="")
```
3. 从键盘随机输入10个数,将最大的元素与第一个元素交换,最小的元素与最后一个元素交换,最后输出交换后的所有数组元素值。
```python
arr = []
for i in range(10):
arr.append(int(input("请输入第%d个数: " % (i+1))))
max_idx = arr.index(max(arr))
arr[0], arr[max_idx] = arr[max_idx], arr[0]
min_idx = arr.index(min(arr))
arr[-1], arr[min_idx] = arr[min_idx], arr[-1]
print(arr)
```
4. 从键盘随机输入10个数放入数组中,然后将其前5个元素与后5个元素对换,即:第一个元素与第十个元素互换,第二个元素与第九个元素互换,……,第五个元素与第六个元素互换。分别输出数组原来各元素的值和对换后各元素的值。
```python
arr = []
for i in range(10):
arr.append(int(input("请输入第%d个数: " % (i+1))))
print("原数组: ", arr)
for i in range(5):
arr[i], arr[9-i] = arr[9-i], arr[i]
print("对换后的数组: ", arr)
```
希望这些代码可以帮到你!
阅读全文