avva: (Default)
[personal profile] avva
Придумал задачку. Для программистов и/или математиков. Простую, так, для забавы.

Берём произвольное натуральное число. Записываем его в двоичной системе. Теперь смотрим на эту запись в двоичной системе как на строку в ASCII, и цифра за цифрой переписываем эти ASCII-значения опять в двоичную систему, получая более длинную строку. Ведущие нули нигде не сокращаем. С полученной строкой проделываем то же самое, и так до бесконечности.

Задание: стабилизируется ли процентное отношение нулей и единиц в пределе? Обосновать. Если да, то найти его.

Update: На всякий случай поясню, что под ASCII я в данном случае понимаю 8-битный код, т.е. каждая двоичная цифра заменяется на восемь.

Ещё update: В комментах появились правильные ответы. Я могу в комментах написать подробное элементарное решение, если кому-то надо.

Date: 2002-09-05 09:04 am (UTC)
From: [identity profile] avva.livejournal.com
Вот как можно более элементарное решение задачи.

Предположим, мы начинаем с числа, в котором x нулей и y единиц. При преобразовании каждый ноль заменяется на восемь цифр, представляющих код нуля в ASCII, а каждая единица - на восемь цифр, представляющих её код в ASCII. Код нуля - 00110000 (48), код единицы - 00110001 (49).

Таким образом, каждый 0 в исходном числе даёт две единиц и шесть нулей в новом, а каждая 1 в исходном числе - три единицы и пять нулей в новом. Если мы начали с x нулей и y единиц, то после преобразования мы получим 6x+5y нулей и 2x+3y единиц.

Если предположить, что в пределе отношение кол-ва нулей к кол-ву единиц стабилизируется, то отношения x/y с одной стороны и (6x+5y)/(2x+3y) с другой должны стремиться к одному и тому же числу. В пределе они будут равны; поэтому если мы приравняем эти две дроби и решим уравнение, найдя возможные значения x/y, это и будут возможные значения предела.

Таким образом, у нас есть уравнение

x/y = (6x+5y)/(2x+3y). Перемножая числитель одной стороны со знаменателем другой и наоборот, получаем

2x^2+3xy = 6xy+5y^2

2x^2-3xy-5y^2 = 0.

Делим обе части на x*y и получаем

2*(x/y) - 3 - 5(y/x) = 0.

Обозначим теперь z=x/y, тогда y/x = 1/z. z это и есть то, что мы стремимся найти.

2*z - 3 - 5(1/z) = 0.

приводим к общему знаменателю:

2z^2 - 3z - 5 = 0.

Решаем это уравнение и получаем один ответ: z=2.5 (два с половиной; второй ответ выходит комплексным и нам не подходит, т.к. отношение x/y должно быть вещественным числом). Значит, в пределе x/y = 2.5, или в переводе на проценты единиц будет примерно 28.5%, а нулей - 71.5%.

Для того, чтобы показать, что этот предел действительно существует, т.е. что отношение нулей и единиц стабилизируется в пределе, достаточно посмотреть на это уравнение как на неравенство и показать, что если начальное отношение x/y меньше 2.5, то в результате итерации оно увеличится, а если больше - уменьшится.

Date: 2002-09-05 09:49 am (UTC)
From: [identity profile] rydel23.livejournal.com
Very nice!

Date: 2002-09-05 01:31 pm (UTC)
From: [identity profile] edgar-poe.livejournal.com
Спасибо большое!

Две буквоедские поправки

Date: 2002-09-06 12:59 am (UTC)
From: [identity profile] muchacho.livejournal.com
Второй корень не комплексный, а отрицательный: z=-1 и поэтому не подходит. (Корни квадратного уравнения с вещественными коэффициентами всегда либо оба комплексные, либо оба вещественные)

Надо показать не то, что x/y увеличивается, если меньше 2.5, и наоборот, т.к. это может быть и расходящаяся последовательность (к примеру, если расстояние между x/y и 2.5 увеличивается), а то, что x/y сходится к 2.5 быстрее, чем члены какой-либо сходящейся геометрической прогрессии.
From: [identity profile] avva.livejournal.com
Второй корень не комплексный, а отрицательный: z=-1 и поэтому не подходит.

Да, глюк у меня, спасибо.

Надо показать не то, что x/y увеличивается, если меньше 2.5, и наоборот, т.к. это может быть и расходящаяся последовательность (к примеру, если расстояние между x/y и 2.5 увеличивается), а то, что x/y сходится к 2.5 быстрее, чем члены какой-либо сходящейся геометрической прогрессии.

Хорошо, поправлюсь так: достаточно показать, что x/y увеличивается, если меньше 2.5, и при этом остаётся меньше 2.5. И то же самое в случае больше. Это всё равно тривиально показать рассмотением того же уравнения в виде неравенства, и легче, чем то, что Вы предлагаете.

Этого достаточно, т.к. x/y образует тогда монотонную последовательность с верхним пределом и следовательно сходится к чему-нибудь, а мы уже доказали, что сходиться может только к 2.5.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 12:03 am
Powered by Dreamwidth Studios