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

Найти числа, которые присутствуют подряд в 5-8 строках

14.02.2020, 11:57. Показов 3267. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста найти числа, которые залипают(присутствуют подряд в 5-8 строках )
формат файла такой:
[2, 5, 8, 9, 11, 13, 16, 20, 27, 31, 33, 38, 43, 45, 61, 65, 71, 75, 77, 78]
[9, 11, 12, 13, 17, 21, 22, 23, 24, 27, 28, 40, 44, 52, 55, 56, 58, 60, 68, 71]
[1, 13, 19, 33, 35, 36, 41, 44, 46, 47, 48, 52, 59, 65, 66, 69, 70, 74, 76, 80]
[1, 4, 6, 18, 27, 29, 31, 32, 34, 35, 40, 46, 48, 49, 67, 68, 69, 71, 73, 79]
[1, 7, 12, 13, 14, 18, 20, 21, 31, 39, 40, 43, 46, 49, 52, 53, 63, 70, 72, 76]
[1, 4, 5, 8, 9, 13, 14, 15, 16, 17, 22, 34, 39, 40, 43, 54, 55, 70, 71, 74]
[3, 6, 9, 19, 23, 31, 32, 37, 39, 43, 45, 46, 47, 51, 54, 56, 66, 67, 76, 78]
[4, 11, 12, 14, 15, 16, 18, 24, 25, 30, 34, 37, 41, 42, 45, 57, 69, 71, 72, 74]
[5, 20, 22, 34, 36, 38, 40, 48, 49, 50, 51, 52, 55, 60, 68, 71, 72, 76, 77, 80]
[4, 5, 6, 7, 8, 11, 17, 20, 28, 35, 36, 40, 50, 54, 63, 64, 66, 68, 74, 79]
[6, 9, 22, 24, 27, 29, 34, 35, 36, 38, 42, 43, 47, 48, 50, 51, 59, 60, 66, 68]
[1, 2, 10, 12, 13, 16, 22, 26, 40, 52, 53, 57, 58, 62, 74, 76, 77, 78, 79, 80]
[12, 16, 18, 20, 23, 24, 26, 27, 28, 32, 33, 39, 41, 52, 55, 57, 58, 59, 70, 78]
[3, 8, 21, 22, 24, 28, 31, 32, 34, 35, 40, 41, 44, 49, 56, 67, 69, 72, 74, 80]
[4, 6, 7, 8, 15, 18, 19, 29, 33, 38, 40, 41, 47, 51, 60, 61, 71, 76, 77, 79]
[8, 10, 13, 14, 19, 37, 39, 42, 44, 46, 52, 53, 58, 59, 61, 62, 65, 71, 76, 78]
[4, 6, 7, 9, 10, 18, 20, 22, 26, 30, 33, 35, 39, 48, 49, 50, 52, 60, 71, 76]
[7, 10, 16, 17, 27, 30, 38, 40, 42, 45, 48, 49, 50, 51, 62, 66, 70, 74, 77, 78]
[4, 5, 7, 11, 14, 17, 19, 22, 25, 30, 33, 34, 41, 62, 63, 66, 67, 69, 75, 77]

здесь видно, что 1 залипает 4 раза

а вот сам файл:
result.zip
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2020, 11:57
Ответы с готовыми решениями:

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

Найти и вывести все числа, которые присутствуют в векторе более одного раза
// 2) a = // Найти и вывести все числа, которые присутствуют в списке более одного раза. пытался вот как то так) // 2) a = //...

Найти числа, которые встречаются во всех строках матрицы
Нужно написать программу с использованием процедур и функций. Задана целочисленная матрица A, размера m×n. Числа в каждой строке...

16
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.02.2020, 12:11
Нужно найти повторяющиеся или обязательно повторяющиеся в разных строках? А в пределах одной строки - можно повторяться?
0
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 12:15  [ТС]
Catstail, Нужно чтобы именно повторялись например в 10,11,12,13,14 строке. т.е. без разрывов
т.е. если повторяется число в 10,11, ,13,14, то уже там разрыв, их не надо. В пределах одной строки нет повторов

Добавлено через 1 минуту
там кстати забыл написать:
- в строке 20 чисел
- числа от 1 до 80
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
14.02.2020, 12:23
Цитата Сообщение от yanickel Посмотреть сообщение
10,11,12,13,14
Цитата Сообщение от yanickel Посмотреть сообщение
10,11, ,13,14,
- и что здесь повторяется?
0
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 12:49  [ТС]
Catstail, не) я имел ввиду
Цитата Сообщение от yanickel Посмотреть сообщение
10,11,12,13,14
Цитата Сообщение от yanickel Посмотреть сообщение
10,11, ,13,14,

Это не цифры, а строки для примера написал так), Допустим если подряд в 5 строках повторяется число, написать какое число и в скольких строках повторяется). Если например повторяется в 2 строках, в одной не повторяется, и потом снова в 2х строках, то эти числа не надо. Нужно только повторения без разрывов)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.02.2020, 13:27
так что ли?
Кликните здесь для просмотра всего текста
Code
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
1 залипла 4 раз
5 залипла 2 раз
6 залипла 2 раз
8 залипла 3 раз
9 залипла 2 раз
10 залипла 3 раз
11 залипла 2 раз
12 залипла 2 раз
13 залипла 3 раз
14 залипла 2 раз
16 залипла 2 раз
18 залипла 2 раз
19 залипла 2 раз
20 залипла 2 раз
22 залипла 2 раз
24 залипла 2 раз
26 залипла 2 раз
27 залипла 2 раз
28 залипла 2 раз
31 залипла 2 раз
32 залипла 2 раз
34 залипла 2 раз
35 залипла 2 раз
36 залипла 3 раз
37 залипла 2 раз
39 залипла 3 раз
40 залипла 3 раз
41 залипла 3 раз
43 залипла 3 раз
44 залипла 2 раз
45 залипла 2 раз
46 залипла 3 раз
48 залипла 2 раз
49 залипла 2 раз
50 залипла 3 раз
52 залипла 2 раз
54 залипла 2 раз
57 залипла 2 раз
58 залипла 2 раз
61 залипла 2 раз
66 залипла 2 раз
68 залипла 3 раз
69 залипла 2 раз
70 залипла 2 раз
71 залипла 3 раз
72 залипла 2 раз
76 залипла 3 раз
78 залипла 2 раз
0
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 14:52  [ТС]
eaa, да да да!!!)))
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.02.2020, 14:58
yanickel, и что не получается?
Создайте двумерный массив (количество строк)*81
и делайте подсчет.
0
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 15:00  [ТС]
eaa, не могу сделать(
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.02.2020, 15:15
Лучший ответ Сообщение было отмечено yanickel как решение

Решение

как то так:
Кликните здесь для просмотра всего текста
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
lst = [[2, 5, 8, 9, 11, 13, 16, 20, 27, 31, 33, 38, 43, 45, 61, 65, 71, 75, 77, 78],
       [9, 11, 12, 13, 17, 21, 22, 23, 24, 27, 28, 40, 44, 52, 55, 56, 58, 60, 68, 71],
       [1, 13, 19, 33, 35, 36, 41, 44, 46, 47, 48, 52, 59, 65, 66, 69, 70, 74, 76, 80],
       [1, 4, 6, 18, 27, 29, 31, 32, 34, 35, 40, 46, 48, 49, 67, 68, 69, 71, 73, 79],
       [1, 7, 12, 13, 14, 18, 20, 21, 31, 39, 40, 43, 46, 49, 52, 53, 63, 70, 72, 76],
       [1, 4, 5, 8, 9, 13, 14, 15, 16, 17, 22, 34, 39, 40, 43, 54, 55, 70, 71, 74],
       [3, 6, 9, 19, 23, 31, 32, 37, 39, 43, 45, 46, 47, 51, 54, 56, 66, 67, 76, 78],
       [4, 11, 12, 14, 15, 16, 18, 24, 25, 30, 34, 37, 41, 42, 45, 57, 69, 71, 72, 74],
       [5, 20, 22, 34, 36, 38, 40, 48, 49, 50, 51, 52, 55, 60, 68, 71, 72, 76, 77, 80],
       [4, 5, 6, 7, 8, 11, 17, 20, 28, 35, 36, 40, 50, 54, 63, 64, 66, 68, 74, 79],
       [6, 9, 22, 24, 27, 29, 34, 35, 36, 38, 42, 43, 47, 48, 50, 51, 59, 60, 66, 68],
       [1, 2, 10, 12, 13, 16, 22, 26, 40, 52, 53, 57, 58, 62, 74, 76, 77, 78, 79, 80],
       [12, 16, 18, 20, 23, 24, 26, 27, 28, 32, 33, 39, 41, 52, 55, 57, 58, 59, 70, 78],
       [3, 8, 21, 22, 24, 28, 31, 32, 34, 35, 40, 41, 44, 49, 56, 67, 69, 72, 74, 80],
       [4, 6, 7, 8, 15, 18, 19, 29, 33, 38, 40, 41, 47, 51, 60, 61, 71, 76, 77, 79],
       [8, 10, 13, 14, 19, 37, 39, 42, 44, 46, 52, 53, 58, 59, 61, 62, 65, 71, 76, 78],
       [4, 6, 7, 9, 10, 18, 20, 22, 26, 30, 33, 35, 39, 48, 49, 50, 52, 60, 71, 76],
       [7, 10, 16, 17, 27, 30, 38, 40, 42, 45, 48, 49, 50, 51, 62, 66, 70, 74, 77, 78],
       [4, 5, 7, 11, 14, 17, 19, 22, 25, 30, 33, 34, 41, 62, 63, 66, 67, 69, 75, 77]]
 
a = [[0]*len(lst) for _ in range(81)]
for i, row in enumerate(lst):
    for j in row:
        a[j][i] = 1
# print(*enumerate(a), sep='\n')
 
for i, row in enumerate(a):
    k = max_k = 1
    for j in range(1, len(row)):
        if row[j-1] + row[j] == 2:
            k += 1
        else:
            max_k = max(max_k, k)
            k = 1
    if max_k > 1:
        print(i, 'залипла.', max_k, 'раз')
1
16 / 14 / 12
Регистрация: 02.10.2015
Сообщений: 44
14.02.2020, 18:39
Лучший ответ Сообщение было отмечено yanickel как решение

Решение

Не уверен что понял суть задачи, но этот код ищет длиннейшие залипания для каждого числа:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
table = [eval(line) for line in open('result.txt')]
 
width = 20
longest_repeat = {}
 
for i in range(width):
    curr_obj = table[0][i]
    repeat_number = 1
    for line in table[1:]:
        if curr_obj == line[i]:
            repeat_number += 1
        else:
            if longest_repeat.get(curr_obj, 0) < repeat_number:
                longest_repeat[curr_obj] = repeat_number
            curr_obj = line[i]
            repeat_number = 1
 
print(longest_repeat)
1
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 20:20  [ТС]
eaa, Извиняюсь, уже 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
import itertools
import re
import os
from collections import deque
 
with open("result.txt") as f:
    for row_txt in deque(f, 50):
        row_lst = [int(x) for x in re.findall('\d+', row_txt)]
        a = [[0] * len(row_lst) for b in range(81)]
        for i, row in enumerate(row_lst):
            for j in row:
                a[j][i] = 1
            # print(*enumerate(a), sep='\n')
 
    for i, row in enumerate(a):
        k = max_k = 1
        for j in range(1, len(row)):
            if row[j - 1] + row[j] == 2:
                k += 1
            else:
                max_k = max(max_k, k)
                k = 1
        if max_k > 1:
            print(i, 'залипла.', max_k, 'раз')
там из файла должна взять 50 строк и них найти эти числа. но ничего не получается((
result.zip
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.02.2020, 20:44
c 9 по 12 строку левее.
Очередь зачем не понятно.
Я же Вам отвечал по поводу файлов в прошлой теме.
0
0 / 0 / 0
Регистрация: 10.01.2020
Сообщений: 41
14.02.2020, 21:03  [ТС]
eaa, Да, извиняюсь, просто python начал изучать дней 8 назад только, очень понравился язык, но туплю не по детски. =(
с 9-12 строку левее сделал, все равно не запускается:
line 11, in <module>
for j in row:
TypeError: 'int' object is not iterable
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.02.2020, 21:10
Лучший ответ Сообщение было отмечено yanickel как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import re
lst = []
myfile = open("result.txt", 'r')
for row in myfile:
    lst.append([int(x) for x in re.findall('\d+', row)])
 
a = [[0]*len(lst) for _ in range(81)]
for i, row in enumerate(lst):
    for j in row:
        a[j][i] = 1
# print(*enumerate(a), sep='\n')
 
for i, row in enumerate(a):
    k = max_k = 1
    for j in range(1, len(row)):
        if row[j-1] + row[j] == 2:
            k += 1
        else:
            max_k = max(max_k, k)
            k = 1
    if max_k > 1:
        print(i, 'залипла.', max_k, 'раз')
1
16 / 14 / 12
Регистрация: 02.10.2015
Сообщений: 44
14.02.2020, 22:01
Ещё вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
table = [eval(line) for line in open('result.txt')]
longest_repeat = {}
 
for n in range(1, 81):
    occur_count = 0
    for line in table:
        if n in line:
            occur_count += 1
        else:
            if occur_count > 1:
                longest_repeat[n] = max(longest_repeat.get(n, 0), occur_count)
            occur_count = 0
 
print(longest_repeat)
1
16 / 14 / 12
Регистрация: 02.10.2015
Сообщений: 44
15.02.2020, 10:03
Или так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
from itertools import groupby
 
table = [eval(line) for line in open('result.txt')]
longest_repeat = {}
 
for n in range(1, 81):
    contains_groups = groupby(n in line for line in table)
    longest = max(sum(1 for _ in seq) for k, seq in contains_groups if k)
    if longest > 1:
        longest_repeat[n] = longest
 
print(longest_repeat)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2020, 10:03
Помогаю со студенческими работами здесь

Найти и вывести на экран числа, которые встречаются во всех строках матрицы
Задана целочисленная таблица Аm,n, строки которой упорядочены по неубыванию. Требуется найти и вывести на экран числа, которые встречаются...

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

Переписать в третий файл числа, которые присутствуют в обоих файлах
Помогите, пожалуйста, перевести из Паскаль в С++ Заранее буду очень благодарен! uses crt; const n=12; var f,g,h:text; ...

Числа, которые присутствуют хотя бы в одном из двух массивов, слить в третий
Суть такова: условно у нас есть два массива с числами arr1 = и arr2 = , нужно слить в третий массив(arr3) числа, которые присутствуют хотя...

Найти символы которые присутствуют в двух переменных
Есть две переменные, в них записан любой текст, нужно найти символи которые присутствуют в двух переменных


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru