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

Ребус: "xisyo+xisyo=sofia"

13.05.2022, 22:39. Показов 3328. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
xisyo
+xisyo
=sofia


Такое вот дело. Это математическая задача, нужно подобрать такие числа, чтобы равенство было верно и каждая буква обозначало свою цифру.
-------------------------------------
(((например
74
+28
=102 это

ab
+cd
=efc
Тут a = 7, b = 4, c = 2, d = 8, e = 1, f = 0)))
---------------------------------------
Наверно стоит попробовать сделать перебором, там от 00000 до 99999 могут быть числа эти (xisyo и sofia)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2022, 22:39
Ответы с готовыми решениями:

Циклы - Ребус: "ИКС+ИСК=КСИ"
Напишите программу, которая выводит решение ребуса ИКС+ИСК=КСИ. Одинаковым буквам соответствуют...

Ребус в задачу
Есть ребус: 157892 = 3 203516 = 2 409578 = 4 236271 = .... Число в правом столбце равно...

Расшифровать ребус созданный по указанным правилам
Глеб очень любит математические ребусы и числа. Сначала Глеб выписывает некоторое слово (или...

6
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 1
13.05.2022, 23:16
Python
1
2
3
4
5
6
7
8
9
10
11
12
a = "xisyo"
b = "xisyo"
c = "sofia"
for i in range(10000, 99999):
    a1 = i
    b1 = a1
    c1 = (str(a1+b1))
    a2 = str(a1)
    if a2[4] == c1[1]:
        if a2[1] == c1[3]:
            print(a2, c1)
    a1 = a1 + 1
Куча решений есть
0
7 / 6 / 1
Регистрация: 18.02.2022
Сообщений: 30
13.05.2022, 23:21
А, например
12064
12064
= 24128

Не будет работать
т.к.

"1" в a[0] это x, а "1" в c[2] это f.
Разные буквы не должны обозначать одинаковые цифры

Если 1 это x, то это везде должно быть, включая ответ



Можно конечно перебрать среди тех, что вывела программа, но их так много что надоест.
1
4 / 6 / 1
Регистрация: 16.04.2022
Сообщений: 139
14.05.2022, 00:04  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a = "xisyo"
b = "xisyo"
c = "sofia"
for i in range(10000, 99999):
    a1 = i
    b1 = a1
    c1 = (str(a1+b1))
    a2 = str(a1)
    if a2[4] == c1[1]:
        if a2[1] == c1[3]:
            if a2[2] == c1[0]:
                if not a2[0] in c1:
                    if not a2[3] in c1:
                        if a2[4] != c1[0] and a2[4] != c1[2] and a2[4] != c1[3] and a2[4] != c1[4]:
                            if a2[2] != c1[1] and a2[2] != c1[2] and a2[2] != c1[3] and a2[2] != c1[4]:
                                if a2[1] != c1[0] and a2[1] != c1[1] and a2[1] != c1[2] and a2[1] != c1[4]:
                                    print(a2, c1)
    a1 = a1 + 1
уже ненадо, решил. свой код прилагаю
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
14.05.2022, 01:01
Лучший ответ Сообщение было отмечено thyrex как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
"""
a = "xisyo"
b = "xisyo"
c = "sofia"
"""
for j in range(10000, 50000):
    t = str(2*j)
    j = str(j)
    if (len(set(j)) == len(set(t)) == 5 
        and len(set(j + t)) == 7 
        and t[0]+t[1]+t[3] == j[2]+j[4]+j[1]):
        print(j, t)
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
14.05.2022, 02:39
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
all_diff = lambda n: len( str(n) )==len( set(str(n)) )
i = 1
for a in range( 10000, 99999//2+1 ):
    b_sofia = 'sofia'
    a_xisyo = 'xisyo'
    b       = a*2
    a_s     = str(a)
    b_s     = str(b)
    if all_diff(a) and all_diff(b)\
    and b_s[ b_sofia.index('s') ]==a_s[ a_xisyo.index('s') ]\
    and b_s[ b_sofia.index('o') ]==a_s[ a_xisyo.index('o') ]\
    and b_s[ b_sofia.index('f') ] not in a_s\
    and b_s[ b_sofia.index('i') ]==a_s[ a_xisyo.index('i') ]\
    and b_s[ b_sofia.index('a') ] not in a_s:
        print(f'{i}) {a}+{a}={b}')
        i += 1
2
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
15.05.2022, 20:17
Лучший ответ Сообщение было отмечено NebraskKrasnod как решение

Решение

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

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
def count_letters(s):
    return sum( [ not s[i].isdigit() for i in range( len(s) ) ] )
#==============================================================================
def get_good_digits( digits, dig_a, dig_b ):
    res = []
    for i in range( len(digits) ):
        if dig_a[i].isdigit() == dig_b[i].isdigit():
            if dig_a[i] == dig_b[i]:
                res.append( str( dig_a[i] ) )
            else:
                return None
        else:
            if dig_a[i].isdigit():
                res.append( dig_b[i] )
            else:
                res.append( dig_a[i] )
    return res
#==============================================================================
def print_rebus( a_word, b_word ):
    print()
    print(f'\t{a_word} + {a_word} = {b_word}')
    all_let_count = len( set(a_word) | set(b_word) )
    if all_let_count > 10:
        print('Количество различных букв, использованных в обоих словах, больше десяти, поэтому решения нет. ')
        return
    i = 0
    min_word_len = min( len(a_word), len(b_word) )
    max_word_len = max( len(a_word), len(b_word) )
    for a in range( 10**( min_word_len - 1 ), 10**( max_word_len ) - 1 ):
        b   = a*2
        a_s = str(a)
        if len(a_s) != len( a_word ):
            continue
        b_s = str(b)
        if len(b_s) != len( b_word ):
            continue
        a_tr    = str.maketrans( a_s, a_word )
        b_tr    = str.maketrans( b_s, b_word )
        digits  ='0123456789'
        dig_a   = digits.translate(a_tr)
        dig_b   = digits.translate(b_tr)
        good_digits = get_good_digits( digits, dig_a, dig_b )
        if not good_digits:
           continue
        good_digits=''.join( good_digits )
        dig_tr = str.maketrans( digits, good_digits )
        if a_s.translate( dig_tr ) == a_word\
        and b_s.translate( dig_tr ) == b_word \
        and all_let_count == count_letters( good_digits ):
            i += 1
            print(f'{i})\t{a} + {a} = {b}')
    if not i:
        print('Нет решений.')
#==============================================================================
print_rebus( 'мороз', 'обрез' )
print_rebus( 'барак', 'кабан' )
print_rebus( 'корова', 'молоко' )
print_rebus( 'xisyo', 'sofia' )
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2022, 20:17
Помогаю со студенческими работами здесь

Астер не слушает порт, FreeSwitch sofia не стартует
Перевел серваки с debian 8 на 10 с учтановкой всего нового софта. Я с такой байдой никогда не...

Решить ребус: VOLVO - FIAT=MOTOR
Собстенно чёткой темы нету вот создал. Ну и сразу хочу попросить помощи с программой 1.Работа с...

Ребус: "муха+муха=слон"
привет! все привет! не могу ни как решить задачу. помогите пожалуйста С использованием множеств...

Ребус "ДАМА+ДАМА+ДАМА=РАЁН"
как решить ребус ДАМА+ДАМА+ДАМА=РАЁН

Арифметический ребус: "КУ:КА = РЭ:КУ"
пожалуйста кто-нибудь помогите решить ребус КУ : КА = РЭ : КУ заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru