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

Стековая гистограмма

26.10.2021, 10:50. Показов 7688. Ответов 12

Студворк — интернет-сервис помощи студентам
Название: gist.png
Просмотров: 114

Размер: 2.2 Кб
По определению Википедии, стековая гистограмма отображает зоны, представляющие свойства одной категории, друг поверх друга. Имеется n категорий с двумя свойствами. Требуется нарисовать стековую гистограмму без подписей в консоли с использованием символов ".*#", как показано в примере.

Формат входных данных
В первой строке на вход подается одно натуральное число n — количество категорий в гистограмме. 2≤n≤50. Во второй строке через пробел записано n натуральных чисел a1,...,an — значения первого свойства для каждой категории. В третьей строке аналогично записаны натуральные числа b1, ... bn — значения второго свойства. 1≤ai, ​bi≤20.

Формат выходных данных
Требуется вывести в консоль текстовое представление гистограммы. Текст должен содержать ровно max(ai+bi) строк, каждая строка должна содержать ровно n символов и завершаться переводом строки. Если рассматривать текст по столбцам, то i-тый столбец должен содержать снизу ровно ai далее bi вездочек, а еще выше — точки.

Методика проверки и пояснение к тесту
Программа проверяется на 5 тестах. Прохождение каждого теста оценивается в 4 балла. Тест из условия задачи при проверке не используется.

На картинке изображена гистограмма из примера. Синие квадратики соответствуют решеткам, зеленые — звездочкам, белые — точкам. Количество строк равно высоте самого высокого столбика.

Sample Input:
5
3 2 1 5 2
1 6 1 2 2

Sample Output:
Code
1
2
3
4
5
6
7
8
.*...
.*.*.
.*.*.
.*.#.
**.#*
#*.#*
##*##
#####
Пожалуйста, помогите, очень прошу!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2021, 10:50
Ответы с готовыми решениями:

Гистограмма
написать программу, которая будет отображать гистограммы атрибута длины чашелистика отдельно для каждого жанра

Гистограмма
Диаграмма, в которой значения отображаются в виде разных по высоте столбиков, называется вертикальной гистограммой. А если к имеющимся...

Гистограмма с накоплением
Диаграмма, в которой значения отображаются в виде разных по высоте столбиков, называется вертикальной гистограммой. А если к имеющимся...

12
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
26.10.2021, 11:31
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
stack_histo([3,2,1,5,2],[1,6,1,2,2])
0
1 / 1 / 1
Регистрация: 08.04.2020
Сообщений: 35
26.10.2021, 12:03  [ТС]
Catstail, Большое спасибо!
На тестах в редакторе кода всё работает, но сайт выдаёт ошибку. 0 из 5 тестов пройдено.
Что не так и что делать, скажите пожалуйста?!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
26.10.2021, 12:57
Gleb-sirius-pro, ты сам хоть строку кода писал? Или только списываешь то, что пишут другие? Конечно, если мой код тупо "сунуть на вход" тестирующей системе, то будет нехорошо... Попробуй это:

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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
_=input()
a=list(map(int,input().split())
b=list(map(int,input().split())
 
stack_histo(a,b)
Добавлено через 3 минуты
Gleb-sirius-pro, и еще: программировать "учишься", а даже метки выбираешь дурацкие ( "python, python 3, python 3.7, python 3.x, Задачи, информатика") Ты понимаешь, для чего нужны метки? Для быстрого поиска. И что найдут по твоим меткам?
1
0 / 0 / 0
Регистрация: 26.10.2021
Сообщений: 1
26.10.2021, 17:17
Программа не проходит на платформе. Ответы совпадают только на представленном в описании примере. +скобки не закрыты
0
26.10.2021, 17:25

Не по теме:

Catstail, школьная олимпиада началась. ждем наплыв, еще три дня будет в других регионах)))

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
26.10.2021, 17:59
boat_CheRChill, я плАчу!

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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
_=input()
a=list(map(int,input().split()))
b=list(map(int,input().split()))
 
stack_histo(a,b)
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
5
1 2 3 4 5
5 4 3 2 1
 
* * * * *
* * * * #
* * * # #
* * # # #
* # # # #
# # # # #
 
6
2 7 11 9 3 4  
0 2 8 13 6 5
. . . * . .
. . . * . .
. . . * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . # * . .
. . # * . .
. * # # * *
. * # # * *
. # # # * *
. # # # * *
. # # # * *
. # # # * #
. # # # # #
# # # # # #
# # # # # #
0
0 / 0 / 0
Регистрация: 26.10.2021
Сообщений: 1
26.10.2021, 19:14
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
n, m = map(int, input().split())
out = []
if m > n:
    for i in range(m):
        out.append(n*m-i-1)
    for i in range(n):
        out.append(n*m-(i+1)*(i+1))
    for i in range(n-1):
        out.append(n*m - (n-i-1)*(m-i-1))
    
        
if m < n:
    for i in range(n):
        out.append(n*m-i-1)
    for i in range(m):
        out.append(n*m-(i+1)*(i+1))
    for i in range(m-1):
        out.append(n*m -(n-i-1)*(m-i-1))
        
if m == n:
    for i in range(m+1):
        out.append(n*m-i-1)
    for i in range(n-1):
        out.append(n*m - (n-i-1)*(m-i-1))
 
for i in range(m-1):
    out.append(n*m-n*(i+1))
for i in range(n-1):
    out.append(n*m-m*(i+1))
 
new_out = list(set(out))
new_out.sort()
for el in new_out:
    print(el,'', end='')
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
27.10.2021, 08:08
Alexander_2157, что это?
0
1 / 1 / 1
Регистрация: 08.04.2020
Сообщений: 35
27.10.2021, 11:27  [ТС]
Catstail, Я хорошо знаю Python, поэтому ввод я написал сам. Я умею читать код.
Но ваше решение не принимается платформой, хотя работает в редакторе кода!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
27.10.2021, 11:52
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Я хорошо знаю Python
- тогда покажи свое решение.
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Я умею читать код.
- молодец!
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Но ваше решение не принимается платформой
- я не знаю требований этой платформы. А ты знаешь. Питон знаешь хорошо. Бери мое решение и подгоняй под "требования"!
0
0 / 0 / 0
Регистрация: 03.04.2020
Сообщений: 9
27.10.2021, 14:47
Я знаю в чём проблема. Проблема в том что в требованиях указано что должно быть без пробелов, а тут получается с пробелами.
0
1 / 1 / 0
Регистрация: 27.10.2021
Сообщений: 1
27.10.2021, 14:55
Конечно у тебя не будет работать, если ты не уберешь пробелы...., так элементарно...(специально для тебя убрал, используя программу человека сверху, так как она отличная)


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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row, sep = '')
        
_=input()
a=list(map(int,input().split()))
b=list(map(int,input().split()))
 
stack_histo(a,b)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2021, 14:55
Помогаю со студенческими работами здесь

Гистограмма
Здравствуйте, моя программа выполняет 59 из 66 тестов. Подскажите, как её изменить. Гистограмма является многоугольником, сформированным...

Гистограмма
Пожалуйста помогите! Мне срочно нужно написать программу которая считывает числа в входном файле и строит гистограмму в выходном. ...

Гистограмма
Всем доброго времени суток, подскажите есть ли в питоне средства для создания гистограммы изображения? если нет, то может быть формулы...

Гистограмма в python
Доброго времени суток! подскажите пожалуйста как быть. Есть данные получаемые из таблицы excel по которым я строю гистограмму с помощью...

Гистограмма matplotlib
привет. нигде не найду русскую доку мо данной библиотеке. есть у меня такие данные. телефон, время в сек +71, 1 +72, 1534 ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru