Статья Автор: Деникина Н.В., Деникин А.В.

Дробные числа. Углублённые приёмы

Системы счисления · Блок 1§3.2
SilverTests.ru · Углублённые приёмы
Дробные числа. Углублённые приёмы

Группировка периодов, ряды, арифметика, поиск оснований


1Быстрый приём: дробь = «числитель / степень основания»

Конечная дробь 0,d₁d₂…dₖ в системе b — это просто целое число из цифр после запятой, делённое на bk.

0,d₁d₂…dk (основание b) = (d₁d₂…dk)b / bk
цифры после запятой как целое число / степень основания
примеры
0,34₈  = 34₈ / 8²  = 28₁₀ / 64  = 7/16
0,1A₁₆ = 1A₁₆ / 16² = 26₁₀ / 256 = 13/128
0,101₂ = 101₂ / 2³  = 5 / 8      = 0,625₁₀

Это в разы быстрее, чем раскладывать по степеням. На олимпиаде экономит минуту на каждой задаче.


2Формула периода в НЕдесятичных системах

Формула из §3.1 (предпериод + период) работает для любого основания b. Вот три примера, которые постоянно встречаются на олимпиадах:

двоичная
0,(011)₂ = ?

B = 011₂ = 3₁₀,  n = 3
Знаменатель: 2³ − 1 = 7
Ответ: 3/7
с предпериодом
0,1(001)₂ = ?

A = 1₂ = 1 (m=1),  B = 001₂ = 1 (n=3)
AB = 1001₂ = 9₁₀
Числитель:   9 − 1        = 8
Знаменатель: 2¹ · (2³ − 1) = 2 · 7 = 14
Ответ: 8/14 = 4/7
восьмеричная
0,(007)₈ = ?

B = 007₈ = 7₁₀,  n = 3
Знаменатель: 8³ − 1 = 512 − 1 = 511 = 7 · 73
Ответ: 7/511 = 1/73

3Группировка периодических дробей (2 ↔ 8 ↔ 16)

Поцифренный перевод (§3.1) работает и для периодических дробей, но здесь легко попасть в ловушку.

Безопасный алгоритм

алгоритм
// Шаг 1: переведи в обыкновенную дробь
// Шаг 2: переведи дробь в нужную систему (умножением)

// Пример: 0,(01)₂ → восьмеричная

// Шаг 1:
0,(01)₂ = 01₂ / (2² − 1) = 1/3

// Шаг 2: перевод 1/3 в base 8
1/3 · 8 = 8/3  = 2 + 2/3
2/3 · 8 = 16/3 = 5 + 1/3
1/3 · 8 = 8/3  = 2 + 2/3  ← повтор!

Ответ: 1/3 = 0,(25)₈

Ловушка: наивная группировка

ошибка!
// НЕПРАВИЛЬНО:
0,(01)₂ = 0,010101…₂
Группируем по 3: 010 | 101 | 010 | 101…
Получаем: 0,(25)₈ ???

// Тут повезло — ответ совпал!
// Но это работает ТОЛЬКО когда НОК(период, группа)
// = размер группы.

// ПРАВИЛЬНО:
// Период = 2 цифры. Группа для oct = 3.
// НОК(2,3) = 6 → выписываем 6 цифр:
// 010101 → группы 010|101 → 2|5 → 0,(25)₈ ✓
Правило: нужно НОК(длина_периода, размер_группы) двоичных цифр. Размер группы: 3 для oct, 4 для hex.
ещё примеры
// 0,(1)₂ → hex.  НОК(1, 4) = 4 → 1111 → F
0,(1)₂ = 0,(F)₁₆

// 0,(10)₂ → hex.  НОК(2, 4) = 4 → 1010 → A
0,(10)₂ = 0,(A)₁₆    // 2/3 = 10/15 ✓

На олимпиаде безопаснее всегда идти через обыкновенную дробь.


4Суммы рядов в разных системах (тема Бельчонка)

Связь периода с геом. прогрессией мы показали в §3. Здесь — типовые олимпиадные задачи.

Типовая задача Бельчонка

задача
// S = 0,1₈ + 0,01₈ + 0,001₈ + … (N слагаемых).
// Записать ответ в hex.

// a = 1/8, q = 1/8
S_N = (8ᴺ − 1) / (7 · 8ᴺ)
S_∞ = 1/7

// Перевод 1/7 в hex (умножением):
// 1/7·16 = 2 + 2/7
// 2/7·16 = 4 + 4/7
// 4/7·16 = 9 + 1/7  ← повтор
1/7 = 0,(249)₁₆

// Проверка: 249₁₆ = 585, 16³−1 = 4095
// 585/4095 = 1/7 ✓

Частичная сумма в «красивом» виде

пример
// 0,111…1₂ (N единиц) = ?

S_N = 1 − 1/2ᴺ = (2ᴺ − 1) / 2ᴺ

// N = 4: 0,1111₂ = 15/16
// N → ∞: 0,(1)₂ = 1

5Арифметика дробей в других системах

Сложение столбиком

пример
// 0,11₂ + 0,101₂

    0,110    ← дополнили нулём справа
  + 0,101
  -------
    1,011₂   ← 1+1 = 10₂, пишем 0, переносим 1

// Проверка: 0,75 + 0,625 = 1,375
// 1,011₂ = 1 + 1/4 + 1/8 = 1,375 ✓

Умножение

пример
// 0,11₂ × 0,11₂
// Шаг 1: 11 × 11 = 1001₂ (как целые)
// Шаг 2: дробных знаков = 2 + 2 = 4
// Ответ: 0,1001₂

// Проверка: 0,75² = 0,5625
// 0,1001₂ = 1/2 + 1/16 = 0,5625 ✓
На олимпиаде арифметику дробей проще выполнять через обыкновенные дроби: перевести → посчитать → перевести обратно.
Перенос через запятую

Перенос из дробной части уходит в целую — следи за запятой:

пример0,11₂ + 0,11₂ = 1,1₂     // 0,75 + 0,75 = 1,5
0,3₅ + 0,4₅ = 1,2₅      // 0,6 + 0,8 = 1,4
Периодические дроби — через p/q

Надёжный путь: перевести в обыкновенные дроби, посчитать точно, перевести назад. Периоды умеют сокращаться и комбинироваться:

пример0,(1) + 0,(2) = 1/9 + 2/9 = 3/9 = 1/3 = 0,(3)
0,(3) + 0,(6) = 1/3 + 2/3 = 1          // период исчез
0,(3) · 3   = 1/3 · 3 = 1            // это 0,(9), а 0,(9) = 1
Конечен ли результат и какой период

Сумма, разность и произведение конечных дробей всегда конечны — знаменатель остаётся «дружественным» основанию. Если результат периодический, его период считается по несократимому знаменателю тем же правилом, что в §3.1 (через t):

пример0,5 + 0,25 = 0,75             // конечная + конечная = конечная

1/2 + 1/3 = 5/6;   6 = 2·3,  t = 3
период = порядок 3 = 1,  предпериод = 1   →   0,8(3)

На ИТМО это снимает страх перед «сложить две бесконечные дроби»: сводишь к p/q, дальше критерий конечности и формула периода.


6Поиск всех оснований, где дробь конечна

Критерий конечности мы вывели в §3. Здесь — техника решения олимпиадной задачи «найти все b, в которых 1/n конечна».

1/12
12 = 2² · 3.  Делители: {2, 3}
b кратно НОК(2, 3) = 6

Ответ: b ∈ {6, 12, 18}   // в диапазоне 2–20

// Проверка: 1/12 · 6 = 1/2 → 0;
// 1/2 · 6 = 3 → стоп.  1/12 = 0,03₆ ✓
1/7
7 — простое.  Делители: {7}
b кратно 7.

Ответ: b ∈ {7, 14}   // 1/7 = 0,1₇ = 0,2₁₄
1/10
10 = 2 · 5.  Делители: {2, 5}
b кратно 10.

Ответ: b ∈ {10, 20}   // вот почему 0,1₁₀ — период везде кроме base 10 и 20

7Сравнение дробей из разных систем

Единственный надёжный путь — привести обе к обыкновенным дробям:

пример
0,4₅ = 4/5 = 0,8
0,3₄ = 3/4 = 0,75

0,8 > 0,75  ⇒  0,4₅ > 0,3₄

Хитрая задача

задача
// В какой системе p верно 0,5ₚ = 0,25₁₀?

0,5ₚ = 5/p = 1/4
5/p = 1/4  ⇒  p = 20

// Проверка: 5 < 20 (цифра допустима) ✓

Проверь себя11 заданий
 
 
1 / 8
© SilverTests.ru · Системы счисления · §3.2 Углублённые приёмы
Печать