Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 08.01.2022
Сообщений: 67

Заполнить матрицу указанным образом

08.01.2022, 14:31. Показов 2608. Ответов 11
Метки 20 (Все метки)

Студворк — интернет-сервис помощи студентам
1 0 1 0 1 0 1
1 0 1 0 1 0 1
1 0 1 0 1 0 1
1 0 1 0 1 0 1
1 0 1 0 1 0 1
1 0 1 0 1 0 1
1 0 1 0 1 0 1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2022, 14:31
Ответы с готовыми решениями:

Распределите строки из файла на два упорядоченных указанным образом списка, и запишите их в файл
Ввод стандартный ввод или the_calls.txt Вывод calls.txt Руководитель хочет узнать, какой из двух его заместителей A или B больше...

Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали.

Заполнить массив случайным образом и отсортировать
Дан одномерный массив чисел a1,...,a20. Заполнить его случайным образом и отсортировать.

11
1 / 1 / 0
Регистрация: 08.01.2022
Сообщений: 67
08.01.2022, 14:41  [ТС]
Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран
Code
1
2
3
4
5
6
7
-6 -5 -4 -3 -2 -1  0
-5 -4 -3 -2 -1  0  1
-4 -3 -2 -1  0  1  2
-3 -2 -1  0  1  2  3
-2 -1  0  1  2  3  4 
-1  0  1  2  3  4  5
 0  1  2  3  4  5  6
0
26 / 17 / 9
Регистрация: 25.02.2021
Сообщений: 59
08.01.2022, 14:42
Решение:
Python
1
2
3
4
5
width=7
height=7
matrix = [[1 if x%2==0 else 0 for x in range(width)] for y in range(height)]
for i in matrix:
    print(*i)
1
26 / 17 / 9
Регистрация: 25.02.2021
Сообщений: 59
08.01.2022, 14:59
Лучший ответ Сообщение было отмечено Yana kr как решение

Решение

Здесь уже в одну строку не получается:
Python
1
2
3
4
5
6
7
8
9
10
11
12
width=7
height=7
z=[]
i=-6
for y in range(height):
    q=[]
    for x in range(i, i+width):
        q.append(x)
    z.append(q)
    i+=1
for i in z:
    print(*i)
1
1 / 1 / 0
Регистрация: 08.01.2022
Сообщений: 67
08.01.2022, 14:59  [ТС]
-6 -5 -4 -3 -2 -1 0
-5 -4 -3 -2 -1 0 1
-4 -3 -2 -1 0 1 2
-3 -2 -1 0 1 2 3
-2 -1 0 1 2 3 4
-1 0 1 2 3 4 5
0 1 2 3 4 5 6
0
1 / 1 / 0
Регистрация: 08.01.2022
Сообщений: 67
08.01.2022, 15:12  [ТС]
1 2 3 4 5 6 7
24 25 26 27 28 29 8
23 40 41 42 43 30 9
22 39 48 49 44 31 10
21 38 47 46 45 32 11
20 37 36 35 34 33 12
19 18 17 16 15 14 13
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
08.01.2022, 16:40
Лучший ответ Сообщение было отмечено enx как решение

Решение

Цитата Сообщение от erastfandorin Посмотреть сообщение
Здесь уже в одну строку не получается:
Python
1
print(*(" ".join(str(i + j - 6) for j in range(7)) for i in range(7)), sep="\n")
1
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
08.01.2022, 16:45
Arsegg, можно оптимизировать

Python
1
print('\n'.join(' '.join(str(i + j - 6) for j in range(7)) for i in range(7)))
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
08.01.2022, 17:12
Python
1
lst = [[*range(i, i + 7)] for i in range(-6, 1)]
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
08.01.2022, 18:20
enx, в плане памяти не думаю, что это хорошая затея: генерировать всю строку в памяти на вывод. Что если двумерный массив настолько большой, что в памяти не помещается, а вывести его содержимое очень хочется?

Добавлено через 1 минуту
P. S. Хотя и в моем коде есть недостаток: длина строк (двумерного массива) тоже может быть настолько большой, что не поместится в памяти)) Правда фиксится это элементарно))
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
08.01.2022, 18:31
Arsegg, да это же шутка, не больше! Я так, что еще можно 3 символа выиграть, раз мы за строки воюем
0
26 / 17 / 9
Регистрация: 25.02.2021
Сообщений: 59
06.02.2022, 12:20
Yana kr, Это самая сложная задача, которую я когда-либо решал. Я думал, что быстренько сделаю, ан-нет.
Мой вариант решения (хотя я уверен, есть более оптимальные, но у меня получился такой):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
width=7
height=7
fin=[[] for i in range(height)]
w=1 #w - это значение числа
i=t=0 #i - это номер строки, t - это поворот по часовой стрелке
k=-1 #k - это индекс элемента
while w<=width*height:
    if t==4:
        t=0
    elif t==1:
        k=k-width+1
    elif t==3:
        k=k+width-1
    while t==0 and len(fin[i])<width:
        k+=1
        fin[i][k:k]=[w]
        w+=1
    while t==1 and i<height-1:
        if len(fin[i+1])==width:
            break
        i+=1
        fin[i][k:k]=[w]
        w+=1
    while t==2 and len(fin[i])<width:
        k-=1
        fin[i][k:k]=[w]
        w+=1
    while t==3 and len(fin[i-1])<width:
        i-=1
        fin[i][k:k]=[w]
        w+=1
    t+=1
 
for i in fin:
    print(*i)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2022, 12:20
Помогаю со студенческими работами здесь

Заполнить квадратную матрицу таким образом, чтобы на главной диагонали были расположены числа от N до 1
Заполнить квадратную матрицу таким образом, чтобы на главной диагонали были расположены числа от N до 1, под главной диагональю нули, а над...

Заполнить матрицу указанным образом
Заполнить двумерный массив таким образом: 111 | 122 | ... | 120 ... | ... | ... | ... 30 | ... | 22 | 21 11 | 12 | | 20 10 | ......

Заполнить матрицу значениями вектора указанным образом
День добрый. Такой вопрос: есть вектор, нужно заполнить матрицу так, как показано на скрине ниже. К сожалению не хватает опыта в описании...

Заполнить двумерный массив указанным образом
Заполнить двумерный массив следующим образом: 12 24 ... 120 .................... 2 14 ... 110 1 13 ... 109

Заполнить матрицу по указанным правилам
С клавиатуры вводится целое число n (от 0 до 7). Имеется двумерный массив размером 10х10. Заполнить матрицу числами от 0 до 99...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru