Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

SAW
Статус: Студент
Рейтинг: 157
∙ повысить рейтинг »
Gluck
Статус: 2-й класс
Рейтинг: 73
∙ повысить рейтинг »
solowey
Статус: Профессионал
Рейтинг: 57
∙ повысить рейтинг »

∙ Алгоритмы и теория программирования

Номер выпуска:233
Дата выхода:22.08.2020, 16:15
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:29 / 13
Вопросов / ответов:3 / 5

Консультация # 110858: Здравствуйте, дорогие друзья! Помогите, пожалуйста, решить задачу. Текст задачи: У нас три пробирки, каждая объёмом 100, две из них с ризками, которые задаются в ручную(пример: 12 34 56 98) число ризок не больше 10 и на этих двух ризки одинаковые. Нужно найти и вывести последовательность переливаний, чтобы в 3-й пробирке получился объём 1 или сказа...
Консультация # 39216: Здравствуйте подскажите кто-нибудь и если можно опишите как перевести дробное число из одной системы счисления в другую например 0,10(23) в четвертичной перевести в восьмеричною ( (23) это период)...
Консультация # 18446: Уважаемые эксперты! Вопрос не по Асму, но наиболее близок программистам Асма. Из одного числа по некому алгоритму вычисляется другое. Можно определить алгоритм, если известно множество пар чисел? Может можно исходя из анализа пар чисел приблизительно определить по первому числу второе?...

Консультация # 110858:

Здравствуйте, дорогие друзья! Помогите, пожалуйста, решить задачу. Текст задачи: У нас три пробирки, каждая объёмом 100, две из них с ризками, которые задаются в ручную(пример: 12 34 56 98) число ризок не больше 10 и на этих двух ризки одинаковые. Нужно найти и вывести последовательность переливаний, чтобы в 3-й пробирке получился объём 1 или сказать, что этого сделать нельзя. Решить с помощью волнового алгоритма.
Заранее большое спасибо!!!

Дата отправки: 25.11.2007, 02:11
Вопрос задал: Полянский Дмитрий Александрович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Воробьёв Алексей Викторович:

Здравствуйте, Полянский Дмитрий Александрович!

Здравствуйте, дорогие друзья! Помогите, пожалуйста, решить задачу.
Текст задачи: У нас три пробирки, каждая объёмом 100, две из них с ризками, которые задаются в ручную(пример: 12 34 56 98) число ризок не больше 10 и на этих двух ризки одинаковые. Нужно найти и вывести последовательность переливаний, чтобы в 3-й пробирке получился объём 1 или сказать, что этого сделать нельзя. Решить с помощью волнового алгоритма.
Заранее большое спасибо!!!

Вообще-то, эта задача решается чисто аналитически.
Если у всех Ваших рисок (включая 100) есть общий делитель, то решения нет.
Поскольку входит 100, то это означает, что решений нет только если все риски чётные или все риски делятся на 5.
Во всех остальных случаях решение есть.

Я пока приведу решение основанное не на волновом алгоритме.
Этот алгоритм находит не самое оптимальное решение, но он гораздо проще и, возможно, даже быстрее волнового алгоритма, так как он не рассматривает огромное количество вариантов.

Все случаи, когда решение есть, разбиваются на 2 класса.
Самый простой вариант, если Вы можете найти две риски (включая 100) взаимно простые:
1. Наливаем первую пробирку до меньшей риски
2. Переливаем из первой пробирки во 2 полностью или до достижения второй риски.
3. Если не достигли второй риски переходим к 1.
4. Опустошаем вторую пробирку.
5. Если в первой пробике осталось не 1, переходим к 2.

Более сложный вариант, когда вы не можете найти 2 взаимно простых риски.
Поскольку у нас нет общего делителя у всех рисок, то можно найти 3 риски, такие что каждая пара имеет общие делители, но при этом эти делители различны для разных пар.
Например, 4, 12, 15.
Выбираем пару рисок с наименьшим общим делителем (в нашем случае 15 и 12).
1. Наливаем первую пробирку до меньшей риски
2. Переливаем из первой пробирки во 2 полностью или до достижения второй риски.
3. Если не достигли второй риски переходим к 1.
4. Опустошаем вторую пробирку.
5. Если в первой пробике осталось не равное общему делителю, переходим к 2.
6. Переливаем из первой пробирки в 3 полностью или до достижения третьей риски.
7. Если не достигли третей риски переходим к 1.
8. Опустошаем третью пробирку.
9. Если в первой пробирке осталось не 1, переходим к 6.
10. Переливаем из первой пробирку в 3-ю пробирку и решение найдено.

Как видите, второй случай, это копия первого, но первые 5 шагов используются для создания фиктивной риски, равной общему делителю.
При желании можно объединить первый случай со вторым, используя в качестве общего делителя 1.

Само собой разумеется, что Вам надо записывать в какой-то лог все Ваши переливания, чтобы показать ответ.

Если Вам всё-таки надо написать волновой алгоритм, то я могу попытаться написать его на С++, если это Вас устроит.

Консультировал: Воробьёв Алексей Викторович
Дата отправки: 25.11.2007, 04:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 39216:

Здравствуйте подскажите кто-нибудь и если можно опишите как перевести дробное число из одной системы счисления в другую например 0,10(23) в четвертичной перевести в восьмеричною ( (23) это период)

Дата отправки: 02.04.2006, 19:32
Вопрос задал: Габсалямов Азамат Ильдарович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лучников Ю.В.:

Здравствуйте, Габсалямов Азамат Ильдарович!

К ответу прикреплен архив с конспектом по теме Системы счисления. Прочитав его, я думаю вы без труда решите свою задачу.

Успехов!

Консультировал: Лучников Ю.В.
Дата отправки: 03.04.2006, 21:08
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 18446:


Уважаемые эксперты! Вопрос не по Асму, но наиболее близок
программистам Асма. Из одного числа по некому алгоритму вычисляется
другое. Можно определить алгоритм, если известно множество пар чисел?
Может можно исходя из анализа пар чисел приблизительно определить по
первому числу второе?

Дата отправки: 18.03.2005, 14:39
Вопрос задал: Александр А.А.
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Boriss:

Здравствуйте, Александр А.А.!
Это скорее относится к кодированию - раскодированию. Есссно, что самые крутые методы хранятся в тайне, но кое-что известно. Вас что интересует? Задача сама или что почитать по этой теме? Когда-то в недрах Инета находил нечто подобное

Консультировал: Boriss
Дата отправки: 18.03.2005, 14:46
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует DSota:

Здравствуйте, Александр А.А.!
Можно только очень случайно, если знать каким примерно он должен быть... Можно только составить полную таблицу зависимостей выходного числа от входных... А число алгоритмов бесконечно...

Консультировал: DSota
Дата отправки: 18.03.2005, 14:48
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Bob Johnson:

Здравствуйте, Александр А.А.!
Если известно все множество пар чисел, то можно 100% утверждать лишь то, что ты сможешь построить таблицу этих пар... Алгоритм может быть настолько сложен, что вычислить его исходя только из данных на входе и выходе будет невозможно (например, шифрование).

* EMan2.0: ---===*** Debug mode ***===---

Консультировал: Bob Johnson
Дата отправки: 19.03.2005, 01:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное