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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 14:10   #1
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию Задача "Трансфигурация чисел"

Помогите решить задачу.
Изображения
Тип файла: jpg transfig.JPG (150.7 Кб, 166 просмотров)
makskovalko вне форума Ответить с цитированием
Старый 09.04.2013, 15:01   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Обход дерева вариантов в ширину не работает, что ли?
Abstraction вне форума Ответить с цитированием
Старый 09.04.2013, 15:13   #3
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

Можете реализовать эту задачу на Паскале?
makskovalko вне форума Ответить с цитированием
Старый 09.04.2013, 15:15   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Можете реализовать эту задачу на Паскале?
Нечестно. Я первый спросил.
Abstraction вне форума Ответить с цитированием
Старый 09.04.2013, 15:28   #5
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

Я не пробовал решать эту задачу через графы. Может, что-то посоветуете?
makskovalko вне форума Ответить с цитированием
Старый 09.04.2013, 15:53   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Да тут хватит односвязного списка для поиска (правда, пока не придумал, как завершить поиск, если нельзя получить такое число).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.04.2013, 15:58   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Граф - математическая абстракция. Она не обязательно воплощается в коде напрямую. Например (хотя это неоптимальное решение и может не пройти по времени), можно создать два массива из 1000 целых чисел: первый изначально заполненный значениями -1, кроме A-го элемента, который содержит значение 0; второй изначально заполнен значениями 0. Дальше на каждом шаге мы ищем минимальное положительное значение в первом массиве, такое, что соответствующий элемент во втором массиве равен 0 ("элемент не рассмотрен"), применяем к индексу поочерёдно оба наших преобразования и, если элемент по получившемуся индексу во втором массиве равен 0, пишем туда (значение по исходному индексу + 1); после этого во второй массив по исходному индексу пишем 1 ("элемент рассмотрен").
Если на очередном шаге не нашлось элемента с 0 во втором массиве и положительным значением в первом - поиск закончен; если на очередном шаге мы присвоили какое-то значение элементу с индексом B - поиск опять же закончен.

Для примера (максимум равен 40, A=4, B=5):
Код:
1. Выбрали индекс 4 (0,0). Записали по индексу 11 (1,0), по индексу 4 (0,1).
2. Выбрали индекс 11 (1,0). Записали по индексу 32 (2,0), по индексу 1 (2,0), по индексу 11 (1,1).
3. Выбрали индекс 1 (2,0). Записали по индексу 2 (3,0), по индексу 1 (2,1).
4. Выбрали индекс 32 (2,0). Записали по индексу 3 (3,0), по индексу 32 (2,1).
5. Выбрали индекс 2 (3,0). Записали по индексу 5 (4,0), по индексу 2 (3,1).
6. B=5 достижимо за 4 шага.
Попробуйте провести те же рассуждения для B=7.
Abstraction вне форума Ответить с цитированием
Старый 09.04.2013, 18:59   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Первое, что я сделал, это задался вопросом: Что такое трансфигурация?
Судя по 5-му предложению, трансфигурацией называется единственное заклинание N -> 3N-1.
Собственно, отсюда алгоритм:
Если число меньше 1000, значит заклинание одно, если больше - ни одного.
s-andriano вне форума Ответить с цитированием
Старый 09.04.2013, 19:13   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

s-andriano, ох и любите Вы позаниматься казуистикой.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.04.2013, 20:32   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Если я не прав, укажите, в чем?
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Типизированные файлы - Дан файл целых чисел, найти "Сумму чисел, начинающихся с цифры 1" (Паскаль) 777pro777 Помощь студентам 1 27.03.2012 08:42
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04