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

Последовательность целых чисел

17.05.2022, 21:55. Показов 15341. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле 17-9.txt содержится последовательность целых чисел. Элементы последовательности могут принимать значения от 0 до 1100 включительно. Определите сначала количество троек элементов последовательности, в которых хотя бы два числа в двоичной системе счисления имеют ровно две единицы и эти же два числа в двоичной системе счисления имеют как минимум один ноль, а затем сумму максимальных чисел из каждой тройки. Под тройкой подразумевается три идущих подряд элемента последовательности.
Выводит не то, что нужно, хотя вроде бы все сделал верно


Python
1
2
3
4
5
6
7
8
9
with open('17-9.txt') as f:
    s = [int(x) for x in f]
    numbers = []
    for i in range(1, len(s)):
        if (str(bin(s[i])).count('0'))-1 >= 1 and (str(bin(s[i-1])).count('0'))-1 >= 1 and (str(bin(s[i])).count('1')) == 2 and (str(bin(s[i-1])).count('1')) == 2:
            numbers.append(max(s[i], s[i-1], s[i+1]))
    numbers.append(max(s[i], s[i-1], s[i+1]))
 
print(len(numbers), sum(numbers))
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2022, 21:55
Ответы с готовыми решениями:

Есть N и последовательность N целых чисел. Найди среднее арифметическое чётных чисел
Есть N и последовательность N целых чисел. Найди среднее арифметическое чётных чисел. Если таких нет, выведи “Чётных чисел нет”. Ввод ...

Дана последовательность целых чисел, 0 – конец последовательности. Определить сумму трех наибольших чисел
Дана последовательность целых чисел, 0 – конец последовательности. Определить сумму трех наибольших чисел. Нужна ещё блок схема, но не...

Дана последовательность целых чисел, 0 – конец последовательности. Определить сумму трех наибольших чисел
Дана последовательность целых чисел, 0 – конец последовательности. Определить сумму трех наибольших чисел. Java Помогите пожалуйста

12
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 22:20
What is this?
Python
1
(str(bin(s[i])).count('0'))-1 >= 1
И еще смысл 7-й строки проясните.
0
0 / 0 / 0
Регистрация: 17.05.2022
Сообщений: 5
17.05.2022, 22:25  [ТС]
ну седьмая строка добавляет максимальные подходящие тройки в массив
в пятой строке поиск указанных в задании чисел
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 22:29
Цитата Сообщение от d1saster Посмотреть сообщение
ну седьмая строка добавляет максимальные подходящие тройки в массив
Почему подходящие?

Добавлено через 1 минуту
И посмотрите, что в последней итерации цикла происходит
0
0 / 0 / 0
Регистрация: 17.05.2022
Сообщений: 5
17.05.2022, 22:31  [ТС]
А... то есть я должен был включать все тройки...
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 22:33
Цитата Сообщение от d1saster Посмотреть сообщение
в пятой строке поиск указанных в задании чисел
У вас в задании сказано два из трех, а вы проверяете только первое и второе. Но могут быть, например, первое и третье.
0
0 / 0 / 0
Регистрация: 17.05.2022
Сообщений: 5
17.05.2022, 22:37  [ТС]
а можно ли в коде как-то проще это записать?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 22:49
Python
1
2
3
4
5
6
7
8
9
10
def is_fit(n):
    if str(bin(n)).count('0')) >= 2 str(bin(s[i])).count('1') == 2:
        return 1
    return 0
    
for i in range(1, len(s) - 1):
        if sum(is_fit(x) for x in s[i-1:i+2]) >= 2:
            numbers.append(max(s[i], s[i-1], s[i+1]))
 
print(len(numbers), sum(numbers))
0
0 / 0 / 0
Регистрация: 17.05.2022
Сообщений: 5
17.05.2022, 23:04  [ТС]
большое спасибо! но ответ все равно не тот. вывело 15 6934, а должно 14 6268
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 23:11
Лучший ответ Сообщение было отмечено d1saster как решение

Решение

Писал вслепую, без проверки. там опечатка в is_fit
Правильно так:
Python
1
2
3
4
5
6
7
def is_fit(n):
    if str(bin(n)).count('0') >= 2 and str(bin(n)).count('1') == 2:
        return 1
    return 0
    
numbers = [max(s[i-1:i+2]) for i, v in enumerate(s[1:-1], start = 1) if sum(is_fit(x) for x in s[i-1:i+2]) >= 2]
print(len(numbers), sum(numbers))
1
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
17.05.2022, 23:17
Если без списков и для большого файла, можно так:
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
with open('17-9.txt') as f:
    cmax = c = i = 0
    a3 = False
    fun = lambda x: (x>3 and bin(x).count('1') == 2)
    for x in f.read():
        
        if i < 2:
            if i==0:
                a1, c1 = n, fun(n)
            else:
                a2, c2 = n, fun(n)
        
        else:
            if a3:
                a1, a2, a3 = a2, a3, n 
                c1, c2, c3 = c2, c3, fun(n)
            else:
                a3, c3 = n, fun(n)
            
            if c1+c2+c3>1:
                cmax = max(a1+a2+a3, cmax)
                c += 1
        i += 1
print(c, '\n', cmax)
Добавлено через 1 минуту
P.s. В условии вроде про один ноль
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
17.05.2022, 23:22
Цитата Сообщение от Gdez Посмотреть сообщение
P.s. В условии вроде про один ноль
Я тоже в начале зацепился, но
Python
1
2
3
print(str(bin(4)))
 
0b100
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
17.05.2022, 23:26
Red white socks, Верно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2022, 23:26
Помогаю со студенческими работами здесь

Последовательность целых чисел
Дана последовательность целых чисел a1, a2, a3, ..., an, заканчивающаяся числом 0 (само число 0 в последовательность не входит, то есть...

Дана последовательность целых чисел a1, a2, …, aN
Дана последовательность целых чисел a1, a2, …, aN. Элементы последовательности – случайные числа из диапазона от -55 до 60 включительно....

Последовательность положительных целых чисел
По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их 2. Каждое число передается...

Дана последовательность из n целых чисел
Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2. ...

Последовательность целых чисел, каждое на отдельной строчке
Вася очень любил повторять действия, ведь повторение – мать учения. Как-то раз он взял число и стал его умножать на два, пока не...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru