С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
1

Задача круглый стол короля Артура

16.12.2021, 20:47. Показов 3022. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
возможно я только усложнил всё но решил писать так
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
n = int(input("Введите кол-во рыцарей: "))
nFriends = int(n/2) # Сколько должно быть друзей
 
class Knights :
    num = 0
    friends = [] * nFriends # Массив друзей
 
    def __init__(self, num):
        self.num = num
 
    def __str__(self):
        return "Рыцарь: " + self.num + " - Друзья: " # Вывод номер рыцаря и его друзей
 
    __repr__ = __str__
 
    def setFriends(self, friends):
        self.friends = friends
 
    def getFriends(self):
        return self.friends
 
def friend(friends): # Задумывается как присваивания "друзей" объекту
    for i in knights:
        for j in range(n):
            if (i % 2) == 0 and (j % 2) != 0:
                friends.append(knights[i].setFriends(j))
            elif (i % 2) != 0 and (j % 2) == 0:
                friends.append(knights[i].setFriends(j))
 
knights = [Knights(f"{i}") for i in range(n)] # Создание объекта "Рыцарь"
print(knights)
никак не получается присвоить объекту массив с "друзьями"

на картинке с paint'а
1 строка индекс массива след 3 строки это "друзьям" индекса вверху
цифры по кругу это непосредственно как они могут сидеть рядом за столом
Миниатюры
Задача круглый стол короля Артура  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2021, 20:47
Ответы с готовыми решениями:

задача короля артура
Turbo Pascal (ПОМОГИТЕ РАЗОБРАТЬСЯ С КОДОМ К ЗАДАЧЕ.ОЧЕНЬ-ОЧЕНЬ ПРОШУ!!!) Вы не поверите, но...

Задача про круглый стол (динамические массивы)
Помогите решить задачу. Условие. За круглым столом собралось 10 участников, номера стульев от 1...

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

Круглый стол
Нина готовится к приему n гостей, она хочет рассадить их вокруг круглого стола. Нина подумала, что...

10
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
16.12.2021, 21:20  [ТС] 2
немного покопался и сделал это
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
n = int(input("Введите кол-во рыцарей: "))
nFriends = int(n/2) # Сколько должно быть друзей
friends = [] * nFriends
class Knights :
    num = 0
    friends = [] # Массив друзей
 
    def __init__(self, num):
        self.num = num
        self.friends
 
    def __str__(self):
        convertList = ' '.join(map(str, friends))
        return " Рыцарь: " + self.num + " - Друзья: " + convertList + " " # Вывод номер рыцаря и его друзей
 
    __repr__ = __str__
 
    def setFriends(self, friends):
        self.friends = friends
 
    def getFriends(self):
        return self.friends
 
def friend(friends, i): # Задумывается как присваивания "друзей" объекту
    #for i in n:
    if len(friends) >= 3:
        return friends
    for j in range(n):
        if (i % 2) == 0 and (j % 2) != 0:
            friends.append(j)
        elif (i % 2) != 0 and (j % 2) == 0:
            friends.append(j)
 
knights = [Knights(f"{i}") for i in range(n)] # Создание объекта "Рыцарь"
 
for i in range(n):
    knights[i].setFriends(friend(friends, i))
print(knights)
вывод сейчас такой:
Введите кол-во рыцарей: 4
[ Рыцарь: 0 - Друзья: 1 3 0 2 , Рыцарь: 1 - Друзья: 1 3 0 2 , Рыцарь: 2 - Друзья: 1 3 0 2 , Рыцарь: 3 - Друзья: 1 3 0 2 ]
0
5046 / 3391 / 1156
Регистрация: 21.03.2016
Сообщений: 8,212
16.12.2021, 21:26 3
возможно будет лучше если вы опишите условие задачи.
Python
1
knights = [Knights(f"{i}") for i in range(n)] # Создание объекта "Рыцарь"
увы нет. создается список экземпляров
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
16.12.2021, 21:31  [ТС] 4
Semen-Semenich, я его добавил но он почему то убрался после добавления скрина paint'а
ну и я благополучно не заметил этого
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Вложения, ожидающие проверки
Тип файла: png qYNEJH6.png
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
16.12.2021, 21:35  [ТС] 5
чуть чуть поправил
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
n = int(input("Введите кол-во рыцарей: "))
nFriends = int(n/2) # Сколько должно быть друзей
friends = [] * nFriends
class Knights :
    num = 0
    friends = [] # Массив друзей
 
    def __init__(self, num):
        self.num = num
        self.friends
 
    def __str__(self):
        convertList = ' '.join(map(str, friends))
        return " Рыцарь: " + self.num + " - Друзья: " + convertList + " " # Вывод номер рыцаря и его друзей
 
    __repr__ = __str__
 
    def setFriends(self, friends):
        self.friends = friends
 
    def getFriends(self):
        return self.friends
 
def friend(friends, i): # Задумывается как присваивания "друзей" объекту
    #for i in n:
    if len(friends) > nFriends:
        return friends
    for j in range(n):
        if (i % 2) == 0 and (j % 2) != 0:
            friends.append(j)
        elif (i % 2) != 0 and (j % 2) == 0:
            friends.append(j)
 
knights = [Knights(f"{i}") for i in range(n)] # Создание списока экземпляров
 
for i in range(n):
    knights[i].setFriends(friend(friends, i))
print(knights)
0
5046 / 3391 / 1156
Регистрация: 21.03.2016
Сообщений: 8,212
16.12.2021, 21:42 6
это обязательно с классом решать?
Цитата Сообщение от SkiprDAG Посмотреть сообщение
вывод сейчас такой:
Введите кол-во рыцарей: 4
[ Рыцарь: 0 - Друзья: 1 3 0 2 , Рыцарь: 1 - Друзья: 1 3 0 2 , Рыцарь: 2 - Друзья: 1 3 0 2 , Рыцарь: 3 - Друзья: 1 3 0 2 ]
вас не смущает что у каждого рыцаря одни и те же друзья включая самого себя? а где же враги. это наверно из темы
двусвязные списки?
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
16.12.2021, 21:56  [ТС] 7
Semen-Semenich, ну если бы я понимал как это исправить я бы не писал сюда (по моей логике в данный момент всё должно быть правильным)
я понимаю что у Рыцаря 0, 2 друзья 1, 3 Рыцарь 1, 3 друзья 0, 2

а на счёт врагов: не думаю что их нужно записывать чтоб решить данную задачу друзей должно хватить ведь тот кто не друг тот и есть враг

Добавлено через 7 минут
Semen-Semenich, Извиняюсь за грубость если вас что то обидело
просто долго уже сижу и ночь на дворе
0
5046 / 3391 / 1156
Регистрация: 21.03.2016
Сообщений: 8,212
16.12.2021, 22:14 8
тут хитрая логика . уже поздно. завтра попробую на листочке расписать а потом уже решение буду смотреть.
у каждого рыцаря друг слева и справа сидят но у любого этого друга может с другой стороны сидеть враг рыцаря но он друг этому другу будет. это надо рисовать что бы понять логику
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
16.12.2021, 22:16  [ТС] 9
Semen-Semenich, спасибо за помощь буду ждать)
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
17.12.2021, 06:53  [ТС] 10
Semen-Semenich, Semen-Semenich,
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
n = int(input("Введите кол-во рыцарей: "))
nFriends = int(n/2) # Сколько должно быть друзей
 
class Knights :
    num = 0
    friends = [] # Массив друзей
 
    def __init__(self, num):
        self.num = num
        self.friends
 
    def __str__(self):
        return " Рыцарь: " + self.num + " - Друзья: " + str(self.friends) + " " # Вывод номер рыцаря и его друзей
 
    __repr__ = __str__
 
    def setFriends(self, friends):
        self.friends = friends
 
    def getFriends(self):
        return self.friends
 
def friend(friends, i): # Задумывается как присваивания "друзей" объекту
    for j in range(n):
        if (i % 2) == 0 and (j % 2) != 0:
            friends.append(j)
        elif (i % 2) != 0 and (j % 2) == 0:
            friends.append(j)
    if len(friends) == nFriends:
        knights[i].setFriends(friends)
 
knights = [Knights(f"{i}") for i in range(n)] # Создание списока экземпляров
 
for i in range(n):
    friends = []
    friend(friends, i)
print(knights)
Вывод такой
Введите кол-во рыцарей: 6
[ Рыцарь: 0 - Друзья: [1, 3, 5] , Рыцарь: 1 - Друзья: [0, 2, 4] , Рыцарь: 2 - Друзья: [1, 3, 5] , Рыцарь: 3 - Друзья: [0, 2, 4] , Рыцарь: 4 - Друзья: [1, 3, 5] , Рыцарь: 5 - Друзья: [0, 2, 4] ]

Добавлено через 34 секунды
вроде проблема с друзьями решена осталось написать сортировку
0
2 / 2 / 0
Регистрация: 30.09.2020
Сообщений: 126
20.12.2021, 09:26  [ТС] 11
я написал код когда ещё не знал ответа но через костыли
а зная ответ я не знаю как его за кодить

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
n = int(input("Введите кол-во рыцарей: "))
t = [0] * n
с = 0
nFriends = int(n/2) # Сколько должно быть друзей
 
class Knights :
    num = 0
    friends = [] # Массив друзей
 
    def __init__(self, num):
        self.num = num
        self.friends
 
    def __str__(self):
        return " Рыцарь: " + self.num + " - Друзья: " + str(self.friends) + " " # Вывод номер рыцаря и его друзей
 
    __repr__ = __str__
 
    def setFriends(self, friends):
        self.friends = friends
 
    def getFriends(self):
        return self.friends
 
def friend(friends, i): # Задумывается как присваивания "друзей" объекту
    for j in range(n):
        if (i % 2) == 0 and (j % 2) != 0:
            friends.append(j)
        elif (i % 2) != 0 and (j % 2) == 0:
            friends.append(j)
    if len(friends) == nFriends:
        knights[i].setFriends(friends)
 
def sort(t): # для того чтобы рассадить рыцарей
    for i in range(n):
        for j in range(nFriends):
            []
    return t
 
knights = [Knights(f"{i}") for i in range(n)] # Создание списока экземпляров
 
for i in range(n):
    friends = []
    friend(friends, i)
print(knights)
 
print(sort(t))
Выводит:
Введите кол-во рыцарей: 6
[ Рыцарь: 0 - Друзья: [1, 3, 5] , Рыцарь: 1 - Друзья: [0, 2, 4] , Рыцарь: 2 - Друзья: [1, 3, 5] , Рыцарь: 3 - Друзья: [0, 2, 4] , Рыцарь: 4 - Друзья: [1, 3, 5] , Рыцарь: 5 - Друзья: [0, 2, 4] ]
[0, 0, 0, 0, 0, 0]
Миниатюры
Задача круглый стол короля Артура   Задача круглый стол короля Артура  
0
20.12.2021, 09:26
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2021, 09:26
Помогаю со студенческими работами здесь

Круглый стол
Нина готовится к приему n гостей, она хочет рассадить их вокруг круглого стола. Нина подумала, что...

Круглый стол
Нина готовится к приему n гостей, она хочет рассадить их вокруг круглого стола. Нина подумала, что...

Круглый стол
За круглым столом собралось 10 товарищей. Перед разговором они решили одновременно пожать другу...

Круглый стол. Написать программу
Сегодня Афанасий пришел на день рождения. Все гости будут сидеть за одним круглым столом, всего для...

Расположить людей за круглый стол по правилу
дано n человек. надо их посадить за кругл стол. для каждого дано список тех, с кем он может...

N (n>2) человек садятся за круглый вращающийся стол
n (n>2) человек садятся за круглый стол вращающийся стол. Два размещения по местам будем считать...

Сколькими способами можно посадить n мужчин и n женщин за круглый стол с определенным условием?
Сколькими способами можно посадить n мужчин и n женщин за круглый стол так, чтобы никакие два лица...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru