Создание и заполнение матрицы в python
Есть такая задача "Даны два числа n и m. Создайте двумерный массив A[n][m], заполните его таблицей умножения A[i][j]=i*j и выведите на экран. При этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом." Нашёл решение на паскале, но никак не могу разобраться с созданием и заполнением матрицы в python. Вот решение на паскале
i,j,k:byte;
a:array[1..10,1..10] of byte;
begin
for k:=1 to 100 do
begin
i:=(k-1)div10+1;
j:=k mod 10;
if j=0 then j:=10;
a[i,j]:=i*j;
Write(a[i,j], )
end
end.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
двумерный массив [m][n] может быть представлен в виде одномерного массива размером [mxn]
в этом случае
x = index % m
y = index / n
таким образом ваш двумерный список можно сделать так:
m = 10
n = 10
arr = [[0] * m] * n
size = m * n
for index in range(size):
x = index % m
y = index // m
value = (x + 1) * (y + 1)
arr[x][y] = value
print(value, end=' ')
if x == m - 1:
print()