{"id":347883,"date":"2023-05-25T15:00:57","date_gmt":"2023-05-25T15:00:57","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=347883"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=347883","title":{"rendered":"<span>\u041a\u043d\u0438\u0433\u0430 \u00ab\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438\u00bb<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\"><a href=\"https:\/\/habr.com\/ru\/companies\/piter\/articles\/737600\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ra\/ez\/yk\/raezyksm2qmdccdt0gqcnsflute.jpeg\" align=\"left\" alt=\"image\"><\/a>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440\u043e\u0436\u0438\u0442\u0435\u043b\u0438!<\/p>\n<p>  \u041a\u043d\u0438\u0433\u0430 \u00ab\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438 JavaScript, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u044f\u0441\u043d\u044f\u044e\u0442 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0432\u0441\u0435\u0445 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u0418\u0437 \u043a\u043d\u0438\u0433\u0438 \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0438, \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c), \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c\u044b\u0435 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0431\u0445\u043e\u0434\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0430, \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0442\u0435\u043c\u0430\u043c\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043b\u044f \u043a\u043e\u0433\u043e \u044d\u0442\u0430 \u043a\u043d\u0438\u0433\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u041a\u043d\u0438\u0433\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u0433\u043e \u043f\u0443\u0433\u0430\u044e\u0442 \u0438\u043b\u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0442 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0441\u0440\u043e\u0434\u043d\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0443 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0435\u0439. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0441\u0430\u043c \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u043d\u0438\u0435 \u0438 \u0434\u0430\u0436\u0435 \u0441\u0442\u0440\u0430\u0445. \u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0447\u0435\u0442\u043a\u0438\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u043a\u043d\u0438\u0433\u0435, \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443.<\/p>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043d\u0438\u0433\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438\u043b\u0438 JavaScript, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u0434 \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430\u0445. \u041a\u043e\u0434 \u0432 \u043a\u043d\u0438\u0433\u0435 \u0441\u0432\u0435\u0434\u0435\u043d \u043a \u0441\u0430\u043c\u043e\u0439 \u0441\u0443\u0442\u0438: \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u043c\u0435\u0435\u0442\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u2014 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/p><\/div>\n<\/p><\/div>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2>\u041f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u043e\u0432<\/h2>\n<p>  \u0425\u043e\u0442\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u043e\u0440\u043c \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u043e\u0434\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u044b, \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438, \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0442\u043e\u0447\u043a\u0430\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0436\u0434\u0443 \u0432\u0445\u043e\u0434\u043e\u043c \u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u043c) \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0443\u0442\u044c. \u0422\u0430\u043a\u0438\u0435 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0430\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0433\u0440\u0430\u0444\u043e\u043c (DAG).<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0440\u0438\u0441. 4.5 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0430 \u043d\u0430 \u0440\u0438\u0441. 4.6 \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 DAG. \u0417\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0431\u0443\u043a\u0432\u043e\u0439 S \u043d\u0430 \u0440\u0438\u0441. 4.6 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d \u0432\u0445\u043e\u0434 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442, \u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0431\u0443\u043a\u0432\u043e\u0439 E \u2014 \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u043d\u0435\u0433\u043e. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0432\u0438\u043b\u043e\u043a \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0443\u0437\u043b\u0430\u043c \u0433\u0440\u0430\u0444\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tu\/gq\/6g\/tugq6g_tszhqfd2kiqocl73oevu.png\" alt=\"image\"><\/div>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/co\/w8\/gc\/cow8gcmb4y_-pvuonj2xrbabv6c.png\" alt=\"image\"><\/div>\n<p>  \u0418\u0437-\u0437\u0430 \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0445\u043e\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430. \u0423\u0437\u043b\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0430\u0437\u0432\u0438\u043b\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0435, \u044e\u0436\u043d\u043e\u0435, \u0432\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0430\u0434\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u043e\u043b\u0438\u0446\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0432\u0445\u043e\u0434 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442, \u0430 \u043b\u0438\u0441\u0442\u044c\u044f \u2014 \u0442\u0443\u043f\u0438\u043a\u0438.<\/p>\n<p>  \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0445\u043e\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0415\u0441\u043b\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u0442\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u0438\u0441\u0442\u043e\u0432\u043e\u0439 \u0443\u0437\u0435\u043b (\u0442\u0443\u043f\u0438\u043a), \u043e\u043d \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0435\u043c\u0443 \u0443\u0437\u043b\u0443, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0443\u0437\u043b\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0443 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430, \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u0442 \u043a\u043e\u0440\u043d\u044f \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0443\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0417\u0430\u0434\u0430\u0434\u0438\u043c \u043d\u0430\u0448\u0438 \u0442\u0440\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430.<br \/>  \u0427\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439? \u0414\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0442\u0443\u043f\u0438\u043a\u0430 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430.<br \/>  \u041a\u0430\u043a\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0438 \u0435\u0435 \u0432\u044b\u0437\u043e\u0432\u0435? \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b x, y, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0436\u0435 \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 x, y.<\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u044e? \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0437\u0430\u043b\u0438\u0432\u043a\u043e\u0439, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0442\u043e\u0447\u0435\u043a \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u0442\u0443\u043f\u0438\u043a\u0430 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430.<\/p>\n<p>  \u0424\u0430\u0439\u043b mazeSolver.py \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 MAZE:<\/p>\n<pre><code class=\"javascript\"># \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430: # \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b inventwithpython.com\/examplemaze.txt MAZE = &quot;&quot;&quot; ####################################################################### #S#                 #       # #   #     #         #     #   #         # # ##### ######### # ### ### # # # # ### # # ##### # ### # # ##### # ### # #   #     #     #     #   # # #   # #   # #       # # # #     # #   # # # # ##### # ########### ### # ##### ##### ######### # # ##### ### # # #   #     # # #     #   #   #   #         #       #   #   #   #   # # # ######### # # # ##### # ### # ########### ####### # # ##### ##### ### # #       # # # #     # #     # #   #   #   #     # # #   #         #   # # # ##### # # ### # # ####### # # # # # # # ##### ### ### ######### # # # # #   # # #   # # #     #     #   #   #   #   #   #     #         # # ### # # # # ### # # ##### ####### ########### # ### # ##### ##### ### # #   # #   # #   # #     #   #     #       #   #     # #     #     #   # # ### ####### ##### ### ### ####### ##### # ######### ### ### ##### ### #   #         #     #     #       #   # #   # #     #   # #   # #   # # ### ########### # ####### ####### ### # ##### # # ##### # # ### # ### # #   #   #       # #     #   #   #     #       # # #     # # #   # #   # # ### # # ####### # ### ##### # ####### ### ### # # ####### # # # ### # #     #         #     #       #           #     #           # #      E# ####################################################################### &quot;&quot;&quot;.split('\\n')  # \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435: EMPTY = ' ' START = 'S' EXIT = 'E' PATH = '.'  # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u0442\u044b \u0438 \u0448\u0438\u0440\u0438\u043d\u044b \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430: HEIGHT = len(MAZE) WIDTH = 0 for row in MAZE: # \u0417\u0430\u0434\u0430\u0435\u043c \u0434\u043b\u044f WIDTH \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0438\u0440\u0438\u043d\u044b \u0441\u0430\u043c\u043e\u0439 \u0448\u0438\u0440\u043e\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438     if len(row) &gt; WIDTH:         WIDTH = len(row)  # \u041f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0448\u0438\u0440\u0438\u043d\u043e\u0439 WIDTH: for i in range(len(MAZE)):     MAZE[i] = list(MAZE[i])     if len(MAZE[i]) != WIDTH:         MAZE[i] = [EMPTY] * WIDTH # \u0414\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0443\u0441\u0442\u043e\u0439  def printMaze(maze):     for y in range(HEIGHT):         # \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.         for x in range(WIDTH):             # \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435             print(maze[y][x], end='')         print() # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443     print() def findStart(maze):     for x in range(WIDTH):         for y in range(HEIGHT):             if maze[y][x] == START:                 return (x, y) # \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0445\u043e\u0434\u0430 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442  def solveMaze(maze, x=None, y=None, visited=None):     if x == None or y == None:         x, y = findStart(maze)         maze[y][x] = EMPTY # \u0418\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0431\u0443\u043a\u0432\u044b &quot;S&quot; \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435     if visited == None:      \u2776 visited = [] # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a      if maze[y][x] == EXIT:          return True # \u0412\u044b\u0445\u043e\u0434 \u043d\u0430\u0439\u0434\u0435\u043d, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 True      maze[y][x] = PATH # \u041e\u0442\u043c\u0435\u0447\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435. \u2777 visited.append(str(x) + ',' + str(y)) \u2778 #printMaze(maze) # \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u0432\u043f\u0435\u0440\u0435\u0434       # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0435\u0432\u0435\u0440\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if y + 1 &lt; HEIGHT and maze[y + 1][x] in (EMPTY, EXIT) and \\     str(x) + ',' + str(y + 1) not in visited:         # \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if solveMaze(maze, x, y + 1, visited):             return True # \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419      # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u044e\u0436\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if y - 1 &gt;= 0 and maze[y - 1][x] in (EMPTY, EXIT) and \\     str(x) + ',' + str(y - 1) not in visited:         # \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if solveMaze(maze, x, y - 1, visited):             return True # \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419      # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432\u043e\u0441\u0442\u043e\u0447\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if x + 1 &lt; WIDTH and maze[y][x + 1] in (EMPTY, EXIT) and \\     str(x + 1) + ',' + str(y) not in visited:         # \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if solveMaze(maze, x + 1, y, visited):             return True # \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419      # \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043f\u0430\u0434\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if x - 1 &gt;= 0 and maze[y][x - 1] in (EMPTY, EXIT) and \\     str(x - 1) + ',' + str(y) not in visited:         # \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419 if solveMaze(maze, x - 1, y, visited):             return True # \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419      maze[y][x] = EMPTY # \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u2779 #printMaze(maze) # \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u043d\u0430\u0437\u0430\u0434      return False # \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419  printMaze(MAZE) solveMaze(MAZE) printMaze(MAZE)<\/code><\/pre>\n<p>  \u042d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 mazeSolver.html:<\/p>\n<pre><code class=\"javascript\">&lt;script type=&quot;text\/javascript&quot;&gt; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430: \/\/ \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b inventwithpython.com\/examplemaze.txt let MAZE = ` ####################################################################### #S#                 #       # #   #     #         #     #   #         # # ##### ######### # ### ### # # # # ### # # ##### # ### # # ##### # ### # #   #     #     #     #   # # #   # #   # #       # # # #     # #   # # # # ##### # ########### ### # ##### ##### ######### # # ##### ### # # #   #     # # #     #   #   #   #         #       #   #   #   #   # # # ######### # # # ##### # ### # ########### ####### # # ##### ##### ### # #       # # # #     # #     # #   #   #   #     # # #   #         #   # # # ##### # # ### # # ####### # # # # # # # ##### ### ### ######### # # # # #   # # #   # # #     #     #   #   #   #   #   #     #         # # ### # # # # ### # # ##### ####### ########### # ### # ##### ##### ### # #   # #   # #   # #     #   #     #       #   #     # #     #     #   # # ### ####### ##### ### ### ####### ##### # ######### ### ### ##### ### #   #         #     #     #       #   # #   # #     #   # #   # #   # # ### ########### # ####### ####### ### # ##### # # ##### # # ### # ### # #   #   #       # #     #   #   #     #       # # #     # # #   # #   # # ### # # ####### # ### ##### # ####### ### ### # # ####### # # # ### # #     #         #     #       #           #     #           # #      E# ####################################################################### `.split(&quot;\\n&quot;);  \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435: const EMPTY = &quot; &quot;; const START = &quot;S&quot;; const EXIT = &quot;E&quot;; const PATH = &quot;.&quot;;  \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u0442\u044b \u0438 \u0448\u0438\u0440\u0438\u043d\u044b \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430: const HEIGHT = MAZE.length; let maxWidthSoFar = MAZE[0].length; for (let row of MAZE) { \/\/ \u0417\u0430\u0434\u0430\u0435\u043c \u0434\u043b\u044f WIDTH \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0448\u0438\u0440\u0438\u043d\u044b \u0441\u0430\u043c\u043e\u0439 \u0448\u0438\u0440\u043e\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438     if (row.length &gt; maxWidthSoFar) {         maxWidthSoFar = row.length;     } } const WIDTH = maxWidthSoFar; \/\/ \u041f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0448\u0438\u0440\u0438\u043d\u043e\u0439 WIDTH: for (let i = 0; i &lt; MAZE.length; i++) {     MAZE[i] = MAZE[i].split(&quot;&quot;);     if (MAZE[i].length !== WIDTH) {         MAZE[i] = EMPTY.repeat(WIDTH).split(&quot;&quot;); \/\/ \u0414\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0443\u0441\u0442\u043e\u0439     } }   function printMaze(maze) {     document.write(&quot;&lt;pre&gt;&quot;);     for (let y = 0; y &lt; HEIGHT; y++) {         \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443         for (let x = 0; x &lt; WIDTH; x++) {             \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435             document.write(maze[y][x]);         }         document.write(&quot;\\n&quot;); \/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430                               \/\/ \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443     }     document.write(&quot;\\n&lt;\/ pre&gt;&quot;); }  function findStart(maze) {     for (let x = 0; x &lt; WIDTH; x++) {         for (let y = 0; y &lt; HEIGHT; y++) {             if (maze[y][x] === START) {                 return [x, y]; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0445\u043e\u0434\u0430 \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442             }         }     } }  function solveMaze(maze, x, y, visited) {     if (x === undefined || y === undefined) {         [x, y] = findStart(maze);         maze[y][x] = EMPTY; \/\/ \u0418\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0431\u0443\u043a\u0432\u044b S \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435     }     if (visited === undefined) {      \u2776 visited = []; \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a     }       if (maze[y][x] == EXIT) {          return true; \/\/ \u0412\u044b\u0445\u043e\u0434 \u043d\u0430\u0439\u0434\u0435\u043d, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 True     }      maze[y][x] = PATH; \/\/ \u041e\u0442\u043c\u0435\u0447\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435 \u2777 visited.push(String(x) + &quot;,&quot; + String(y)); \u2778 \/\/printMaze(maze) \/\/ \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u0432\u043f\u0435\u0440\u0435\u0434      \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0435\u0432\u0435\u0440\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if ((y + 1 &lt; HEIGHT) &amp;&amp; ((maze[y + 1][x] == EMPTY) ||     (maze[y + 1][x] == EXIT)) &amp;&amp;     (visited.indexOf(String(x) + &quot;,&quot; + String(y + 1)) === -1)) {         \/\/ \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if (solveMaze(maze, x, y + 1, visited)) {             return true; \/\/ \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         }     }     \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u044e\u0436\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if ((y - 1 &gt;= 0) &amp;&amp; ((maze[y - 1][x] == EMPTY) ||     (maze[y - 1][x] == EXIT)) &amp;&amp;     (visited.indexOf(String(x) + &quot;,&quot; + String(y - 1)) === -1)) {         \/\/ \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if (solveMaze(maze, x, y - 1, visited)) {             return true; \/\/ \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         }     }     \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432\u043e\u0441\u0442\u043e\u0447\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if ((x + 1 &lt; WIDTH) &amp;&amp; ((maze[y][x + 1] == EMPTY) ||     (maze[y][x + 1] == EXIT)) &amp;&amp;     (visited.indexOf(String(x + 1) + &quot;,&quot; + String(y)) === -1)) {         \/\/ \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if (solveMaze(maze, x + 1, y, visited)) {             return true; \/\/ \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         }     }     \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043f\u0430\u0434\u043d\u0443\u044e \u0441\u043e\u0441\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u043a\u0443:     if ((x - 1 &gt;= 0) &amp;&amp; ((maze[y][x - 1] == EMPTY) ||     (maze[y][x - 1] == EXIT)) &amp;&amp;     (visited.indexOf(String(x - 1) + &quot;,&quot; + String(y)) === -1)) {         \/\/ \u0420\u0415\u041a\u0423\u0420\u0421\u0418\u0412\u041d\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         if (solveMaze(maze, x - 1, y, visited)) {             return true; \/\/ \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419         }     }      maze[y][x] = EMPTY; \/\/ \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u2779 \/\/printMaze(maze); \/\/ \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u043d\u0430\u0437\u0430\u0434     return false; \/\/ \u0411\u0410\u0417\u041e\u0412\u042b\u0419 \u0421\u041b\u0423\u0427\u0410\u0419 }  printMaze(MAZE); solveMaze(MAZE); printMaze(MAZE); &lt;\/script&gt;<\/code><\/pre>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438\u0437 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430. \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 MAZE \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438). \u0421\u0438\u043c\u0432\u043e\u043b\u044b # \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u0435\u0433\u043e \u0441\u0442\u0435\u043d\u044b, \u0430 \u0431\u0443\u043a\u0432\u044b S \u0438 E \u2014 \u0432\u0445\u043e\u0434 \u0438 \u0432\u044b\u0445\u043e\u0434 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u042d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043e\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u043e\u043a, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0435. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a MAZE[y][x] (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 y \u0438\u0434\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0439), \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 \u0442\u043e\u0447\u043a\u0435 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 x \u0438 y \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 MAZE. \u0424\u0443\u043d\u043a\u0446\u0438\u044f printMaze() \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044f findStart() \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b x \u0438 y \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 S. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0432 \u043d\u0435\u043c \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432.<\/p>\n<p>  \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 solveMaze(), \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430, \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b x \u0438 y, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0438\u0441\u043e\u043a visited (\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u043d\u0435 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d) \u2776. \u0421\u043f\u0438\u0441\u043e\u043a visited \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0438\u0437 \u0442\u0443\u043f\u0438\u043a\u0430 \u043a \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0435\u0439 \u0440\u0430\u0437\u0432\u0438\u043b\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u00ab\u043f\u043e\u043c\u043d\u0438\u0442\u00bb, \u043a\u0430\u043a\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u043e\u043d \u0443\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b, \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c. \u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u0442 \u0432\u0445\u043e\u0434\u0430 \u0434\u043e \u0432\u044b\u0445\u043e\u0434\u0430 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435 EMPTY) \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 (\u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b PATH).<\/p>\n<p>  \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0438\u0437 \u0433\u043b\u0430\u0432\u044b 3 \u0432 \u0442\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435, \u0447\u0442\u043e \u043e\u043d \u00ab\u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f\u00bb \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u0438, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u044f \u0442\u0443\u043f\u0438\u043a\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0440\u0430\u0437\u0432\u0438\u043b\u043a\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044f solveMaze() \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b x \u0438 y, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0442\u043e\u0447\u043a\u0438. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0445\u043e\u0434, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 True, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 True. \u0410 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043f\u0443\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b x \u0438 y \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0442\u043e\u0447\u043a\u043e\u0439 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a visited \u2777. \u0417\u0430\u0442\u0435\u043c \u043e\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0439\u0441\u044f \u043a \u0441\u0435\u0432\u0435\u0440\u0443 \u043e\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438 \u043e\u043d\u0430 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u043a\u0430\u0440\u0442\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043e\u043d\u0430 \u043f\u0440\u043e\u0431\u0435\u043b\u0443 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u0443 \u0438\u0437 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0438 \u043d\u0435 \u043f\u043e\u0441\u0435\u0449\u0430\u043b\u0430\u0441\u044c \u043b\u0438 \u043e\u043d\u0430 \u0440\u0430\u043d\u044c\u0448\u0435. \u0415\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 solveMaze(), \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0435\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u043b\u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 solveMaze() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 False, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043a \u044e\u0433\u0443, \u0432\u043e\u0441\u0442\u043e\u043a\u0443 \u0438 \u0437\u0430\u043f\u0430\u0434\u0443. \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0438, \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<\/p>\n<p>  <i><\/p>\n<h2>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435<\/h2>\n<p>  \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a Python\/JavaScript \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0435 \u043a\u043e\u043f\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432\/\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0438\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u044e\u0431\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 (\u0432\u0440\u043e\u0434\u0435 maze \u0438 visited), \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0438\u043b\u0435 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u042d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432\u0441\u0435\u043c\u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 x \u0438 y. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 MAZE, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 solveMaze().<\/i><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 printMaze(MAZE) \u2778 \u2779 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 solveMaze(). \u041e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430 \u043f\u043e \u043c\u0435\u0440\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043d\u043e\u0432\u044b\u0435 \u043f\u0443\u0442\u0438, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0442\u0443\u043f\u0438\u043a\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b.<\/p>\n<h2>\u0420\u0435\u0437\u044e\u043c\u0435<\/h2>\n<p>  \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0438\u0441\u043a \u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u043c. \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u0443\u0437\u043b\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0440\u0435\u0431\u0435\u0440, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0443\u0437\u043b\u044b \u0441 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043c\u044b \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u044b\u0439 \u0442\u0438\u043f \u0434\u0435\u0440\u0435\u0432\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0430\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0433\u0440\u0430\u0444\u043e\u043c (DAG), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445. \u0412\u044b\u0437\u043e\u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0445\u043e\u0436 \u0441 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u043c\u0443 \u0443\u0437\u043b\u0443 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435, \u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u0443\u0437\u043b\u0443.<\/p>\n<p>  \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0435\u0439 \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0442 \u043f\u0440\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u043c. \u041e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u044d\u0442\u0438 \u0438\u0434\u0435\u0438, \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043e\u0431\u0445\u043e\u0434\u0430, \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440. \u0411\u044b\u043b\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043e\u0434\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442 \u0438\u043c\u0435\u0435\u0442 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u0442\u043e, \u043a\u0430\u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u0438 \u043f\u043e\u0438\u0441\u043a \u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0435\u0433\u043e \u043f\u0440\u043e\u0439\u0442\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431 \u0430\u0432\u0442\u043e\u0440\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\"><b>\u042d\u043b \u0421\u0432\u0435\u0439\u0433\u0430\u0440\u0442 (Al Sweigart)<\/b> \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u0447\u043b\u0435\u043d \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Python Software Foundation \u0438 \u0430\u0432\u0442\u043e\u0440 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043d\u0438\u0433 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u00abPython. \u0427\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0438\u0445\u00bb \u0438 \u00ab\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Python\u00bb (\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u00ab\u041f\u0438\u0442\u0435\u0440\u00bb). \u0415\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u0435 \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 Creative Commons, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"https:\/\/www.inventwithpython.com\">www.inventwithpython.com<\/a>.<\/div>\n<\/p><\/div>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e \u043d\u0430\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\"><b>\u0421\u0430\u0440\u0430 \u041a\u0443\u0447\u0438\u043d\u0441\u043a\u0438 (Sarah Kuchinsky)<\/b> \u0438\u043c\u0435\u0435\u0442 \u0443\u0447\u0435\u043d\u044b\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u0430, \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0438\u0438 \u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438. \u041f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u043d\u0438\u043d\u0433\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c \u0437\u0434\u0440\u0430\u0432\u043e\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438\u0433\u0440 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e Python. \u0421\u0430\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 North Bay Python, \u043f\u0440\u0435\u0434\u0441\u0435\u0434\u0430\u0442\u0435\u043b\u0435\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 PyCon US \u0438 \u0432\u0435\u0434\u0443\u0449\u0438\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 PyLadies Silicon Valley.  <\/div>\n<\/p><\/div>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441 \u043a\u043d\u0438\u0433\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 <a href=\"https:\/\/www.piter.com\/product\/rekursivnaya-kniga-o-rekursii\">\u0441\u0430\u0439\u0442\u0435 \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430<\/a>:<\/p>\n<p>  \u00bb <a href=\"https:\/\/www.piter.com\/product\/rekursivnaya-kniga-o-rekursii#Oglavlenie-1\">\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/a><br \/>  \u00bb <a href=\"https:\/\/www.piter.com\/product\/rekursivnaya-kniga-o-rekursii#Otryvok-1\">\u041e\u0442\u0440\u044b\u0432\u043e\u043a<\/a><\/p>\n<p>  \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u043e\u043f\u043b\u0430\u0442\u044b \u0431\u0443\u043c\u0430\u0436\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043d\u0438\u0433\u0438 \u043d\u0430 e-mail \u0432\u044b\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430. <br \/>  \u0414\u043b\u044f \u0425\u0430\u0431\u0440\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u0441\u043a\u0438\u0434\u043a\u0430 25% \u043f\u043e \u043a\u0443\u043f\u043e\u043d\u0443 \u2014 <b>\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u044f<\/b><\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/piter\/articles\/737600\/\"> https:\/\/habr.com\/ru\/companies\/piter\/articles\/737600\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\"><a href=\"https:\/\/habr.com\/ru\/companies\/piter\/articles\/737600\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ra\/ez\/yk\/raezyksm2qmdccdt0gqcnsflute.jpeg\" align=\"left\" alt=\"image\"><\/a>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440\u043e\u0436\u0438\u0442\u0435\u043b\u0438!<\/p>\n<p>  \u041a\u043d\u0438\u0433\u0430 \u00ab\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438\u00bb \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438 JavaScript, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u044f\u0441\u043d\u044f\u044e\u0442 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0432\u0441\u0435\u0445 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u0418\u0437 \u043a\u043d\u0438\u0433\u0438 \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0438, \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c), \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c\u044b\u0435 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0431\u0445\u043e\u0434\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0430, \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0442\u0435\u043c\u0430\u043c\u0438.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043b\u044f \u043a\u043e\u0433\u043e \u044d\u0442\u0430 \u043a\u043d\u0438\u0433\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u041a\u043d\u0438\u0433\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u0433\u043e \u043f\u0443\u0433\u0430\u044e\u0442 \u0438\u043b\u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0442 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0441\u0440\u043e\u0434\u043d\u0438 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0443 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0435\u0439. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0441\u0430\u043c \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u0434\u043e\u0443\u043c\u0435\u043d\u0438\u0435 \u0438 \u0434\u0430\u0436\u0435 \u0441\u0442\u0440\u0430\u0445. \u042f \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0447\u0435\u0442\u043a\u0438\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0432 \u043a\u043d\u0438\u0433\u0435, \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443.<\/p>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043d\u0438\u0433\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438\u043b\u0438 JavaScript, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u043e\u0434 \u0432 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430\u0445. \u041a\u043e\u0434 \u0432 \u043a\u043d\u0438\u0433\u0435 \u0441\u0432\u0435\u0434\u0435\u043d \u043a \u0441\u0430\u043c\u043e\u0439 \u0441\u0443\u0442\u0438: \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u043c\u0435\u0435\u0442\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u2014 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/p><\/div>\n<\/p><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-347883","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/347883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=347883"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/347883\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=347883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=347883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=347883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}