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

Задача на маску числа

12.10.2022, 22:13. Показов 15874. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите, пожалуйста, с задачей. Я являюсь +- новичком в Питоне и все пока не до конца могу понимать
Задача: Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих 2·109, найдите все числа, соответствующие маске 1*586?6, запись которых в системе счисления с основанием 7 представляет собой палиндром (не меняется при перестановке цифр в обратном порядке). В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — суммы цифр их семеричной записи.

Вот мой код(если его так можно назвать и еще он не до конца, потому что я не понимаю: c):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
s=''
n=1
sum=0
for i in range(0,10):
    for j in range(0,2000):
        s='1'+str(j)+'586'+str(i)+'6'
        s=int(s)
        while s > 0:
            a = str(s % 7) + a
            s //= 7
            if reversed(s)==s:
        while s>0:
            sum=s%10
            sum=sum//10
            print(s,sum)
            break
Пожалуйста, подскажите, что и где доделать и можно, пожалуйста, в более легкой форме:с
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2022, 22:13
Ответы с готовыми решениями:

Задача на маску IP
Вашему серверу на вход прилетает IP-адрес (v4) клиента. Нужно определить, что IP-адрес – правильный. IP-адрес (v4) считается...

Задача на маску подсети
Такая задачка: Расчитать маску подсети, включающая адреса 10.61.11.160 и 10.61.11.128 и НЕ включающая адрес 10.61.11.64 ?

Как получить чётную маску числа в Си?
У меня есть задание. Даны два символа ch1 и ch2. Получить целое число, последовательность нечетных битов которого представляет собой код...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
13.10.2022, 09:09
Что-то у меня ни одного такого числа не находится... Возможно, я ошибся.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def task():
    mask="1*586?6"
    for q in range(1000):
        sq=str(q)
        k=len(sq)
        if k<3:
            sq='0'*(3-k)+sq
        for u in range(10):
            su=str(u)
            num=int("1"+sq+"586"+su+"6")
            digs=[]
            snum=num
            while num>0:
                digs.append(num%7)
                num=num//7
            if digs==digs[-1::-1]:
                print(snum)
            
            
task()
Да, я ошибся. Рассмотрел не все числа. На месте * может не быть ничего (1), может быть один символ (2), два символа (3) и три символа (4).
Я рассмотрел только возможность 4.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
13.10.2022, 10:06
Bash
1
2
18958656(10) 320101023(7)
1939958656(10) 66034243066(7)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
13.10.2022, 10:17
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Что-то это мне напоминает...
Python
1
2
3
4
mask="1*586?6".replace('*', '\d*').replace('?', '\d?')
#...
if re.fullmatch(mask, str(q)):
   #...
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
13.10.2022, 10:23
тада нужно так: \d{0,4} и время чтобы подождать
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
13.10.2022, 11:46
Поправил свой код... Получилось довольно разлаписто. Даже немного неловко:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
def task():
    for q in range(10000):
        sq=str(q)
        k=len(sq)
        if k<4:
            sq='0'*(4-k)+sq
        for u in range(10):
            su=str(u)
            num=int("1"+sq+"586"+su+"6")
            digs=[]
            snum=num
            while num>0:
                digs.append(num%7)
                num=num//7
            if digs==digs[-1::-1]:
                print(snum)
    
    for q in range(1000):
        sq=str(q)
        k=len(sq)
        if k<3:
            sq='0'*(3-k)+sq
        for u in range(10):
            su=str(u)
            num=int("1"+sq+"586"+su+"6")
            digs=[]
            snum=num
            while num>0:
                digs.append(num%7)
                num=num//7
            if digs==digs[-1::-1]:
                print(snum)
            
    for q in range(100):
        sq=str(q)
        k=len(sq)
        if k<2:
            sq='0'*(2-k)+sq
        for u in range(10):
            su=str(u)
            num=int("1"+sq+"586"+su+"6")
            digs=[]
            snum=num
            while num>0:
                digs.append(num%7)
                num=num//7
            if digs==digs[-1::-1]:
                print(snum)
 
    for q in range(10):
        sq=str(q)
        for u in range(10):
            su=str(u)
            num=int("1"+sq+"586"+su+"6")
            digs=[]
            snum=num
            while num>0:
                digs.append(num%7)
                num=num//7
            if digs==digs[-1::-1]:
                print(snum)
 
    for u in range(10):
        su=str(u)
        num=int("1586"+su+"6")
        digs=[]
        snum=num
        while num>0:
            digs.append(num%7)
            num=num//7
        if digs==digs[-1::-1]:
            print(snum)
            
task()
Вывод:

1939958656
18958656
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
13.10.2022, 12:15
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for k in range(5):
    for x in range(10 ** k):
        for y in range(10):
            if k == 0:
                n = int(f'1586{y}6')
            else:
                n = int(f'1{x:0{k}}586{y}6')
            num = n
            s = ''
            while num:
                s += f'{num % 7}'
                num //= 7
            if s == s[::-1]:
                print(f'{n}(10)', f'{s}(7)')
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
13.10.2022, 13:19
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def to7(n):
    new_n = ''
    while n > 0:
        new_n = str(n % 7) + new_n
        n //= 7
    return new_n
 
d = {}
for i in range(0,10):
    for j in range(0,10000):
        a = to7(int('1'+str(j)+'586'+str(i)+'6'))
        if a[::-1]==a:
            d[a] = sum(map(int, a))
for key in d:
    print(f'{key}\t{to7(d[key])}')
Добавлено через 8 минут
Точнее так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def to7(n):
    new_n = ''
    while n > 0:
        new_n = str(n % 7) + new_n
        n //= 7
    return new_n
 
d = {}
for i in range(0,10):
    a = to7(int('1586'+str(i)+'6'))
    if a[::-1]==a:
        d[a] = sum(map(int, a))
    for j in range(0,10000):
        a = to7(int('1'+str(j)+'586'+str(i)+'6'))
        if a[::-1]==a:
            d[a] = sum(map(int, a))
for key in d:
    print(f'{key}\t{to7(d[key])}')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2022, 13:19
Помогаю со студенческими работами здесь

как можно определить маску ввода числа в теге INPUT?
Привет всем! 1. подскажите, как можно определить маску ввода числа в теге INPUT (например ###,##0.00) 2. или как проверять...

Очень интересная задача! Для адреса 93.175.16.7/24 вычислить маску сети, широковещательный адрес, адрес сети
А вам по силам справиться? Для адреса 93.175.16.7/24 вычислить маску сети, широковещательный адрес, адрес сети, сколько компьютеров...

Задача:Даны числа N и K, найти разбиение числа N на K слагаемых(без повторений)
Помогите решить задачу самыми простыми способами, без сложных операторов и библиотек.

Задача на написание результатов умножения числа n на числа от 2 до 10
print(&quot;Иванов Матвей 8Г&quot;) n = int(input(&quot;Введите число от 2 до 10:&quot;)) if n &gt;=2 and n &lt;=10: for e in range(1, 10): ...

Задача: Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из
Задача: Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru