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

Преобразовать массив, уменьшив каждую его серию на один элемент

07.12.2022, 08:42. Показов 1403. Ответов 17

Студворк — интернет-сервис помощи студентам
Дан целочисленный массив размера N, содержащий по крайней мере одну серию
длина которой больше 1. Преобразовать массив, уменьшив каждую его серию на один элемент.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2022, 08:42
Ответы с готовыми решениями:

Преобразовать массив, увеличив каждую его серию на один элемент
Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент (определение серии дано на 1-ой ...

Преобразовать массив, уменьшив каждую его серию на один элемент
Дан целочисленный массив размера N, содержащий по крайней мере одну серию, длина которой больше 1. Преобразовать массив, уменьшив каждую ...

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

17
6 / 4 / 3
Регистрация: 07.12.2022
Сообщений: 12
07.12.2022, 09:06
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
# Дан массив целых чисел размером N, содержащий по крайней мере одну последовательность, длина которой больше 1. Преобразуйте массив, уменьшив каждую последовательность на один элемент.
 
# Инициализируем массив
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
# Инициализируем две переменные, одна для индекса массива, другая для длины серии
i = 0
seq_len = 1
 
# Итерируемся по массиву
while i < len(arr):
    # Доходим до конца серии
    while i+1 < len(arr) and arr[i] == arr[i+1] - 1:
        i += 1
        seq_len += 1
    
    # Если длина серии больше 1, то уменьшаем длину серии на один элемент
    if seq_len > 1:
        arr[i-seq_len+1:i+1] = range(arr[i-seq_len+1], arr[i-seq_len+1]+seq_len-1)
    
    # Сбрасываем длину серии и переходим к следующему элементу
    seq_len = 1
    i += 1
 
# Выводим массив после преобразования
print(arr)
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
12.12.2022, 11:05  [ТС]
Дан целочисленный массив размера N, содержащий по крайней мере одну серию, длина которой больше 1
Преобразовать массив, уменьшив каждую его серию на один элемент.
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
12.12.2022, 11:14
GuFFo, а "серия" - это что?
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
12.12.2022, 11:27  [ТС]
1 1 1 - серия из 3 элементов
0
60 / 18 / 6
Регистрация: 02.12.2022
Сообщений: 92
12.12.2022, 11:35
Python
1
2
3
4
5
6
7
8
9
10
11
12
x = int(input())
y = int(input())
c = [[i for i in range(j+1, j+x+1)] for j in range(0, x*y - 1, x)] # первоначальная матрица
 
[print(*j) for j in c ]
print()
for i in c:
    if len(i) > 1:
        i.pop()
    else:
        continue
[print(*i) for i in c] # итоговая матрица, каждый список уменьшен на 1 элемент
если я правильно понял задание, что со мной случается не часто)))
пробелы не сохраняются в коде ((
Изображения
 
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.12.2022, 12:19
Я все же думаю, что тут про список речь.
[1,1,1,2,2,2,2,3,4,5,5,5,5] -> [1,1,2,2,2,5,5,5]

Добавлено через 5 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from random import randint
 
a = [randint(1, 2) for _ in range(10)]
print(a)
 
i = 0
while i < len(a) - 1:
    if a[i] != a[i + 1]:
        a.pop(i)
        continue
    i += 1
else:
    a.pop(-1)
print(a)
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
12.12.2022, 12:44  [ТС]
Твой код то, что нужно но он не работает
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
12.12.2022, 12:47  [ТС]
Alexarh Крч, у преподавателя спросил нужно как у чела сверху сделать, но его код не робит
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
12.12.2022, 12:52
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from random import randint
 
a = [randint(1, 2) for _ in range(10)]
print(a)
i = 1
p = a[0]
s = False
while i < len(a) - 1:
    if p == a[i] == a[i+1]:
        s = True        
    elif s:
        s = False
        p = a[i+1]
        a.pop(i)
    p = a[i]
    i +=1
if s:
    a.pop(-1)
print(a)
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.12.2022, 12:54
GuFFo, напиши пример ввода/вывода. Что входит, а что выходит из программы.
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
12.12.2022, 12:57  [ТС]
Alexarh Пришло
1 2 3
4 5 6
7 8 9
Вышло
1 2
4 5
7 8
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
12.12.2022, 13:06
Python
1
2
3
4
5
6
a = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]
 
b = [line[:-1] for line in a]
print(*b, sep='\n')
Добавлено через 1 минуту
Так точнее, если преобразовать:
Python
1
2
3
4
5
6
7
a = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]
 
for i in range(len(a)):
    a[i] = a[i][:-1]
print(*a, sep='\n')
0
60 / 18 / 6
Регистрация: 02.12.2022
Сообщений: 92
12.12.2022, 15:33
а какой код то не работает?

Добавлено через 2 минуты
так я же дал код выше????
или этот не работает?

Python
1
2
3
4
5
6
7
8
9
10
11
12
x = int(input())
y = int(input())
c = [[i for i in range(j+1, j+x+1)] for j in range(0, x*y - 1, x)] # первоначальная матрица
 
[print(*j) for j in c ]
print()
for i in c:
    if len(i) > 1:
        i.pop()
    else:
        continue
[print(*i) for i in c] # итоговая матрица, каждый список уменьшен на 1 элемент
если я правильно понял задание, что со мной случается не часто)))
пробелы не сохраняются в коде ((
0
60 / 18 / 6
Регистрация: 02.12.2022
Сообщений: 92
12.12.2022, 16:09
а если заменить _ на пробелы?
0
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 15
13.12.2022, 13:29  [ТС]
MVS33Я и табулировал, просто сам код не работает
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
13.12.2022, 14:02
Я запутался… Какой должен быть ввод-вывод?
1.
Code
1
[1,1,1,2,2,2,2,3,4,5,5,5,5] -> [1,1,2,2,2,5,5,5]
или
2.
Code
1
2
3
4
5
6
7
1 2 3
4 5 6
7 8 9
Вышло
1 2
4 5
7 8
0
60 / 18 / 6
Регистрация: 02.12.2022
Сообщений: 92
15.12.2022, 06:43
Лучший ответ Сообщение было отмечено GuFFo как решение

Решение

у меня все работает... если принимает автомат, то надо убрать лишний принт - изначальной матрицы
Python
1
2
3
4
5
6
7
8
9
10
11
12
x = int(input())
y = int(input())
c = [[i for i in range(j+1, j+x+1)] for j in range(0, x*y - 1, x)] # первоначальная матрица
 
[print(*j) for j in c ]
print()
for i in c:
    if len(i) > 1:
        i.pop()
    else:
        continue
[print(*i) for i in c] # итоговая матрица, каждый список уменьшен на 1 элемент
Миниатюры
Преобразовать массив, уменьшив каждую его серию на один элемент  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2022, 06:43
Помогаю со студенческими работами здесь

Преобразовать массив, увеличив его последнюю серию наибольшей длины на один элемент
Дан целочисленный массив размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов...

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

Преобразовать массив, уменьшив каждую его серию на один элемент
Решите задачи данной группы, оформив решение в виде процедур генерации, вывода и обработки массивов. Предусмотрите в процедуре генерации...

Преобразовать массив, уменьшив каждую его серию на один элемент
В for/while/repeat. Дан целочисленный массив размера N. Преобразовать массив, уменьшив каждую его серию на один элемент. Серия-это группа...

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
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
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru