Запись некоторого натурального числа Х в шестнадцатеричной системе счисления имеет ровно два значащих разряда. Это число увеличили в два раза, и оказалось, что запись получившегося числа У в шестнадцатеричной записи также имеет...

Запись некоторого натурального числа Х в шестнадцатеричной системе счисления имеет ровно два значащих разряда. Это число увеличили в два раза, и оказалось, что запись получившегося числа У в шестнадцатеричной записи также имеет ровно два значащих разряда, причем сумма цифр шестнадцатеричной записи исходного числа Х равна сумме цифр шестнадцатеричной записи полученного числа У. Сколько существует таких чисел Х, которые удовлетворяют указанным условиям? В ответе укажите целое число.
Гость
Ответ(ы) на вопрос:
Гость
x - исследуемое число изменяется от 16 до 16*16/2-1=127 к - счетчик а - младший знак 16-ричной записи числа х b - старший знак 16-ричной записи числа х c - младший знак 16-ричной записи числа 2х d - старший знак 16-ричной записи числа 2х k:=0 цикл по х от 16 до 127 { b:= целое(х/16) a:=x-16*b d:= целое(2*х/16) c:=2*x-16*b если a+b = c+в то k:=k+1 } ответ к
Гость
Задача достаточно интересная, получил удовольствие от решения. Шестнадцатиричное число, занимающее два разряда, может рассматриваться как две тетрады двоичных чисел. Пронумеруем разряды слева направо, тогда можно представить двухзначное 16-ричное число следующим набором битов: [latex]|a_3\,a_2\,a_1\,a_0\,|\,b_3\,b_2\,b_1\,b_0|[/latex] Индексы, кроме положения бита, показывают степень двойки, на которую надо умножить бит, чтобы перейти к десятичному эквиваленту шестнадцатиричной цифры, т.е. старшая цифра в десятичной системе запишется как [latex]2^3*a_3+2^2*a_2+2^1*a_1+2^0*a_0=8a_3+4a_2+2a_1+a_0[/latex] Умножение числа на 2 в двоичной системе эквивалентно его сдвигу влево на один разряд. При этом старший разряд старшей тетрады должен перейти в новую, третью тетраду или он будет утерян. Но по условию, после умножения число по-прежнему имеет два разряда, следовательно мы должны потерять старший разряд безболезненно, а это возможно только если он нулевой. Тогда первоначальное число должно быть записано как [latex]|0\,a_2\,a_1\,a_0\,|\,b_3\,b_2\,b_1\,b_0|[/latex] а после удвоения его запись примет вид [latex]|a_2\,a_1\,a_0\,b_3\,|\,b_2\,b_1\,b_0\,0|[/latex] Запишем сумму цифр исходного числа p1: [latex]p1=(4a_2+2a_1+a_0)+(8b_3+4b_2+2b_1+b_0)[/latex] Теперь запишем сумму удвоенного числа p2: [latex]p2=(8a_2+4a_1+2a_0+b_3)+(8b_2+4b_1+2b_0)[/latex] По условию эти две суммы равны и мы составляем уравнение: [latex]p1=p2 \to p1-p2=0; \\ 4a_2+2a_1+a_0+8b_3+4b_2+2b_1+b_0- \\ (8a_2+4a_1+2a_0+b_3+8b_2+4b_1+2b_0)=0; \\ -4a_2-2a_1-a_0+7b_3-4b_2-2b_1-b_0=0; \\ b_3= \frac{1}{7}(4a_2+2a_1+a_0+4b_2+2b_1+b_0)\qquad \qquad (1)[/latex] Полученное уравнение решается на множестве двоичных чисел. Поскольку исходное число двузначное, по крайней мере в старшем разряде оно содержит цифру, отличную от нуля. Следовательно, b3 не может равняться нулю и остается только положить b3=1. Тогда уравнение (1) примет следующий вид: [latex]\frac{1}{7}(4a_2+2a_1+a_0+4b_2+2b_1+b_0)=1; \\ 4a_2+2a_1+a_0+4b_2+2b_1+b_0=7 \qquad \qquad (2)[/latex] Учитывая, что каждый бит может принимать значения только 0 и 1, мы должны найти такие комбинации бит, которые дадут в сумме 7=4+2+1, потому что у нас в уравнении только такие коэффициенты. Сгруппируем члены в (2): [latex]4(a_2+b_2)+2(a_1+b_1)+(a_0+b_0)=7 \to \begin {cases} a_2+b_2=1 \\a_1+b_1=1 \\a_0+b_0=1 \end {cases} \qquad (3) [/latex] Полученная система уравнений будет иметь 7 вариантов решений (вариант a2=a1=a0=0 исключается в силу необходимости наличия цифры в старшем разряде), которым в старшем разряде будут соответствовать цифры от 001(2) до 111(2) или от 1(10) до 7(10). Ответ: 7 Замечание: Из (3) можно легко найти числа, которые соответствуют заданным условиям: 30, 45, 60, 75, 90, 105, 120 (все в десятичной системе счисления). В 16-ричной системе они запишутся как 1E, 2D, 3C, 4B, 5A, 69, 78.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы