Форум программистов, компьютерный форум, киберфорум
Информатика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 07.02.2021
Сообщений: 147

Составить минимальную по длине программу для исполнителя, которая уравнивает числа в паре (28, 64)

12.06.2021, 19:12. Показов 990. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Рассмотрим исполнителя который оперирует над парой целых чисел и умеет выполнять следующие операции над парой (x,y):
- операция `a`x,y) -> (2*x, y+1)
- операция `b`x,y) -> (x+1, 2*y)
Составьте минимальную по длине программу для исполнителя, которая уравнивает числа в паре (28, 64)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2021, 19:12
Ответы с готовыми решениями:

Машина Поста. Составить программу, которая определяет, равны ли по длине две последовательности меток.
помогите пожалуйста!!!!!!!!!!!!! как составить программу для машины Поста, которая будет определять равны ли по длине две...

Составить программу,которая для любого натурального числа печатает количество цифр в записи этого числа
Помагите решить такую штукенцию=) Составить программу,которая для любого натурального числа печатает количество цифр в записи этого...

Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа.
Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа. на turbo pascal надо сделать...

10
 Аватар для FFPowerMan
2152 / 1231 / 508
Регистрация: 11.10.2018
Сообщений: 6,230
12.06.2021, 19:16
Здравствуйте. Чтобы смайликов не было надо использовать тэг [NOPARSE].
0
1 / 1 / 0
Регистрация: 07.02.2021
Сообщений: 147
12.06.2021, 19:21  [ТС]
А там особо ничего важного нет под этими смайлами
0
 Аватар для FFPowerMan
2152 / 1231 / 508
Регистрация: 11.10.2018
Сообщений: 6,230
12.06.2021, 19:30
C++
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
#include <iostream>
using namespace std;
 
struct Para
{
    int a, b;
};
void OpA(struct Para &q)
{
    q.a *= 2;
    q.b++;
}
void OpB(struct Para &q)
{
    q.a++;
    q.b *= 2;
}
 
int main()
{
    struct Para n;
    char s;
    
    n.a = 28;
    n.b = 64;
    
    OpA(n);
    cout << "a = " << n.a << ", b = " << n.b << "\n";
    
    cin >> s;
    while(s != 'q')
    {
        if(s == 'a')
            OpA(n);
        if(s == 'b')
            OpB(n);
        cout << "a = " << n.a << ", b = " << n.b << "\n\n";
        cin >> s;
    }
 
    return 0;
}
0
1 / 1 / 0
Регистрация: 07.02.2021
Сообщений: 147
12.06.2021, 19:43  [ТС]
Извините, а можете написать на языке полегче)

Добавлено через 7 минут
А какая минимальная комбинация a и b нужна, чтобы числа приравнять??
0
 Аватар для FFPowerMan
2152 / 1231 / 508
Регистрация: 11.10.2018
Сообщений: 6,230
12.06.2021, 20:01
Цитата Сообщение от Азиз777 Посмотреть сообщение
Извините, а можете написать на языке полегче)
- на каком?

Добавлено через 8 минут
C++
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
#include <iostream>
#include <limits.h>
using namespace std;
typedef unsigned long long ull;
 
struct Para
{
    ull a, b;
};
 
void OpA(struct Para &q)
{
    q.a *= 2;
    q.b++;
}
void OpB(struct Para &q)
{
    q.a++;
    q.b *= 2;
}
 
int main()
{
    struct Para n;
    char s;
    
    n.a = 28;
    n.b = 64;
    
    OpA(n);
    cout << "a = " << n.a << ", b = " << n.b << "\n";
    
    /*
    cin >> s;
    while(s != 'q')
    {
        if(s == 'a')
            OpA(n);
        if(s == 'b')
            OpB(n);
        cout << "a = " << n.a << ", b = " << n.b << "\n\n";
        cin >> s;
    }
    */
    
    while((n.a <= ULONG_MAX)&&(n.b <= ULONG_MAX))
    {
        if(n.a == n.b)
            break;
            
        if(n.a < n.b)
          OpA(n);
        else
          OpB(n);
        cout << "a = " << n.a << ", b = " << n.b << "\n\n";
    }
 
    return 0;
}
0
Эксперт по математике/физике
5016 / 3628 / 1164
Регистрация: 01.09.2014
Сообщений: 9,790
13.06.2021, 00:10
Минимальная длина программы равна 13. Ее протокол исполнения следующий: (28, 64), (29, 128), (30, 256), (31, 512), (62, 513), (63, 1026), (64, 2052), (128, 2053), (256, 2054), (257, 4108), (514, 4109), (1028, 4110), (2056, 4111), (4112, 4112). Программа найдена полным перебором.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
13.06.2021, 09:01
3D Homer, эта задача не имеет математического решения и только полный перебор и даёт возможность найти кратчайшее решение. Да решение и не требуется, требуется написать программу ДЛЯ ИСПОЛНИТЕЛЯ, а она выглядит так:
bbbabbaabaaaa
0
Эксперт по математике/физике
5016 / 3628 / 1164
Регистрация: 01.09.2014
Сообщений: 9,790
13.06.2021, 10:30
Интересно, что аналогичная тема на форуме уже была, и у меня даже сохранился URL, однако эта тема, по-видимому, была удалена.
0
1 / 1 / 0
Регистрация: 07.02.2021
Сообщений: 147
13.06.2021, 12:04  [ТС]
А как вы получили bbbabbaabaaaa? Как перебирали?
0
Эксперт по математике/физике
5016 / 3628 / 1164
Регистрация: 01.09.2014
Сообщений: 9,790
13.06.2021, 12:42
Цитата Сообщение от Азиз777 Посмотреть сообщение
Как перебирали?
Можно устроить поиск в ширину. (28, 64) можно перевести в (56, 65), а можно в (29, 128). Далее, (56, 65) можно отобразить в (112, 66) или в (57, 130). В свою очередь, (29, 128) переводится в (58, 129) или в (30, 256), и т.д. Можно в глубину: (28, 64) -> (56, 65) -> (112, 66) ... -> (229376, 77) -> (458752, 78). Упс, сделано 14 шагов, а числа все еще не равны. Откатываемся на шаг к (229376, 77) и переводим эту пару в (229377,154). Все равно не равны. Откатываемся на два шага и т.д.

Опытным путем узнаем, что достаточно 13 шагов, поэтому дальше перебор можно обрывать.

Если вам нужно больше информации, то вам тоже придется поделиться контекстом этой задачи. Как сказал кот Бегемот, авторы задачи, скорее всего, не предполагали, что нужно найти аналитическое решение. Значит, нужно написать программу. Поэтому нужна дополнительная информация о том, на каком языке программирования ее писать, в каком разделе рассматривалась эта задача и т.п.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2021, 12:42
Помогаю со студенческими работами здесь

Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа.
Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа. Добавлено через 2 минуты ...

Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа
составить программу,которая для любого натурального числа печатает количество цифр в записи этого числа. предполагается,Что исходное число...

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

Составить программу, которая запрашивает два целых числа для нахождения их суммы
1.Составить программу, которая запрашивает два целых числа для нахождения их суммы. Вывести на экран числа, сумма которых оказалась...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru