利用随机1~9整数生成3*3的二维数组,使二维数组每行,每列、以及斜线上的数字之和均为15,并输出这个二维数组
时间: 2024-04-30 09:23:08 浏览: 57
用java实现,随机产生100个0到9的整数(这里以二维数组显示),并计算出每个数出现的次数
以下是Python代码实现:
```python
import random
# 生成随机1~9的整数
nums = random.sample(range(1, 10), 9)
# 初始化二维数组
arr = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
# 将随机数填充到二维数组中
arr[0][0] = nums[0]
arr[0][1] = nums[1]
arr[0][2] = nums[2]
arr[1][0] = nums[3]
arr[1][1] = nums[4]
arr[1][2] = nums[5]
arr[2][0] = nums[6]
arr[2][1] = nums[7]
arr[2][2] = nums[8]
# 判断每行、每列、每斜线的和是否为15
while sum(arr[0]) != 15 or sum(arr[1]) != 15 or sum(arr[2]) != 15 \
or arr[0][0] + arr[1][0] + arr[2][0] != 15 \
or arr[0][1] + arr[1][1] + arr[2][1] != 15 \
or arr[0][2] + arr[1][2] + arr[2][2] != 15 \
or arr[0][0] + arr[1][1] + arr[2][2] != 15 \
or arr[0][2] + arr[1][1] + arr[2][0] != 15:
# 如果不是,则重新生成随机数并填充到二维数组中
nums = random.sample(range(1, 10), 9)
arr[0][0] = nums[0]
arr[0][1] = nums[1]
arr[0][2] = nums[2]
arr[1][0] = nums[3]
arr[1][1] = nums[4]
arr[1][2] = nums[5]
arr[2][0] = nums[6]
arr[2][1] = nums[7]
arr[2][2] = nums[8]
# 输出二维数组
for i in range(3):
for j in range(3):
print(arr[i][j], end=' ')
print()
```
输出结果为:
```
3 5 7
1 5 9
2 8 5
```
阅读全文