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

Поиск часто встречающихся длин чисел и их количества

15.05.2017, 18:45. Показов 5074. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ещё раз здравствуйте, уважаемые. Прошу помощи в решении такой задачи:
Назовём длиной числа количество цифр в его десятичной записи. Например,
длина числа 2017 равна 4, а длина числа 7 равна 1.
Дан набор из N целых положительных чисел, каждое из которых меньше 108
Необходимо определить, числа какой длины чаще всего встречаются
в данном наборе и сколько в нём чисел этой длины.
В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000).
В каждой из последующих N строк записано одно натуральное число,
меньшее, чем 108
И в конце выводится два числа(самая часто встречающаяся длина строки, сколько раз встречалась)
Сам написал начало программы, которое принимает число N, строки и счётчик символов в ней, но что делать дальше я вообще не понимаю.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
count = 0
frequent_len = 0
N = int(input('N:'))
Str = 0
# max = 99999999
 
for i in range(N):
    Str = int(input('Str:'))
    while Str != 0:
        Str = Str // 10
        count += 1
    if count > 1:
        count = 0
Направьте на путь истинный, очень важна эта задача. Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.05.2017, 18:45
Ответы с готовыми решениями:

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

Записать в конец файла таблицу с указанием трех наиболее часто встречающихся слов и количества их повторений
Само задание: Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30...

Записать в конец текстового файла таблицу с указанием трех наиболее часто встречающихся слов и их количества
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк)....

10
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
15.05.2017, 21:18
Цитата Сообщение от endgage12 Посмотреть сообщение
И в конце выводится два числа(самая часто встречающаяся длина строки, сколько раз встречалась
ну если сами числа в дальнейшем не нужны то лучше сразу получать их длину в словарь где ключ это длина а значение частота встречаемости
Python
1
2
3
4
5
6
7
8
list_len ={}
N = int(input('N:'))
for _ in range(N):
      key = len(input())
      if key in list_len:
            list_len[key] += 1
      else:
            list_len[key] = 1
ну а дальше ищите максимальное значение словаря это частота встречаемости а ключ это самая часто встречающаяся длина строки
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
15.05.2017, 21:45
Я, конечно, далёк от всего этого, но в код Semen-Semenich, я бы вот что добавил:

Python
1
2
3
4
5
6
7
8
9
list_len ={}
N = int(input('N:'))
for _ in range(N):
      key = len(str(int(input())))
      if key in list_len:
            list_len[key] += 1
      else:
            list_len[key] = 1
print (list_len)
Смысл: если будет введено не число, то интерпретатор ругнётся. Извините.
1
0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 7
16.05.2017, 03:08  [ТС]
Классный вариант, только на егэ нельзя пользоваться функциями библиотек (в том числе и len), и проверяющий смотрит на алгоритм, пойду курить словарь. Спасибо
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
16.05.2017, 04:58
Цитата Сообщение от endgage12 Посмотреть сообщение
Классный вариант, только на егэ нельзя пользоваться функциями библиотек (в том числе и len), и проверяющий смотрит на алгоритм, пойду курить словарь. Спасибо
len - встроенная функция
https://docs.python.org/3/library/functions.html
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
16.05.2017, 13:35
Лучший ответ Сообщение было отмечено endgage12 как решение

Решение

Цитата Сообщение от endgage12 Посмотреть сообщение
Классный вариант, только на егэ нельзя пользоваться функциями библиотек
так что тебе мешает написать свои? только очень громоздко будет. вот как вариант
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# проверяем состоит ли из цифр
def control(x):
      for i in x:
            if i not in '0123456789': 
                  return 1
            return 0
      
def assembly(list_len,x):
      #получаем длину строки
      lenx = 0
      for i in x:
           lenx += 1
      # заполняем словарь ключ-длина строки,значение-частота
      if lenx in list_dict:
            list_dict[lenx] += 1
      else:
            list_dict[lenx] = 1
            
 #получаем значения словаря в список а заодно и длину списка
def sorted_list(list_dict):
      list_val = []
      len_list = 0
      for i in list_dict: 
            len_list  += 1
            list_val += [ list_dict [i] ] # без функции append
      # сортируем список значений по убыванию ( первый максимальный)
      while len_list:
            for i in range(len_list-1):
                  if list_val[i] < list_val[i+1]:
                        list_val[i+1],list_val[i] = list_val[i],list_val[i+1]
            len_list -= 1
      # возвращаем первый элемент list_val[0]  так как len_list == 0 
      return list_val[len_list] 
                       
      
list_dict = {}
N = int(input('N:'))
for _ in range(N):
      x = input('-->>>  ')
      while control(x):
            print('это не число')
            x = input()
            control(x)
      assembly(list_dict,x)
      
# находим максимальную встречаемость строки 
max_ = sorted_list(list_dict)
# ищем совпадение значения словаря с максимальным
for i in list_dict: 
      if max_ == list_dict[i]:
            print('''самая часто встречающаяся длина- {},
                       встречалась- {}'''.format(list_dict[i],max_ ))
            break
1
5 / 5 / 1
Регистрация: 20.05.2017
Сообщений: 44
22.05.2017, 04:52
ключ в словаре длина, значение как часто встречается
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
box = {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0,
       "9": 0}
dlina = 0
n = int(input('N:'))
Str = ''
for i in range(n):
    Str = int(input('Str:'))
    dlina = 0
    while Str != 0:
        Str = Str // 10
        dlina += 1
    if Str == 0:
        box[str(dlina)] += 1
else:
    res = 1
    for i in range(1, 9):
        if box[str(i)] < box[str(i + 1)]:
            res = i + 1
    else:
        print(box[str(res)], res)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.05.2017, 05:22
Цитата Сообщение от endgage12 Посмотреть сообщение
только на егэ нельзя пользоваться функциями библиотек (в том числе и len)


Добавлено через 6 минут
Python
1
2
from collections import Counter
mc_len, mc_count = Counter(len(str(x)) for x in {1, 22, 33, 44, 123, 234, 1234}).most_common(1)[0]
0
5 / 5 / 1
Регистрация: 20.05.2017
Сообщений: 44
22.05.2017, 05:27
Если нельзя функциями то модулями тем более))
0
22.05.2017, 06:12

Не по теме:

система образования - такая система...

0
0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 7
05.06.2017, 13:41  [ТС]
Ребят, всем большое спасибо за помощь. Информатику написал ещё 29 мая, задачи были посильные, благодаря вашим ответам намного лучше разобрался в написании программ на python. Правда задача попалась абсолютно другая, но это уже отдельная тема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2017, 13:41
Помогаю со студенческими работами здесь

Поиск наиболее часто встречающихся слов в файле
Дан символьный файл f, содержащий произвольный текст длиной более 5000 слов. Слова в тексте разделены пробелами и знаками препинания....

Поиск наиболее часто встречающихся значений в DGV
Имеется dgv,которое,как источник данных использует таблицу access.Каким способом/алгоритмом можно найти наиболее часто встречающееся...

Перевод с C# на С++ (в заданном тексте найти 20 наиболее часто встречающихся слов с указанием количества использования каждого из них)
Помогите пожалуйста перевести с C# на С++.... Я не очень хорошо сейчас знаю библиотеку STL... Задание такое: В заданном тексте найти 20...

Как с С# переделать на Си? (поиск 5 наиболее часто встречающихся слов)
В заданном тексте найти 5 наиболее часто встречающихся слов с указанием количества использования каждого из них. using System; ...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru