Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2020, 01:36   #11
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Решаем ребус УДАР+УДАР=ДРАКА через массив из 5 букв

Сравнения букв через вложенные циклы

Код:
' dadraka.bas

start = TIMER

DIM a(5)

FOR u = 1 TO 9: a(1) = u
    FOR d = 1 TO 9: a(2) = d
        FOR a = 0 TO 9: a(3) = a
            FOR r = 0 TO 9: a(4) = r
                FOR k = 0 TO 9: a(5) = k

FOR x = 1 TO 4
   FOR y = x + 1 TO 5
       IF a(x) = a(y) THEN GOTO 55
NEXT y: NEXT x

              udar = 1000 * u + 100 * d + 10 * a + r
              draka = d * 10000 + r * 1000 + a * 100 + k * 10 + a

              IF udar + udar = draka THEN PRINT udar, draka

55 NEXT k: NEXT r: NEXT a: NEXT d: NEXT u

finish = TIMER

PRINT finish - start

END
Визуализация комбинаций



https://www.youtube.com/watch?v=cesSFpUl7uI
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 29.08.2020, 14:35   #12
xande.R
Новичок
Джуниор
 
Регистрация: 27.08.2020
Сообщений: 6
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
лень было заполнять все 28 комбинаций
зато отныне есть шаблон решения подобных задач
работающий за 5 секунд

Код:
' dacetyr.bas

start = TIMER

FOR d = 1 TO 9
FOR v = 0 TO 9
FOR a = 0 TO 9

FOR c = 1 TO 9
FOR e = 0 TO 9
FOR t = 0 TO 9
FOR y = 0 TO 9
FOR r = 0 TO 9

if d = v THEN 22
if d = a THEN 33
if v = a THEN 33

if c = e THEN 55
if c = t THEN 66
if c = y THEN 77
if c = r THEN 88

if e = t THEN 66
if e = y THEN 77
if e = r THEN 88

if t = y THEN 77
if t = r THEN 88
if y = r THEN 88

dva = 100 * d + 10 * v + a
cetyre = c * 10 ^ 5 + e * 10 ^ 4 + t * 1000 + y * 100 + r * 10 + e

if dva * dva = cetyre THEN PRINT dva, cetyre

88 NEXT r
77 NEXT y
66 NEXT t
55 NEXT e
44 NEXT c

33 NEXT a
22 NEXT v
11 NEXT d

finish = TIMER

PRINT finish - start

end
? почему 28 комбинаций ?
парадоксально уже отвечал накануне:

https://www.programmersforum.ru/show...63#post1819163

https://www.programmersforum.ru/show...41#post1806541

ищем похожие задачи типа УДАР+УДАР=ДРАКА и решаем за час

Переделал для C++, всё работает. Еще раз спасибо, что напомнили про перебор комбинаций, так гораздо проще, чем в примере, который я скидывал.

Код:
    int cetire;
    for (int d = 1; d <= 9; d++)
        for (int v = 0; v <= 9; v++)
            if (d != v)
                for (int a = 0; a <= 9; a++)
                    if (d != a && v != a)
                        for (int c = 1; c <= 9; c++)
                            if (c != d && c != v && c != a)
                                for (int e = 0; e <= 9; e++)
                                    if (c != e && e != d && e != v && e != a)
                                        for (int t = 0; t <= 9; t++)
                                            if (c != t && e != t && t != d && t != v && t != a)
                                                for (int y = 0; y <= 9; y++)
                                                    if (c != y && e != y && t != y && y != d && y != v && y != a)
                                                        for (int r = 0; r <= 9; r++)
                                                            if (c != r && e != r && t != r && y != r && r != d && r != v && r != a) {
                                                                dva = (100 * d) + (10 * v) + a;
                                                                cetire = (c * 100000) + (e * 10000) + (t * 1000) + (y * 100) + (r * 10) + e;

                                                                if (dva * dva == cetire)
                                                                    return cetire;
                                                            }
xande.R вне форума Ответить с цитированием
Старый 29.08.2020, 16:05   #13
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

ваш DVAcetyre онлайн:

rextester.com/RDWV59659

ответ там внизу
но пришлось добавить int перед dva

и ещё есть другие онлайн компиляторы:
https://www.programmersforum.ru/show...10#post1819210
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 29.08.2020 в 16:17.
сфинкс вне форума Ответить с цитированием
Старый 31.08.2020, 10:24   #14
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Ребусы из букв на qb64 заинтересовали иностранцев

https://www.qb64.org/forum/index.php?topic=2961.0
там используют мою идею: массив и вложенные циклы комбинаций

Помню в прошлом веке была такая олимпийская задача
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 31.08.2020 в 11:49.
сфинкс вне форума Ответить с цитированием
Старый 31.08.2020, 10:57   #15
xande.R
Новичок
Джуниор
 
Регистрация: 27.08.2020
Сообщений: 6
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
Ребусы из букв на qb64 заинтересовали иностранцев

https://www.qb64.org/forum/index.php?topic=2961.0

Помню в прошлом веке была такая олимпийская задача
Классно
xande.R вне форума Ответить с цитированием
Старый 02.09.2020, 20:45   #16
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

в итоге зарубежный создал программу создающую программу
использующую мой принцип: циклы и массив и комбинации

и там в архиве решаются 18 ребусов вплоть до
USA + USSR = PEACE

https://www.qb64.org/forum/index.php...2317#msg122317
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребус на Делфи Jane_Air Помощь студентам 4 11.01.2014 18:40
Ребус Delphi2010 Василий01 Помощь студентам 3 24.12.2012 16:08
Ребус! prelest' Паскаль, Turbo Pascal, PascalABC.NET 1 30.05.2011 22:59
Ребус Junger Помощь студентам 5 30.05.2011 10:29
Ребус solnze.90 Паскаль, Turbo Pascal, PascalABC.NET 10 11.01.2011 23:23