Can you solve the computer virus riddle? - James Tanton

1,242,456 views ・ 2021-10-19

TED-Ed


Пожалуйста, дважды щелкните на английские субтитры ниже, чтобы воспроизвести видео.

Переводчик: Yulia Kallistratova Редактор: Elena McDonnell
00:06
Your antivirus squad is up against a particularly sadistic bit
0
6788
4208
Вашему антивирусному отряду предстоит сразиться
с особенно изощрённым вирусом, завладевшим центральным процессором.
00:10
of malicious code that’s hijacked your mainframe.
1
10996
3208
00:14
What you’ve learned from other infected systems— right before they went dark—
2
14579
4292
Случаи ранее заражённых систем — до того, как все они отказали, —
00:18
is that it likes to toy with antivirus agents in a very peculiar way.
3
18871
5083
выявили, что зловредный код не прочь поиграть с антивирусами в игру.
00:24
It corrupts one of the 4 disks that run your mainframe,
4
24538
3625
Он заражает один из четырёх дисков, на которых расположен ЦПУ
00:28
represented by lights showing which are on and which off.
5
28163
3625
и лампочки которых показывают, включён данный диск или нет.
00:32
Then it selects one member of the antivirus squad— this’ll be you—
6
32412
4500
Потом выбирает одного из членов антивирусного отряда — например, тебя —
00:36
and brings them into the mainframe.
7
36912
2167
и переносит его в центральный процессор.
00:39
It tells them which disk it corrupted,
8
39079
2375
Вирус сообщает агенту, какой именно диск заражён,
00:41
allows the agent to switch a single disk on or off,
9
41454
4500
позволяет ему включить или выключить единственную лампочку,
00:45
then immediately de-rezzes the agent.
10
45954
3083
после чего немедля расправляется с агентом.
00:49
Your squad can make an all-out attack to break into the mainframe
11
49579
3625
Твой отряд может совершить одну лобовую атаку на ЦПУ
00:53
and destroy one disk before they’re wiped out.
12
53204
3167
и уничтожить один из дисков до того, как их всех прикончат.
00:56
If they destroy the corrupted one, the malware will be defeated.
13
56537
3584
Если они ликвидируют заражённый диск, вирус будет побеждён.
01:00
Any others, and the virus will erase the entire system.
14
60121
3708
А в случае атаки на любой другой диск вирус сотрёт целиком всю систему.
01:04
The lights are only visible within the mainframe,
15
64413
2708
Лампочки не видны за пределами ЦПУ,
01:07
so you won’t know until you get there which, if any, are on.
16
67121
4125
поэтому узнать, какие из них горят, можно только попав в систему.
01:11
How can you communicate, with your single action,
17
71621
3250
Как сообщить другим с помощью единственного действия,
01:14
which of the 4 disks has been corrupted?
18
74871
2583
который из четырёх дисков заражён?
01:17
Pause here to figure it out for yourself. Answer in 3
19
77454
2709
Нажми на паузу и реши задачу самостоятельно.
Ответ через: 3
01:20
Answer in 2
20
80163
2500
Ответ через: 2
01:22
Answer in 1
21
82663
2583
Ответ через: 1
01:25
The setting is a big clue for one solution.
22
85329
3250
Подсказка к решению — в тематике задачи.
01:28
Using binary code— the base two numbering system that only uses 1s and 0s—
23
88579
5667
Применяя бинарную, или двоичную, систему счисления, использующую только 0 и 1,
01:34
we can represent each of the 4 disks with a 2-bit binary number
24
94538
4500
можно представить каждый из четырёх дисков в виде двухразрядного двоичного числа
01:39
ranging from 00 for zero to 11 for three.
25
99038
4416
между 00, что соответствует нулю, и 11, что равно трём.
01:44
What we’re looking for now is some sort of mathematical operation
26
104163
4041
Нам требуется подобрать математическую операцию,
01:48
that can take the lit disks as input, and give the corrupted disk as an output.
27
108204
5709
на входе которой — включённые диски, а на выходе — заражённый диск.
01:54
Let’s consider one possibility.
28
114496
1917
Рассмотрим такую ситуацию.
01:56
Say that the corrupted disk was this one,
29
116413
2708
Допустим, это испорченный диск
01:59
and when you come in, no lights are on.
30
119121
2917
и ни одна лампочка не горит.
02:02
You could turn 11 on to indicate that disk.
31
122288
4000
Можно включить 11, что однозначно укажет товарищам на неисправный диск.
02:06
Okay, what if you came in and 11 was already on?
32
126954
4000
А что, если при твоём появлении 11 уже включён?
02:11
You have to switch one light.
33
131329
1875
У тебя в запасе лишь одно действие.
02:13
Which seems like the most innocuous to change?
34
133621
2875
Какой выключатель мало что изменит?
02:16
Probably 00, in that if you were to add 00 and 11,
35
136788
4916
Скорее всего, 00 — ведь, сложив 00 и 11,
02:21
you’d still get 11.
36
141704
1709
на выходе всё ещё получим 11.
02:24
So maybe the key is to think of addition of binary numbers,
37
144288
4333
То есть, похоже, ключ к решению — в сложении двоичных чисел,
02:28
with the sum of the lit disks communicating the corrupted disk number.
38
148621
4583
при котором сумма включённых дисков однозначно укажет номер неисправного.
02:33
This works great, until we start with a different hypothetical.
39
153496
4000
Всё сходится до тех пор, пока мы не изменим гипотезу.
02:37
What if 00 was the corrupted disk, and 01 and 10 were on?
40
157496
5542
Что, если 00 и есть заражённый диск, а лампочки на 01 и 10 включены?
02:43
Here, the sum of the lit disks is 11.
41
163329
3459
Здесь сумма включённых дисков равна 11.
02:46
But we need to change this to a sum of 00 with the flip of one switch.
42
166788
5583
А нам нужно одним действием превратить её в 00.
02:53
We have four options: turning switch 00 on gives us 11.
43
173163
4750
У нас четыре варианта: включив лампочку на 00, получим 11.
02:58
Turning 01 off takes us back to 10,
44
178121
3292
Выключив 01, получим 10,
03:01
and turning 10 off gives 01.
45
181413
3750
а выключив 10, получим 01.
03:05
None of those work.
46
185163
1791
Ни один из вариантов нам не подходит.
03:06
Turning switch 11 on gives us 110 by standard binary addition.
47
186954
5834
Если включить 11, то нормальное бинарное сложение даст нам 110.
03:12
But we don’t really want three digit numbers.
48
192788
2750
А нам совершенно ни к чему трёхзначные числа.
03:15
So what if— to keep the result a two digit number—
49
195621
3542
Тогда давайте — чтобы в результате осталось двоичное число —
03:19
we break the rules a bit and let this sum equal 22.
50
199163
4458
немного нарушим правила, и пусть сумма будет равна 22.
03:23
That’s not a binary number, but if we regard 2s as the same as 0s,
51
203829
4792
Это не бинарное число, но если отнестись к двойкам как к нулям,
03:28
that does indicate the correct disk.
52
208621
2625
то они также укажут нужный диск.
03:31
So this suggests a strategy:
53
211871
2375
Тогда стратегия следующая:
03:34
look at the sum of all the lighted disks we see,
54
214246
3667
смотрим на сумму всех дисков с включёнными лампочками,
03:37
regarding 2s as 0s.
55
217913
2375
считая двойки нулями.
03:40
If it’s already the correct result, flip 00,
56
220288
3458
Если результат получился верным, переключи диск с номером 00,
03:43
and if not, find the switch that will make the sum correct.
57
223746
3917
а если нет, найди тот выключатель, который сделает сумму верной.
03:48
You can see for yourself that any starting configuration
58
228079
3250
Сразу понятно, что любая изначальная конфигурация
03:51
can sum to any number from 00 to 11 with a flip of a switch.
59
231329
5334
может дать в сумме любое число между 00 и 11 единственным переключением.
03:56
The reason this works is related to a concept called parity.
60
236871
4417
Это работает благодаря характеристике числа,
04:01
Parity tells you whether a given value is even or odd.
61
241663
4208
указывающей, является оно чётным или нечётным.
04:06
In this case, the values whose parity we’re considering
62
246538
3375
В нашем случае чётность или нечётность интересующих нас значений
04:09
are the number of 1s in each digit place of our binary sums.
63
249913
4875
определяется количеством единиц в каждом разряде наших двоичных сумм.
04:14
And that’s why we can say that 2 and 0, both even numbers,
64
254996
4333
Именно поэтому двойку и ноль — оба чётных числа —
04:19
can be treated as equivalents.
65
259329
2417
можно считать эквивалентами.
04:22
By adding or subtracting 00, 01, 10, or 11,
66
262329
5792
Складывая или вычитая 00, 01, 10 или 11,
04:28
we can change the parity of either, both, or neither digit,
67
268121
4667
можно изменить чётность одного из чисел, обоих или ни одного из них
04:32
and create the disk number we want.
68
272788
2625
и получить в результате номер нужного нам диска.
04:36
What’s incredible about this solution is that it works for any mainframe
69
276121
4208
Самое невероятное в этом решении то, что оно будет справедливым для любого ЦПУ
04:40
whose disks are a power of two.
70
280329
2417
с дисками, пронумерованными степенями двойки.
04:43
With 64 you could turn each activated disk into a 6-bit binary number
71
283163
5625
Имея 64 диска, каждый можно обозначить шестизначным двоичным числом
04:48
and sum the 1s in each column,
72
288788
2458
и сложить единицы в каждом столбце,
04:51
regarding any even sum as the same as 0 and any odd sum as 1.
73
291246
5958
считая каждую чётную сумму нулём, а каждую нечётную — единицей.
04:57
1,048,576 disks would be daunting, but entirely doable.
74
297621
6958
1048576 дисков — задача устрашающая, но тоже вполне решаемая.
05:05
Luckily, your mainframe is much smaller.
75
305038
2500
К счастью, ваша система гораздо меньше.
05:07
You make the valiant sacrifice and your team rushes in,
76
307538
3500
Ты геройски жертвуешь собой, и твой отряд врывается,
05:11
destroying the corruption and freeing the system.
77
311038
3125
обезвреживает заражённый диск и восстанавливает систему.
Об этом сайте

Этот сайт познакомит вас с видеороликами YouTube, полезными для изучения английского языка. Вы увидите уроки английского языка, преподаваемые высококлассными учителями со всего мира. Дважды щелкните по английским субтитрам, отображаемым на каждой странице видео, чтобы воспроизвести видео оттуда. Субтитры прокручиваются синхронно с воспроизведением видео. Если у вас есть какие-либо комментарии или пожелания, пожалуйста, свяжитесь с нами, используя эту контактную форму.

https://forms.gle/WvT1wiN1qDtmnspy7