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

Словари

09.06.2018, 18:32. Показов 1307. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу

Приняв способ изображения рационального числа в виде записи с двумя полями [числитель, знаменатель] целого типа написать программу, позволяющую:
а) определить, есть ли среди 10 рациональных чисел равные;
б) вычислить наибольшее из данных рациональных чисел (числа не обязательно имеют несократимую форму).
Для хранения рациональных чисел использовать словарь.

Спасибо!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2018, 18:32
Ответы с готовыми решениями:

Словари
Короче, с сайта получаю вот такой ответ. Как из него сделать словарь?

Словари
Создайте основной словарь, содержащий имена продавцов iphone, и модель. Создайте дополнительный словарь, содержащий названия моделей и...

Словари
Решаю задачи на pythontutor.ru У задачи следующее условие Не понимаю как правильно сформировать эти списки. file =...

4
7 / 7 / 9
Регистрация: 07.02.2016
Сообщений: 207
Записей в блоге: 53
09.06.2018, 23:25
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#для 5 ти элементов
#dictt={10:5,10:5,10:5,20:10,30:6}
dictt={10:5,10:2,10:1,20:1,30:6}
#типа дроби 10/5 20/4 30/6
steck=[]
for chisl,znam in dictt.items():
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:#если стек только пуст или там находится одинаковый элемент
      steck.append(otnosh)
    else:
       if len(steck)>=2:
           print('Est odinakovie drobi')
           break
       else:
         steck=[]
         steck.append(otnosh)
Добавлено через 15 минут
Доработанный:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#dictt={10:5,10:5,10:5,20:10,30:6}
dictt={10:5,10:2,10:1,20:1,30:6}
#типа дроби 10/5,10/2,10/1,20/1,30/6
steck=[]
maxx=10/5
n=0
for chisl,znam in dictt.items():
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:#если стек только пуст или там находится одинаковый элемент
      steck.append(otnosh)
    else:
       if len(steck)>=2:
           print('Est odinakovie drobi')
           break
       else:
         steck=[]
         steck.append(otnosh)
    if otnosh>maxx:
        maxx=otnosh
    n+=1
0
 Аватар для oldnick85
36 / 34 / 10
Регистрация: 15.07.2017
Сообщений: 128
10.06.2018, 10:40
Konst2016, Такой вариант найдёт только равные последовательные элементы. Кстати, если в качестве ключа в словаре использовать числитель, то не получится задать две разные дроби с одинаковыми числителями.
Так можно определить наличие равных в предложенной реализации словаря:
Python
1
2
3
4
5
l=[chisl/znam for chisl,znam in dictt.items()]
if (len(l)==len(set(l))):
    print("Нет одинаковых дробей")
else:
    print("Есть одинаковые дроби")
Добавлено через 13 минут
Да, максимум же ещё нужен:
Python
1
print("Максимум=", max(l))
0
7 / 7 / 9
Регистрация: 07.02.2016
Сообщений: 207
Записей в блоге: 53
10.06.2018, 12:18
Такой вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dictt={1:(10,5),2:(10,5),3:(4,2),4:(20,4),5:(30,6)}
maxx=10/5
steck=[] #люблю стек)
n=0
for drob in dictt.values():
    chisl=drob[0]
    znam=drob[1]
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:
        steck.append(True)
    else:
       if len(steck)>= 2 :
            print("Есть одинаковые дроби")
       else:
           steck=[]
           steck.append(otnosh)           
           
    if otnosh>maxx:
        maxx=otnosh
    n+=1 
print('Наибольший элемент под номером:',n)
Добавлено через 1 час 3 минуты
Да сейчас вспомнил со стеком дают равенство последовательных элементов.Такой вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dictt={1:(10,5),2:(10,5),3:(4,2),4:(20,4),5:(30,6)}    
l=[drob[0]/drob[1] for drob in dictt.values()] 
print('Список деления:',l)
if (len(l)==len(set(l))):
    print("Нет одинаковых дробей")
else:
    print("Есть одинаковые дроби")
    
maxx=10/5 
 
for i in l:
    if i>maxx:
        maxx=i
print('max:',maxx) 
 
n=1
for i in l:
    if i==maxx:
        break
    n+=1
print('Наибольший элемент под номером: ',n)
0
 Аватар для oldnick85
36 / 34 / 10
Регистрация: 15.07.2017
Сообщений: 128
10.06.2018, 23:41
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
maxx=10/5 
 
for i in l:
    if i>maxx:
        maxx=i
print('max:',maxx) 
 
n=1
for i in l:
    if i==maxx:
        break
    n+=1
print('Наибольший элемент под номером: ',n)
можно так:
Python
1
2
3
maxx = max(l)
print('max:', maxx) 
print('Наибольший элемент под номером: ', (l.index(maxx)+1))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2018, 23:41
Помогаю со студенческими работами здесь

Словари
Дан словарь, где ключами являются названия литературных произведений, а значениями — фамилии писателей. Создать словарь, где ключами...

Словари
Произошла такая ситуация. Есть словарь, в нем несколько ключей и мне нужно по необходимости помещать несколько описаний для одного ключа....

Словари
Нужно составить словарь из студентов, ФИО, возраст, группа, количество сданных экзаменов. Словарь вот такой: students = * 8 students...

Словари
Имеется словарь следующего вида: {1: , 4: , 5: }, где ключи - цифры от 1 до 9, а значения - списки, состоящие из некоторого количества...

Словари
Подскажите. Никкогда раньше не работал со словарями. Полскажите варимнт решения Даны 2 списка словарей с ключами name и age. Удалить из...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru