![]() |
|
|
![]()
|
|
| Ангелочек |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 17.6.2006 Репутация: нет Всего: 2 |
Определить количество систем счисления в которых последняя цифра заданного числа совпадает с цифрой в десятичной системе счисления.
Нужен алгоритм. Добавлено @ 19:33 А как отредактировать заголовок? |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Если особо долго не думать...
Если я правильно понял условие 1. В принципе можно перебирать основания от 2 до N. 2. Можно уравнения порешать: N=10k+t N=Xr+t 0=10k-Xr 10k=Xr То есть надо найти k=N div 10. Затем факторизовать (представить k=(p1^a1)(p2^a2)...(pn^an)) и подсчитать количество возможных X=(p1^i)(p2^j)...(pn^k)*(2^a)*(5^b), где a,b либо 0 либо 1. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
воспользоваться кнопкой Report заголовок отредактировал, не то чтобы идеально, но вроде стало более понятно -------------------- qqq |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
В общем для заданного N определить количество возможных K таких, что
(N mod K) = (N mod 10) Для начала желательно определиться с тем, каким может быть N (есть какое-то ограничение сверху или нет?)... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Ангелочек |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 17.6.2006 Репутация: нет Всего: 2 |
Ограничений нет, рассмотреть все возможные частные случаи...
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Ангелочек, ведь Akina уже указал в сторону, куда копать
От себя добавлю очевидное: K < N. Берешь и делишь. А потом - сравниваешь |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Ну если я правильно понял(и как-то писал нечто похожее) смысл таков: Во-первых теоритечески систем исчисления может быть от 2 до N, где N - бесконечность. Соответственно нужно определить верхний предел.
Далее конечно можно поэкспериментировать и попытатся вывести определенную закономерность, но в случае когда теоритечски существуют систем исчисления столько же сколько и чисел этим лучше не заниматься. Значит вводим число и запоминаем последнюю цифру. Дальше потихоньку переводим это число в двоичную сравниваем последнюю цифру с тем что у нас, далее в троичную и сравнеиваем и так до N. При совпадении увеличиваем счетчик на 1. При этом конечно стоило бы навешать условия подобного рода что типа если число заканчивается на 5 то раньше чем в шестизначной системе нет смысла его сравнивать, если на 8 то раннее чем в девятизначной. В принципе эвристика! -------------------- менеджер по кодеврайтингу |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Bulat, не нужен верхний предел. Для числа 8 в какой системе счисления может быть последняя цифра 8? В 16-ричной?
|
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Это хорошо. Надо делать программу, которая пишет ответ "бесконечно много" (всегда можно придумать какие-нибудь свои странные системы). |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Ну как не нужен, ты готов методом перебора смотреть на какую цифру закнчивается число 430125 в 16, 59, или 100456 - системе исчисления? Если на практике с этими системами исчисления никто и не сталкивается, то в теории они абсолютно уместны(допустим также как и пяти-, 20- или 143-мерное измерение И опять-таки сейчас ты рассматриваешь частные случаи. Я года два назад в универе писал похожую по смысле прогу: Надо было из любой системы исчисления переводить число в любую другую систему исчисления.(и кстати предел определялся, но его устанавливал сам пользователь) =>Тут для абсолютно всех случаев очень тяжело вывести закономерность, нужно прибегать к эвристике, а эвристика это эвристика. -------------------- менеджер по кодеврайтингу |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Bulat, если число вводится/хранится как число, то предел, конечно же есть. А 430125 mod 100456 = 28301. Посчитал усно. Комп справился бы быстрее. Вообще странно говорить о необходимости ограничения при использовании операции mod и чисел до 4294967296
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Я не знаю кому как, но вообще решение всегда ищется в каком-то диапозоне, множестве, причем это множество всегда является конечным в практической части(только в теории допустимо использование бесконечности). А если оно конечно, то соотв. есть верхняя грань N.
Это хоть и задача программирования, но напрямую связана с мат.анализом Это сообщение отредактировал(а) Bulat - 11.7.2006, 10:04 -------------------- менеджер по кодеврайтингу |
|||
|
||||
| Ангелочек |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 17.6.2006 Репутация: нет Всего: 2 |
Покажите мне тут матанализ...
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Ангелочек, если формулировать задачу должным образом(более четкое конечно надо у преподов спрашивать)
Пусть E c индексом 10 - десятиричная система исчисления. Пусть m - некоторое число принадлежащее E(10). Необходимо определить множество M - пересечение всех подмножеств E(k), где M принадлежит N и k<=n, где n - количество множеств N, которые удовлетворяет условию: (m mod k) = (m mod 10) - хотя это уже не матан... здесь в силу возможных обозначений Типичная задача мат. анализа -------------------- менеджер по кодеврайтингу |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Bulat, x=x*2 + 30. Для решения требуется определить границу сверху?
Ангелочек, что с решением? Точнее - как с решением? |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |