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

Двумерные массивы, турнирная таблица

30.04.2021, 09:56. Показов 1927. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток, прошу помочь с заданием:
Таблица футбольного чемпионата задана в виде двумерного массива из n строк и
n столбцов, в котором все элементы, принадлежащие главной диагонали, равны нулю, а
каждый элемент, не принадлежащий главной диагонали, равен 3, 1 или 0 (числу очков,
набранных в игре: 3—выигрыш, 1—ничья, 0—проигрыш).
а) Найти число команд, имеющих больше побед, чем поражений.
б) Определить номера команд, прошедших чемпионат без поражений. 53
в) Выяснить, имеется ли хотя бы одна команда, выигравшая более половины
игр.
г) Определить номер команды, ставшей чемпионом.
д) Определить, расположены ли команды в соответствии с занятыми ими
местами в чемпионате (принять, что при равном числе очков места распределяются
произвольно)
е) Для каждой команды определить занятое ею место (для простоты
принять, что при равном числе очков места распределяются произвольно).
ж) Получить последовательность номеров команд в соответствии с
занятыми ими местами (сначала должен идти номер команды, ставшей чемпионом, затем
команды, занявшей второе место и т.д.)

Конкретно проблема возникла с пунктами д, е, ж.
Вот код:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
N = int(input('Введите кол-во комманд '))
        array = []
        pob = 0
        win = bool
        t = 0
        champ = 0
        countChamp = 0
        pol = (N-1) // 2
        poll = 0
 
        for i in range(N):
            z = []
            for j in range(N):
                z.append(random.randint(0, 2))
                if z[j] == 2:
                    z[j] = z[j] + 1
            array.append(z)
 
        for i in range(N):
            for j in range(N):
                if i == j:
                    array[i][j] = 0
                else:
                    array[j][i] = array[i][j]
 
        for i in range(N):
            for j in range(N):
                if array[i][j] == 3:
                    pob = pob + 1
                    poll = poll + 1
 
                elif array[i][j] == 0:
                    pob = pob - 1
 
        if poll >= pol:
            print('Кол-во команд которые выиграли больше половины игры: ' +str(pol) + '\n')
 
        else:
            print('Команд, которые выиграли больше половины игры нет!')
 
        if pob > 0:
            print('Кол-во команд, у которых больше побед, чем поражений = ' + str(pob) + '\n')
        else:
            print('У всех команд поражений/ничьих больше, чем побед!')
 
        for i in range(N):
            for j in range(N):
                print("{:5d}".format(array[i][j]), end='')
                if champ < sum(array[i]):
                    champ = sum(array[i])
                    countChamp = i+1
            print('    | Общие очки команды ' + str(i+1) + ' ', sum(array[i]))
            print()
 
        for i in range(N):
            for j in range(N):
                if i != j:
                    if array[i][j] == 0:
                        win = False
                        break
                    win = True
            if win:
                print('Команда № ' + str(i+1) + ' ' + 'прошла турнир без поражений!')
                t = t+1
        if t == 0:
            print('Команд прошедших турнир без поражения нет!')
        print('Команда ставшая чемпионом: Команда № ' + str(countChamp))
 
        array.sort(key=sum, reverse=True)
 
#Пункт д,е,ж
        for i in range(N):
            for j in range(N):
                print("{:5d}".format(array[i][j]), end='')
            print('    |' + str(i+1) + ' место |', sum(array[i]))
            print()
Проблема возникла из-за того, что я не дочитал и в массив не добавил список команд по номерам.
Как можно в этот код добавить 1 столбец по типу: Команда 1, команда 2, команда 3, команда N
Есть идея добавить массив и прибавить к нему массив с очками (победы, поражения, ничьи), но реализовать никак не выходит.
Подскажите, что можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2021, 09:56
Ответы с готовыми решениями:

Турнирная таблица
Спортивный сезон В течение спортивного сезона проводится 5 соревнований, по результатам которых начисляются очки: Если спортсмен...

Турнирная таблица, работа со словарем
Даны финальные баллы спортсменов по результатам соревнований, которые хранятся в словаре final_scores. Напишите функцию, которая...

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

1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
30.04.2021, 11:12
n00b1, д,е,ж) создаешь список из кортежей -> (номер команды по порядку, количество очков, место по "условию")
Для "д" -> "условие" - Первая команда -> i = 1; далее, если число очков следующей не равно предыдущей, то у нее -> i += 1, иначе то же самое i. Сортировка исходного списка по "количество очков". Если элементы "по условию" исходного и отсортированного списков совпали, то порядок верный.
Для "е" и "ж" можно использовать отсортированный список
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2021, 11:12
Помогаю со студенческими работами здесь

Двумерные массивы
почему выводит одно число,а не двумерный массив n = int(input()) m = int(input()) f=open('Вывод.txt','w') def z(n,m): ...

Двумерные массивы
Вычислить значение функции Результат записать в массив В(m,n)

Двумерные массивы
Всем привет! Прошу вас помочь решить задачку по двумерным массивам в python. Задание звучит так: Дана действительная квадратная...

Двумерные массивы и функции
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей (определение соседних элементов:...

NumPy, двумерные массивы
Здравствуйте, нужна помощь. В заданной матрице найти номер первой из строк, содержащих хотя бы один положительный элемент


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru