powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вторничная новогодняя задачка
22 сообщений из 47, страница 2 из 2
Вторничная новогодняя задачка
    #39129166
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Все так.
Только этот результат требуется получить без деления и без использования длинных чисел.
Сорри, что сразу не написал это в условии, т.к. почему-то посчитал это условие разумеющимся в свете предыдущей задачи.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял. Надо подумать. Скорее всего решение этой задачи будет базироваться
на циклических вычитаниях и (возможно умножениях).

Как алгоритм Евклида.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129173
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забавно. А вот ещё тривиальщины на закуску, на случай, если и в этой задаче делить нельзя. Если
авторМножители никак не упорядочены и не обязательно просты., то надо:
разложить множители до простых, получить классические представления в виде перемножения простых множителей: A* и B*

упорядочить оба представления, что поможет быстро...

...вычесть A*\B* и так получить X

для фанатов: вычесть B*\A*, получить пустое множество, и так убедиться, что - автор не соврал! - X и впрямь целочисленное.

для фанатов-префанатов: выполнять два последних пункта одновременно.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129179
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrCat,

Забавно, но, оказывается, можно проще )
См. решение предыдущей задачи.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129184
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше отдельным топиком.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129250
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЛучше отдельным топиком.

Здесь:

http://guildalfa.ru/alsha/node/31
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129291
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,
а что такое короткие множители ? Вы имеете ввиду факторизацию, или что-то другое ?
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129334
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

Обычно программная реализация длинного целого типа для работы с очень большими числами
основана на некотором ("коротком") целочисленном типе, который поддерживает компилятор.

Программисты, с ними работающие, для собственного удобства используют очевидный жаргон.
Например, "умножение длинного на короткое".
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129726
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovmaytonЛучше отдельным топиком.

Здесь:

http://guildalfa.ru/alsha/node/31
Не. Ну это неинтересно. Блог господина Шарахова нам недоступен для каментов.
Лучше всё таки поднять на скруле.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129731
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryAleksandr Sharahov,
а что такое короткие множители ? Вы имеете ввиду факторизацию, или что-то другое ?
Мне почему-то вспомнилось Умножене Карацубы
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39129780
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Топик разместил у себя в блоге, чтобы, во-первых, он не затерялся и остались следы,
и, во-вторых, там ожидается весьма интересное продолжение, которое давно планировал,
но все никак не могу собраться из-за нехватки времени.

А комментарии можно хоть здесь, хоть там писать - не проблема.

Умножение Карацубы немного из другой оперы.
Если грубо, то оно используется для оптимизации умножения столбиком длинных чисел,
а для умножения длинного на короткое оно не требуется.
Но тема даже не в этом, а в том, что на самом деле и длинное не всегда нужно,
иногда оказывается достаточно его последней цифры.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39130910
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зря
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150230
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahovmayton,

Есть интересный вариант задачи с похожим решением:

Длинные числа A и B заданы своими короткими множителями a[i], i=1..N и b[j], j=1..M.
Множители никак не упорядочены и не обязательно просты.
Известно, что B=A*х, где x - короткое.
Найти x.

XOR всех множителей a[i] и b[j] даст требуемый результат
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150262
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryAleksandr Sharahovmayton,

Есть интересный вариант задачи с похожим решением:

Длинные числа A и B заданы своими короткими множителями a[i], i=1..N и b[j], j=1..M.
Множители никак не упорядочены и не обязательно просты.
Известно, что B=A*х, где x - короткое.
Найти x.

XOR всех множителей a[i] и b[j] даст требуемый результат

Пусть a=2, b=2*2*2.
Тогда x=2*2, но XOR=0.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150263
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

ваш контрпример противоречит условию
Aleksandr Sharahov Известно, что B=A*х, где x - короткое.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150265
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryAleksandr Sharahov,

ваш контрпример противоречит условию
Aleksandr Sharahov Известно, что B=A*х, где x - короткое.

В чем противоречие?

A состоит из одного целого множителя, равного 2, который укладывается в отведенное количество бит (скажем 32).
B состоит из трех целых множителей, каждый из которых также равен 2.
B=A*4.
Т.е. x=4 и x - короткое (укладывается в отведенное количество бит).
На мой взгляд, соответствие условию полное.
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150278
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov На мой взгляд, соответствие условию полное.

В постановке задаче вы фигурировали термином "короткое число". Определили оба числа как произведение коротких чисел и далее вы сказали о том, что числа отличаются на одно короткое число.

Aleksandr SharahovДлинные числа A и B заданы своими короткими множителями a[i], i=1..N и b[j], j=1..M.
Множители никак не упорядочены и не обязательно просты.
Известно, что B=A*х, где x - короткое.

Из чего был сделан вывод о том, что данное короткое число должно принадлежать одному из множеств коротких чисел соответствующих числам A и B, что не совпадает с вашими требованиями к данной задаче. В таком случае, мне кажется, лучше будет озвучить постановку задачи следующим образом:
Пусть , где . Известно, что . Найти x не используя операцию деления
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150283
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, как я понимаю число 0 подходит под данное выше определение короткого числа
1. Пусть 0 будет присутствовать в одном из чисел. Что на выходе даст ваш алгоритм ?
2. Пусть 0 присутствует в обоих числах, при этом никаких различий в числах более нет. Что на выходе даст ваш алгоритм ?
3. Пусть 0 присутствует в обоих числах, существуют различия в числах. Что на выходе даст ваш алгоритм ?
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150315
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

Вывод о том, что короткое число x должно принадлежать одному из множеств коротких чисел,
соответствующих числам A и B, неверен. Он никак не следует из того, что x - короткое.

Похоже, ваша формулировка задачи полностью эквивалентна моей,
но, несомненно, выглядит гораздо красивее )
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150319
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryКстати, как я понимаю число 0 подходит под данное выше определение короткого числа
1. Пусть 0 будет присутствовать в одном из чисел. Что на выходе даст ваш алгоритм ?
2. Пусть 0 присутствует в обоих числах, при этом никаких различий в числах более нет. Что на выходе даст ваш алгоритм ?
3. Пусть 0 присутствует в обоих числах, существуют различия в числах. Что на выходе даст ваш алгоритм ?

Если не ошибаюсь,
алгоритм отслеживает все эти особые случаи
и в качестве результата выдает 0
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150330
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov, конечно мой вывод был неверен ) Но это недопонимание с моей стороны возникало по причине присутствия данного термина.
Пусть например оба числа равны 0, в таком случае x может быть любым числом. Неформальное определение "короткое число" позволяет нам провернуть подобное. Может быть 0 всё-таки не должен присутствовать в постановке задачи ?Или это не так ?
...
Рейтинг: 0 / 0
Вторничная новогодняя задачка
    #39150341
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

Конечно, для однозначного понимания условий будет лучше явно сказать,
что 0 не входит в область возможных значений множителей.
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вторничная новогодняя задачка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]