第 9 集 · A2 · 5 分钟

数学趣题 · 第9集 · Динамическое программирование

适合听读练习的俄语真实语料。片段原文开头:ну в смысле программа действий для путешественника. И другого способа попасть в Вуконда у него нет.

数学趣题 · 第9集 · Динамическое программирование

中俄字幕

  1. ну в смысле программа действий для путешественника.

    嗯,意思是旅行者的行动方案。

  2. И другого способа попасть в Вуконда у него нет.

    而且他没有其他办法进入武孔达。

  3. а дальше всё ровно по вот этой формуле, но с некоторым обобщением, что если у меня

    接下来都按这个公式计算,但稍作推广:如果我只有一条入路,

  4. дорога входящая одна, то я просто по сути это число копирую.

    那么我就直接复制这个数字。

  5. То есть других способов всё равно нет.

    也就是说,没有其他办法了。

  6. Поэтому здесь у меня в этот город попасть один способ из города А.

    因此,从A市到这个城市只有一种方式。

  7. В этот одна входящая стрелка из города, в который один способ, один, да?

    这里只有一条来自某个城市的入边,而到达那个城市也只有一种方式,对吧?

  8. Сюда две входящие стрелки из городов, в каждый из которых по одной траектории.

    这里有两条入边,分别来自两个城市,而到达每个城市都只有一条路径。

  9. Значит, у меня сюда два способа попасть, да?

    所以,到达这里共有两种方式,对吧?

  10. Сюда две входящие стрелки, да?

    这里也有两条入边,对吧?

  11. Два плюс один, две траектории в этот, одна в этот, значит сюда три способа попасть.

    2加1,两条路径到这个城市,一条路径到这个城市,因此共有三条路径到达这里。

  12. сюда одна входящая стрелка из города, в который три траектории, значит здесь три.

    这里有一条来自城市的入边,而该城市有三条路径,因此这里是三条。

  13. Далее, у меня вот в этот город 1 плюс 2, сюда 3 способа попасть, сюда 3 способа

    接下来,到这个城市的路径数是1加2,即有三条路径到达这里,也有三条路径到达这里。

  14. попасть. смотрим сюда

    到达这里。我们来看这里。

  15. 3 плюс 2 плюс 3 это получается.

    3加2加3,结果是……

  16. это получается 8 способов попасть вот в этот город.

    结果是8种方式到达这个城市。

  17. И сюда в итоге 8 плюс 3

    最后,到这里是8加3……

  18. это. 11 и еще плюс 3 это 14.

    等于11,再加3等于14。

  19. Значит я насчитал всего 14 способов.

    所以我总共算出了14种方式。

  20. ну отсюда вот можно заметить да что я очень старался посчитать да и вот этот вроде

    嗯,从这里可以看出,我确实非常努力地进行了计算,而这个……

  21. граф не очень большой а все- таки я обсчитался потому что количество траекторий

    这个图不是很大,但我还是算错了,因为路径的数量

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

    结果是错误的——高考扣一分;当然,如果我们这样操作,也可能加一分。

  23. вот таким вот образом

    就用这种方式。

  24. давайте теперь сотрем этот граф дорог и посмотрим на.

    现在,让我们擦掉这张道路图,来看一下。

  25. нашего кузнечика.

    我们的蚱蜢。

  26. посмотрим на нашего кузнечика.

    看看我们的蚱蜢。

  27. Он, исполнитель Кузнечик, умеет перемещаться по числовой прямой.

    它是一个名为“蚱蜢”的执行器,能在数轴上移动。

  28. допустим у него есть только два возможных прыжка.

    假设它只有两种可能的跳跃方式。

  29. Это прыжок на единичку вперёд и прыжок на два вперёд.

    即向前跳一个单位,或向前跳两个单位。

  30. то есть вот такой и вот такой.

    也就是这样的跳跃和这样的跳跃。

  31. Меня интересует вопрос, сколько существует различных способов.

    我感兴趣的问题是,有多少种不同的方式。

  32. достичь точки n.

    到达第n个点。

  33. Задача на самом деле сводится к вот этой задачке про карту с городами, но её проще

    这个问题实际上等价于之前那个关于城市地图的问题,但这个更容易

  34. программировать.

    编程实现。

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

    在直线上,蚱蜢访问的每个城市——我姑且把这些点称为城市,对吧?

  36. городами эти точечки, да?

    对吧?

  37. Вот каждый город, в который он прыгает,

    蚱蜢跳到的每个城市,

  38. он обозначается просто числом.

    仅用一个数字表示。

  39. Мы сможем хранить все эти числа в массиве, вот эти k n-

    我们可以将所有这些数字存储在一个数组中,也就是这k个n值,

  40. ты, мы сможем хранить в массиве.

    我们可以将它们存储在数组中。

  41. Давайте посмотрим, вот в этот город я могу попасть только с такими прыжками, только

    让我们看看,我只能通过这样的跳跃到达这个城市,只能

  42. из предыдущего и из предпредыдущего.

    从上一个城市和上上一个城市出发。

  43. И отсюда я заключаю, что количество траекторий попадания в город n, kn,

    由此我得出结论:到达第n个城市的路径数量kn

  44. оно равно kn минус 1 плюс kn минус 2.

    等于kn−1加kn−2。

  45. рассмотрим крайний случай

    考虑边界情况:

  46. сколько способов попасть из города 1 в город 1 ну

    从第1个城市到第1个城市有多少种方式?

  47. Единственный способ не прыгать.

    唯一的方式是不跳跃。

  48. Соответственно k1 равно 1.

    因此k1等于1。

  49. Но очевидно, что нам этого не хватит для рекурсии, потому что нам нужно n минус 2, и

    但显然,仅此不足以支持递归,因为我们需要kn−2,而

  50. k2 нам некуда вычислить.

    我们无法计算k2。

  51. На самом деле есть два способа.

    实际上有两种方法。

  52. Можно отдельно руками сказать, что k2

    可以手动单独说明k2

  53. равно 1, а можно подойти иначе.

    等于1,也可以换一种方式。

  54. У меня есть город, на числовой прямой есть город 0.

    我有一个城市,在数轴上,城市0位于此处。

  55. Почему бы нет?

    为什么不行呢?

  56. И в этот город попасть кузнечик не может никак.

    而蚱蜢根本无法到达这个城市。

  57. Правда? У него ноль способов попасть.

    真的吗?它到达这里的方法数为零。

  58. в этот город. Поэтому я могу написать k0 равно нулю, и проверить, что эта формула

    到达这个城市。因此我可以写k0等于零,并验证该公式

  59. для k равного 2 как раз даст мне единичку.

    当k等于2时,恰好给出结果1。

  60. То есть в принципе можно в массиве я никак не смогу избавиться от нулевого члена.

    也就是说,原则上我在数组中根本无法去掉第零项。

  61. У меня же там k будет массив, я создам его.

    我的 k 将是一个数组,我会创建它。

  62. У меня там будет для n чисел обязательно число с индексом 0.

    对于 n 个数,我那里必然包含索引为 0 的数。

  63. И вот я просто туда 0 положу.

    我就直接把 0 放进去。

  64. Все, а начиная с двух я буду вычислять.

    好了,从 2 开始我就进行计算。

  65. Итак, давайте двигаться дальше.

    那么,我们继续往下进行。

  66. Давайте двигаться дальше.

    我们继续往下进行。

  67. Давайте запрограммируем что ли это дело.

    我们来把这个程序编写出来吧。

  68. Значит, вот моя.

    这就是我的。

  69. программа заготовка в которой я создал функцию number of trajectories и

    程序框架,其中我创建了函数 number_of_trajectories,以及

  70. grasshopper has соответствующее количество траекторий от единички до ну вот некой

    grasshopper_has 对应从 1 到 n 的轨迹数量。

  71. заданной с клавиатуры давайте сейчас она

    从键盘输入的,现在就它

来源:Тимофей Хирьянов · CC BY 3.0

同系列