Позиционные системы счисления
Скачать 0.83 Mb.
|
Ещё пример задания:Р-19. Решите уравнение . Ответ запишите в троичной системе счисления. Основание системы счисления указывать не нужно. Решение: переведём все числа в десятичную систему счисления: собирая всё в одно уравнение получаем это уравнение имеет два решения, 6 и -8; основание системы счисления – натуральное число, поэтому ответ – 6 переводим ответ в троичную систему: 6 = 2∙31 = 203. ответ: 20. Решение (программа на Python, А.Н. Носкин): можно (но сложнее) решить задачу перебором с помощью программы: a = 1*7**2 + 0 + 1 # перевод "101" в 10-ю систему c = a - 1 # число "121" в 10-й системе for i in range(3,100):# перебираем возможные основания b = 1*i**2 + 2*i + 1 # перевод в 10-ю систему числа "121" if b == c: x = i # основание системы счисления (в 10й системе) break x3 = '' while x > 0:# перевод основания в 3-ю систему x3 += str(x%3) x //= 3 x3 = x3[::-1]# разворот числа print(x3) ответ: 20. Решение (программа на Python, Б.С. Михлин): вариант программы: for x in range( 3, 37): # среди оснований от 3 до 36 if int( '121', x ) + 1 == int( '101', 7 ): break print('в 10 c.c:', x) s = '' while x: s = str( x%3 ) + s x //= 3 print( 'Ответ в 3 с.с:', s ) ответ: 20. Ещё пример задания:Р-18. Сколько единиц в двоичной записи числа 42014 + 22015 – 8 Решение: приведём все числа к степеням двойки: 42014 + 22015 – 8 = (22)2014 + 22015 – 23 = 24028 + 22015 – 23 вспомним, что число 2N-1 в двоичной системе записывается как N единиц: , а число 2N–2K при K < N записывается как N–K единиц и K нулей: согласно п. 2, число 22015 – 23 запишется как 2012 единиц и 3 нуля прибавление 24028 даст ещё одну единицу, всего получается 2012 + 1 = 2013 единиц ответ: 2013. Решение (программа на Python, Б.С. Михлин): программа использует встроенную «длинную арифметику» Python: x = bin( 4**2014 + 2**2015 - 8 ) print( x.count( '1' ) ) ответ: 2013. Ещё пример задания:Р-17. Сколько единиц в двоичной записи числа 42016 + 22018 – 8600 + 6 Решение: приведём все числа к степеням двойки, разложив 6 как 22+21 42016 + 22018 – 8600 + 6 = (22)2016 + 22018 - (23)600 + 22 + 21 = 24032 + 22018 – 21800 + 22 + 21 вспомним, что число 2N-1 в двоичной системе записывается как N единиц: , а число 2N–2K при K < N записывается как N–K единиц и K нулей: согласно п. 2, число 22018 – 21800 запишется как 218 единиц и 1800 нулей прибавление 24032 даст ещё одну единицу, а прибавление 22 + 21 – ещё две, всего получается 218 + 3 = 221 единица ответ: 221. |