4 / 4 / 2
Регистрация: 13.04.2017
Сообщений: 282
|
|
1 | |
Есть ли вариант решения задачи кроме перебора?29.12.2019, 05:03. Показов 740. Ответов 6
Метки нет (Все метки)
Здравствуйте! Ломаю голову над, возможно лёгкой, задачей. Я боюсь, что её можно решить лишь тупым перебором, но не исключаю того, что она имеет нормальное математическое решение. Задача следующая.
Входные данные В каждой строке входных данных будет задано одну пару чисел X и Y, которые разделены как минимум одним пробелом, причём пробелы могут в каждой строке находится и до и после пары чисел и эти пробелы должны быть проигнорированы. Системы счисления для X и Y находятся в пределах от 1 до 36 (включительно), и как уже было сказано выше не должны быть равны для заданных X и Y. В представлении чисел используются десятичные цифры от 0 до 9 а также большие латинские буквы от A до Z для представления цифр имеющих значение от 10 до 35. Выходные данные Для каждой пары чисел выведите соответствующее сообщение о равенстве этих чисел в соответствующих системах счисления, как это показано в примерах выходных данных. В случае невозможности нахождения систем счисления, в которых эти выражения обозначают соответствующее одинаковое привычное десятичное число, также выведите сообщение об этом, как это показано в примере выходных данных. Пример Входные данные #1 | Выходные данные #1 12 5 | 12 (base 3) = 5 (base 6) 10 A | 10 (base 10) = A (base 11) 12 34 | 12 (base 17) = 34 (base 5) 123 456 | 123 is not equal to 456 in any base 2..36 1 2 | 1 is not equal to 2 in any base 2..36 10 2 | 10 (base 2) = 2 (base 3) Если у вас есть идеи, то прошу поделиться!
0
|
29.12.2019, 05:03 | |
Ответы с готовыми решениями:
6
Есть ли короткий путь решения задачи? Есть ли лучшая альтернатива решения задачи? Прошу предложить лучший вариант перебора массива Есть ли какой паттерн для решения подобной задачи? |
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
29.12.2019, 14:00 | 2 |
перебор с отсечениями
сами цифры чисел - очевидно что перебор систем счисления нужно начинать с той которая "поддерживает" наибольшую цифру в числе длинна чисел - очевидно что система счисления у числа с меньшим количеством цифр - будет больше. при равенстве количества цифр - очевидно что система счисления будет больше у того числа, которое использует более маленькие цифры Добавлено через 14 минут Еще такая мысль. Сравнивать цифры которые стоят слева т.е. если есть числа 342 и 15 тут очевидно что у второго числа система счисления больше, поэтому сравниваем (3+1)*A^2 и 1*B^1 если первое меньше второго - то пара систем систем счисления (А, B) точно не является ответом и можно переходить на следующий шаг. Добавлено через 8 минут Если нельзя определить где система счисления больше - то данный метод не применим.
0
|
Диссидент
27707 / 17325 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
31.12.2019, 20:42 | 3 |
Простите, не понял, в каких случаях нельзя определить, какая система больше?
User255, Тут перебор занимает не более 36*36 = 1296 (в худшем случае), то есть весьма невелик.Так что встает вопрос - а стоит? Хотя все соображения уважаемого wingblack вполне разумны. Всех с наступающим Новым Годом!
0
|
4 / 4 / 2
Регистрация: 13.04.2017
Сообщений: 282
|
|
31.12.2019, 20:49 [ТС] | 4 |
Байт, понятно. И вот уже второй год подряд мы поздравляем друг друга с Новым Годом) Так что да, С Новым Годом!
0
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,037
|
|
02.01.2020, 23:42 | 7 |
Ну в принципе да, при равенстве количества цифр - поочередно проверяя цифры начиная слева можно сказать где именно цифра больше.
0
|
02.01.2020, 23:42 | |
02.01.2020, 23:42 | |
Помогаю со студенческими работами здесь
7
Есть ли более простой и оптимальный способ решения данной задачи? Сделать алгоритм решения задачи (описание), есть программа и блок схема Нужны задачи и их решения по темам "Метод полного перебора" и "Метод Greedy" Можно ли определить взаимо простые числа, как-то кроме перебора циклами? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |