|
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 7
|
||||||
Перестановка цифр трехзначного числа17.01.2018, 11:35. Показов 7021. Ответов 10
Метки нет (Все метки)
Комбинаторика. Перестановка цифр трехзначного числа.
Необходимо найти все числа, образуемые путём перестановки цифр исходного числа. Ниже код, написанный чайником. А как бы решить задачу красиво? Подскажите пожалуйста.
0
|
||||||
| 17.01.2018, 11:35 | |
|
Ответы с готовыми решениями:
10
|
|
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
|
|
| 17.01.2018, 13:39 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 7
|
||||||
| 17.01.2018, 21:39 [ТС] | ||||||
|
Я привел выше корявое решение задачи, так как руками сам
написал чередование цифр, а Паскаль только лишь вывел результат на экран. Но нужен алгоритм который перебирает различные варианты перестановок. Если А,B,C задать в виде типа char, то алгоритм перестановок такой:
0
|
||||||
|
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
|
|||||||||||||
| 18.01.2018, 06:12 | |||||||||||||
Добавлено через 17 минут или на 1 цикл меньше
0
|
|||||||||||||
|
5096 / 2662 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
|
|||||||||||
| 18.01.2018, 06:27 | |||||||||||
Сообщение было отмечено ZX Spectrum-128 как решение
Решение
Вот универсальный способ с рекурсией:
Только в нём должны быть все цифры различны… ;–( Чтобы генерировать только „уникальные перестановки“, нужно их запоминать… Ну хотя бы в строке:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 10.12.2017
Сообщений: 7
|
|
| 21.01.2018, 11:29 [ТС] | |
|
Joy и JuriiMW, большое спасибо за предложенные решения!!!
0
|
|
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
||||||||||||
| 23.01.2018, 23:24 | ||||||||||||
|
Не надо запоминать все строки, что вы? Все прекрасно работает вот так:
![]() Добавлено через 11 минут Работает с числами, не превышающими длину строки (еще больше, чем longint). Не считает число новым при перестановке одинаковых элементов. Убираешь эту строчку и числа могут начинаться с 0:
Добавлено через 13 минут Уже при входных данных "123456789" программа выводит далеко не все варианты. В контексте задачи, конечно, подходит, но вот на тех же олимпиадах не прокатит
0
|
||||||||||||
|
5096 / 2662 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
|
||
| 24.01.2018, 06:37 | ||
|
„Трёхзначные!“ Хотя для значения 123456789 строка будет занимать всего какие-то три с половиной мегабайта… Да по нынешним временам это: тфу! и растереть. Это, в других паскалях может и приведёт к переполнению. Но не в PABC.NET.
0
|
||
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
|
| 24.01.2018, 23:18 | |
|
Вопрос не в "каких-то трёх мегабайтах", а в неверном результате при вводе этого числа. Программа просто не учитывает все варианты.
Ну и про контекст задачи я, кажется, уже сам писал выше. На мой взгляд, любую задачу надо решать универсально, практично и по мере сил красиво. К вашему решению тут подходят не все пункты. А вот про переполнение наврал, признаю. Не так давно с турбо слез, сложно привыкнуть к такой свободе.
0
|
|
|
5096 / 2662 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
|
|
| 25.01.2018, 09:35 | |
|
0
|
|
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
|
| 25.01.2018, 22:10 | |
|
Пример давно в студии. Вводимое число не изменилось. "123456789". Программы у вас есть, не смею задерживать.
Добавлено через 8 часов 1 минуту Хотя здесь я, скорее всего, неправ. Зато можно сравнить быстродействие программ при вводе, скажем, числа "111122223333". Здесь Ваш вариант ощутимо проигрывает Добавлено через 1 минуту Собственно, у меня выполняется уже несколько минут, и конца этому не видно
0
|
|
| 25.01.2018, 22:10 | |
|
Помогаю со студенческими работами здесь
11
Сумма каких либо двух цифр заданного трехзначного натурального числа n равна третьей цифре Определить,равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа
Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найдите все такие числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|