Skip to content

Latest commit

 

History

History
230 lines (209 loc) · 5.85 KB

README.md

File metadata and controls

230 lines (209 loc) · 5.85 KB

Информатика. Лабораторная работа №1. Генератор решений

Перевод чисел между различными системами счисления

Условие

  1. Перевести число "А", заданное в системе счисления "В", в систему счисления "С". Числа "А", "В" и "С" взять из представленных ниже таблиц. Вариант выбирается как сумма последнего числа в номере группы и номера в списке группы согласно ISU. Т.е. 13-му человеку из группы P3102 соответствует 15-й вариант (=2 + 13).
  2. Всего нужно решить 11 примеров. Для примеров с 5-го по 7-й выполнить операцию перевода по сокращенному правилу (для систем с основанием 2 в системы с основанием 2^k). Для примеров с 4-го по 6-й и с 8-го по 9-й найти ответ с точностью до 5 знака после запятой. В примере 11 группа символов {^1} означает -1 в симметричной системе счисления.

Пример использования

Input

python variant_solver.py 3

Output

Variant 3
Task #           A  B   C
     1       20946 10   5
     2       A4702 11  10
     3       89358 13   7
     4       67,95 10   2
     5       B9,46 16   2
     6       27,71  8   2
     7    0,000011  2  16
     8    0,010101  2  10
     9       C3,71 16  10
    10         292 10 Фиб
    11 {^4}1{^3}22 9С  10

Task #1
20946(10) = ?(5)
 20946 / 5 =   4189 | 1
  4189 / 5 =    837 | 4
   837 / 5 =    167 | 2
   167 / 5 =     33 | 2
    33 / 5 =      6 | 3
     6 / 5 =      1 | 1
     1 / 5 =      0 | 1
20946(10) = 1132241(5)

Task #2
A4702(11) = ?(10)
43210 <- exponents
A4702 = A * 11^4 + 4 * 11^3 + 7 * 11^2 + 0 * 11^1 + 2 * 11^0 =
= 10 * 11^4 + 4 * 11^3 + 7 * 11^2 + 2 =
= 10 * 14641 + 4 * 1331 + 7 * 121 + 2 =
= 146410 + 5324 + 847 + 2 = 152583
A4702(11) = 152583(10)

Task #3
89358(13) = ?(7)
89358(13) = ?(10)
43210 <- exponents
89358 = 8 * 13^4 + 9 * 13^3 + 3 * 13^2 + 5 * 13^1 + 8 * 13^0 =
= 8 * 13^4 + 9 * 13^3 + 3 * 13^2 + 5 * 13 + 8 =
= 8 * 28561 + 9 * 2197 + 3 * 169 + 5 * 13 + 8 =
= 228488 + 19773 + 507 + 65 + 8 = 248841
89358(13) = 248841(10)
248841(10) = ?(7)
248841 / 7 =  35548 | 5
 35548 / 7 =   5078 | 2
  5078 / 7 =    725 | 3
   725 / 7 =    103 | 4
   103 / 7 =     14 | 5
    14 / 7 =      2 | 0
     2 / 7 =      0 | 2
248841(10) = 2054325(7)
89358(13) = 2054325(7)

Task #4
67,95(10) = ?(2)
67(10) = ?(2)
    67 / 2 =     33 | 1
    33 / 2 =     16 | 1
    16 / 2 =      8 | 0
     8 / 2 =      4 | 0
     4 / 2 =      2 | 0
     2 / 2 =      1 | 0
     1 / 2 =      0 | 1
67(10) = 1000011(2)
0.95(10) = ?(2)
(0)| 95
   | 2
———————
 1 | 9 
   | 2
———————
 1 | 8 
   | 2
———————
 1 | 6 
   | 2
———————
 1 | 2 
   | 2
———————
 0 | 4 
   | 2
———————
0.95(10) = 0.11110(2)
67,95(10) = 67(10) + 0.95(10) = 1000011(2) + 0.11110(2) = 1000011.11110(2)
67,95(10) = 1000011.11110(2)

Task #5
B9,46(16) = ?(2)
16 = 2^4
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
B9(16) = B 9 = 1011 1001 = 10111001(2)
46(16) = 4 6 = 0100 0110 = 0100011(2)
B9,46(16) = 10111001,01000(2)

Task #6
27,71(8) = ?(2)
8 = 2^3
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
27(8) = 2 7 = 010 111 = 10111(2)
71(8) = 7 1 = 111 001 = 111001(2)
27,71(8) = 10111,11100(2)

Task #7
0,000011(2) = ?(16)
16 = 2^4
0(2) = 0000 = 0 = 0(16)
000011(2) = 0000 1100 = 0 C = 0C(16)
0,000011(2) = 0,0C(16)

Task #8
0,010101(2) = ?(10)
0 123456 <- exponents
0,010101 = 0 * 2^0 + 0 * 2^(-1) + 1 * 2^(-2) + 0 * 2^(-3) + 1 * 2^(-4) + 0 * 2^(-5) + 1 * 2^(-6) =
= 1 * 2^(-2) + 1 * 2^(-4) + 1 * 2^(-6) =
= 1 * 0.25 + 1 * 0.0625 + 1 * 0.015625 =
= 0.25 + 0.0625 + 0.015625 = 0.328125
0,010101(2) = 0.32812(10)

Task #9
C3,71(16) = ?(10)
10 12 <- exponents
C3,71 = C * 16^1 + 3 * 16^0 + 7 * 16^(-1) + 1 * 16^(-2) =
= 12 * 16 + 3 + 7 * 16^(-1) + 1 * 16^(-2) =
= 12 * 16 + 3 + 7 * 0.0625 + 1 * 0.00390625 =
= 192 + 3 + 0.4375 + 0.00390625 = 195.44140625
C3,71(16) = 195.44141(10)

Task #           A  B   C         Answer
     1       20946 10   5        1132241
     2       A4702 11  10         152583
     3       89358 13   7        2054325
     4       67,95 10   2  1000011.11110
     5       B9,46 16   2 10111001,01000
     6       27,71  8   2    10111,11100
     7    0,000011  2  16           0,0C
     8    0,010101  2  10        0.32812
     9       C3,71 16  10      195.44141

Other input

python task_solver.py 9

Other output

Variant #1
BF,FA(16) = ?(10)
10 12 <- exponents
BF,FA = B * 16^1 + F * 16^0 + F * 16^(-1) + A * 16^(-2) =
= 11 * 16 + 15 + 15 * 16^(-1) + 10 * 16^(-2) =
= 11 * 16 + 15 + 15 * 0.0625 + 10 * 0.00390625 =
= 176 + 15 + 0.9375 + 0.0390625 = 191.9765625
BF,FA(16) = 191.97656(10)

Variant #2
47,C4(16) = ?(10)
10 12 <- exponents
47,C4 = 4 * 16^1 + 7 * 16^0 + C * 16^(-1) + 4 * 16^(-2) =
= 4 * 16 + 7 + 12 * 16^(-1) + 4 * 16^(-2) =
= 4 * 16 + 7 + 12 * 0.0625 + 4 * 0.00390625 =
= 64 + 7 + 0.75 + 0.015625 = 71.765625
47,C4(16) = 71.76562(10)

...

Variant #39
EE,3C(16) = ?(10)
10 12 <- exponents
EE,3C = E * 16^1 + E * 16^0 + 3 * 16^(-1) + C * 16^(-2) =
= 14 * 16 + 14 + 3 * 16^(-1) + 12 * 16^(-2) =
= 14 * 16 + 14 + 3 * 0.0625 + 12 * 0.00390625 =
= 224 + 14 + 0.1875 + 0.046875 = 238.234375
EE,3C(16) = 238.23438(10)

Variant #40
EF,10(16) = ?(10)
10 12 <- exponents
EF,10 = E * 16^1 + F * 16^0 + 1 * 16^(-1) + 0 * 16^(-2) =
= 14 * 16 + 15 + 1 * 16^(-1) =
= 14 * 16 + 15 + 1 * 0.0625 =
= 224 + 15 + 0.0625 = 239.0625
EF,10(16) = 239.0625(10)