{"id":219647,"date":"2014-04-17T01:18:02","date_gmt":"2014-04-16T21:18:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=219647"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=219647","title":{"rendered":"<span class=\"post_title\">\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u043e\u0437\u0433\u0430\u0445 \u0443 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0438 \u043a\u0430\u043a \u0438\u043c \u043f\u043e\u043c\u043e\u0447\u044c<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/0c2\/d50\/06c\/0c2d5006c907ab64346ebcf410dafdb3.png\" align=\"right\"\/>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0418\u0437 \u043d\u0438\u0445 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430: <a href=\"http:\/\/habrahabr.ru\/post\/140301\/\">\u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u2014 \u0447\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u043e \u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439?<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/post\/140387\/\">\u041a\u0430\u043a\u043e\u0432\u0430 \u0440\u043e\u043b\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u00ab\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e\u00bb \u0441\u043b\u043e\u044f \u0432 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430<\/a>. \u0412 \u043d\u0438\u0445, \u043a\u0430\u043a \u0438 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0435\u0442\u0438 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0434\u0430\u0447, \u0438 \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0442 \u0434\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f. \u041d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043a\u0430\u043a-\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0423\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0447\u0435\u043c\u0443 \u0442\u0430\u043c \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d, \u0438 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0435\u043c\u0443 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438\u0441\u043f\u044b\u0442\u0430\u0442\u044c \u0433\u043e\u0440\u044c\u043a\u0443\u044e \u0438\u0440\u043e\u043d\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u0430 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0418\u0418.<br \/>  \u042f\u0437\u044b\u043a\u043e\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0421#, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044f \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0448\u0438\u043b \u0435\u0433\u043e \u0432\u044b\u0443\u0447\u0438\u0442\u044c. \u042f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0434\u0432\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430: \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430, \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u0443\u043c\u0435\u043b\u044c\u0445\u0430\u0440\u0442\u0430, \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443, \u043a\u0430\u043a \u0438 \u043c\u043d\u0435, \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u0442\u0430\u043c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0431\u0443\u0447\u0438\u043b\u0438\u0441\u044c, \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043e\u0431\u043e\u0431\u0449\u0430\u0442\u044c \u2013 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<p>  <b>\u041e\u0421\u0422\u041e\u0420\u041e\u0416\u041d\u041e! \u041c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a. \u041a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430.<\/b><br \/>  <a name=\"habracut\"><\/a><br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0445\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0430\u043c \u043f\u043e\u043b\u044e\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440 \u043f\u043e\u0441\u043b\u0435 1000 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430 \u044d\u0442\u0443 \u0442\u044b\u0441\u044f\u0447\u0443 \u0446\u0438\u043a\u043b\u043e\u0432. <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/FhmaYLNnCsk?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u0418\u0437 \u043a\u043e\u0434\u0430 \u044f \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0438\u0445 \u0432\u044b\u0432\u043e\u0434\u043e\u0432. \u041a\u043e\u0434 \u0432\u0430\u0436\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043a\u043e\u0440\u043d\u0435\u043c \u0432\u044b\u0434\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u0434\u0435-\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443. \u041d\u043e \u043a\u043e\u0434 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439, \u0432\u0441\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438 \u0438\u0437 \u043c\u043e\u0435\u0433\u043e \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u0442\u0430\u043a\u0443\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u043d\u0435\u0451 \u0433\u043b\u044f\u043d\u0443\u043b, \u0438 \u0441\u0440\u0430\u0437\u0443 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u043b\u0438 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0447\u0435\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u0438 \u0447\u0435\u043c\u0443. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u0434\u0432\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (x \u0438 y), \u0438 \u043d\u0430\u043a\u0438\u0434\u0430\u0435\u043c \u0432 \u043d\u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u042d\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u044b\u0448\u0435 \u0438\u043b\u0438 \u043d\u0438\u0436\u0435 \u044d\u0442\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u0436\u0435 \u0443 \u043d\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445, \u0434\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0422\u043e\u0433\u0434\u0430 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0434\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435: \u043e\u0434\u043d\u0430 \u0446\u0438\u0444\u0440\u0430-\u043e\u0434\u0438\u043d \u0432\u0445\u043e\u0434. \u0414\u043b\u044f \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (0,1), \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 \u0434\u0432\u0443\u0445\u0431\u0438\u0442\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u041f\u0430\u0440\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (0.2, 0.7), \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u0448\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430, \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u0442 \u0432 (1,3) \u0438 \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"cs\">new double[]{0.2, 0.7} =&gt; new NeuralTask {     Preview = new  double[]{0.25, 0,75, 1},     Input=new double[] {0,1,1,1},     Output=new double[]{1}} <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432 \u0443\u0447\u0435\u0431\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0441\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    var Convertion = (double[] random, double value) =&gt; { \t\tvar input = new double[]{Math.Floor(random [0]*0x4)\/0x4, Math.Floor(random [1]*0x4)\/0x4}, \t\tbyte x = (byte)(input[0] * 4); \t\tbyte y = (byte)(input[1] * 4); \t\tint res = (y &gt; value * 4 ? 1 : 0); \t\treturn new NeuralTask() { \t\t\tinput = new double[4]{ \t\t\t\t(x&2)&gt;&gt;1, x&1, \t\t\t\t(y&2)&gt;&gt;1, y&1}, \t\t\toutput = new double[1] { res }, \t\t\tpreview = new double[3] { input[0], input[1], res } \t\t}; \t}; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c \u0432 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u044f\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043d\u0435\u0437\u0435\u043c\u043d\u043e\u0439 \u043a\u0440\u0430\u0441\u043e\u0442\u044b, \u0430 \u0433\u0434\u0435-\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0431\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043c\u044b\u0441\u043b\u0438\u043c\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 double. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430. \u041d\u0443, \u0438\u043b\u0438 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f, \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u043e\u0441\u044c \u043f\u043e\u0440\u0443\u0431\u0438\u0442\u044c \u043d\u0430 256 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432, \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/f78\/eb8\/4c3\/f78eb84c3033bf02a57bc0ef9b024e39.png\"\/> <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/ece\/57b\/678\/ece57b6784b2641a06c6d50eb41ab137.png\"\/><\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u0437\u0435\u043b\u0451\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u043b\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0435, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0438\u0441\u043b\u043e, \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0443\u043b\u044f, \u0441\u0438\u043d\u0438\u0439 \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0432\u043d\u044b\u0435 0 \u0438 \u0438\u0445 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0430\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0443 \u043d\u0430\u0441 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u0438\u043d\u0430\u043f\u0441\u0430:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class Synaps<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    public class Synaps {         private double weight;         \/\/\/ &lt;summary&gt;\u0414\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u043e\u0440 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443&lt;\/summary&gt;         virtual public double Weight {             get { return weight; }             set {                 if (weight != value) {                     weight = value;                     if (axon != null)                         ChangeActionPotentialHandler(axon.ActionPotential);                 }             }         }         \/\/\/ &lt;summary&gt;\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0430\u043a\u0441\u043e\u043d. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u0432 \u0446\u0435\u043b\u044f\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0430\u043c, \u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0442\u043e\u0447\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f.&lt;\/summary&gt;         private IAxon axon;         \/\/ \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.         public IAxon Axon {             get { return axon; }             set { \/\/ \u0412\u043e\u0442 \u0442\u0443\u0442 \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u044f\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430.                 if (axon != null)                     axon.RemoveChangeActionPotentialHandler(ChangeActionPotentialHandler);                 axon = value;                 if (axon != null) {                     axon.AddChangeActionPotentialHandler(ChangeActionPotentialHandler);                     ChangeActionPotentialHandler(axon.ActionPotential);                 }             }         }                  public double ActionPotential;          \/\/\/ &lt;summary&gt; \u0421\u043e\u0431\u044b\u0442\u0438\u0435 \u043a\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0441\u0438\u043d\u0430\u043f\u0441 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b.&lt;\/summary&gt;         protected Action WhenActionPotential\u0421hanged;         public void AddActionPotentialChangeHandler(Action handler) {             WhenActionPotential\u0421hanged += handler;         }         public void RemoveActionPotentialChangeHandler(Action handler) {             WhenActionPotential\u0421hanged -= handler;         }          virtual protected void ChangeActionPotentialHandler(double axonActionPotential) {             ActionPotential = axonActionPotential * weight; \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0434\u0435\u043b\u0430\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043d\u0435\u0439\u0440\u043e\u043d\u0435.             if (WhenActionPotential\u0421hanged != null)                 WhenActionPotential\u0421hanged); \/\/ \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u043d\u0430 \u0438\u0437\u0443\u0447\u0430\u0435\u043c\u043e\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0435         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0447\u0438\u0441\u043b\u0430 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 double \u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u0439\u0440\u043e\u043d. \u041d\u0435\u0439\u0440\u043e\u043d\u044b \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0434\u0440\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 IAxon:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">interface IAxon<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    public interface IAxon {         \/\/\/ &lt;summary&gt;\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.&lt;\/summary&gt;         double ActionPotential { get; }          \/\/\/ &lt;summary&gt;\u0411\u043e\u043b\u0435\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f.&lt;\/summary&gt;         void AddChangeActionPotentialHandler(Action&lt;double&gt; handler);         void RemoveChangeActionPotentialHandler(Action&lt;double&gt; handler);          \/\/\/ &lt;summary&gt;\u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0430\u043a\u0441\u043e\u043d \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.&lt;\/summary&gt;         PointF Position { get; set; }          \/\/\/ &lt;summary&gt;\u0418\u043c\u044f \u0430\u043a\u0441\u043e\u043d\u0430 \u0447\u0442\u043e\u0431\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0442\u0440\u0435\u0439\u0441\u0435.&lt;\/summary&gt;         string Name { get; set; }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0422\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 Position, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e, \u0433\u0434\u0435 \u043d\u0435\u0439\u0440\u043e\u043d \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class SensoryNeuron<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    public class SensoryNeuron : IAxon {         protected double actionPotential;         public double ActionPotential {             get { return actionPotential; }             set {                 if (actionPotential != value) {                     actionPotential = value;                     if (WhenChangeActionPotential != null)                         WhenChangeActionPotential(actionPotential);                 }             }         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0441\u0430\u043c \u043d\u0435\u0439\u0440\u043e\u043d \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class Neuron<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    \/\/\/ &lt;summary&gt;\u041e\u0431\u0449\u0438\u0439 \u043f\u0440\u0435\u0434\u043e\u043a. \u0415\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 &lt;\/summary&gt;     public class Neuron : IAxon {         \/\/\/ &lt;summary&gt; \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u044d\u0442\u043e\u0442 \u043d\u0435\u0439\u0440\u043e\u043d. \u0421\u043f\u0438\u0441\u043e\u043a \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e.&lt;\/summary&gt;         public Synaps[] Synapses = new Synaps[0];         \/\/\/ &lt;summary&gt; \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0444\u043b\u0430\u0433, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0439, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u0441\u0432\u043e\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0438 \u043d\u0435\u0439\u0440\u043e\u043d \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442\u0435.&lt;\/summary&gt;         protected bool synapsPotentialChanged = false;         \/\/\/ &lt;summary&gt; \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0439\u0440\u043e\u043d \u043d\u043e\u0432\u0443\u044e \u0441\u0438\u043d\u0430\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u044c. \u0418 \u043d\u0430\u0446\u0435\u043f\u0438\u0442\u044c, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u0441\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0438. &lt;\/summary&gt;         public void AppendSinaps(Synaps target) {             \/\/ \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043c\u0430\u0441\u0441\u0438\u0432. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u044d\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.             Synapses = Synapses.Concat(new Synaps[1] { target }).ToArray();             target.AddActionPotentialChangeHandler(ChangeSynapsPotentialHandler); \/\/ \u0421\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u043d\u0430\u0432\u0435\u0448\u0430\u0442\u044c.             synapsPotentialChanged = true;         }         virtual protected void ChangeSynapsPotentialHandler() {             synapsPotentialChanged = true;         }          \/\/\/ &lt;summary&gt; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430. \u041e\u043d\u0430 \u0442\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0437\u043e\u0432\u0430.&lt;\/summary&gt;         protected DTransferFunction transferFunctionDelegate;         public virtual DTransferFunction TransferFunction {             get { return transferFunctionDelegate; }             set {                 transferFunctionDelegate = value;             }         }          \/\/\/ &lt;summary&gt; \u041c\u0435\u0442\u043e\u0434 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u0447\u0451\u0442 \u0432 \u043d\u0435\u0439\u0440\u043e\u043d\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0435\u0433\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. &lt;\/summary&gt;         public virtual void Excitation() {             if (!synapsPotentialChanged) return; \/\/ \u0414\u043b\u044f \u043d\u0435\u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u0430             synapsPotentialChanged = false;             synapsPotentials = 0;             for (int i = 0; i &lt; Synapses.Length; i++)                 synapsPotentials += Synapses[i].ActionPotential;             double newValue = transferFunctionDelegate(synapsPotentials);             if (actionPotential != newValue) { \/\/ \u0414\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0430.                 actionPotential = newValue;                 if (WhenChangeActionPotential != null)                     WhenChangeActionPotential(actionPotential);             }         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    \/\/\/ &lt;summary&gt; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432. &lt;\/summary&gt;     \/\/\/ &lt;param name=&quot;argument&quot;&gt;\u0421\u0443\u043c\u043c\u0430 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u043e\u0432 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432&lt;\/param&gt;     \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u0430&lt;\/returns&gt;     public delegate double DTransferFunction(double argument);     DTransferFunction BarrierTransferFunction = (double x) =&gt; x &lt;= 0 ? 0 : 1; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u0438\u0437 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0435\u0451 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class NeuralNetwork, PerceptronClassic, ErrorCorrection<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    abstract public class NeuralNetwork {         \/\/\/ &lt;summary&gt;\u0412\u0445\u043e\u0434 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438&lt;\/summary&gt;         public SensoryNeuron[] Input = new SensoryNeuron[0];          \/\/\/ &lt;summary&gt;         \/\/\/ \u0412\u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b\u043d\u0435 \u0432 \u0441\u0435\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0432 \u0442\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b. \u0421\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u0441\u044e\u0434\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442.         \/\/\/ \u042f \u043d\u0435 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0445\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 \u043c\u043e\u0433\u043b\u0430 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e \u0432\u043a\u0443\u0441\u0443.         \/\/\/ &lt;\/summary&gt;         public Neuron[] ExcitationOrder = new Neuron[0];          \/\/\/ &lt;summary&gt;\u0412\u044b\u0445\u043e\u0434 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438&lt;\/summary&gt;         public Neuron[] Output = new Neuron[0];          \/\/\/ &lt;summary&gt;\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0439 \u0441\u0435\u0442\u044c \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;input&quot;&gt;\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 - \u0432\u0445\u043e\u0434\u043e\u0432&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;output&quot;&gt;\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0440\u0435\u0430\u043a\u0446\u0438\u0438&lt;\/param&gt;         abstract public void create(uint input, uint output);          public void execute(double[] data) {             \/\/ \u041d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438 \u0432\u0445\u043e\u0434\u0430 \u0441\u0435\u0442\u0438 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438             for (int i = 0; i &lt; Input.Length && i &lt; data.Length; i++) {                 Input[i].ActionPotential = data[i];             }             for (int i = 0; i &lt; ExcitationOrder.Length; i++)                 ExcitationOrder[i].Excitation();         }         public double[] Result() {             \/\/ return output.Select(s =&gt; s.ActionPotential).ToArray(); \/\/TODO \u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 Linq \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.             double[] res = new double[Output.Length];             for (int i = 0; i &lt; res.Length; i++)                 res[i] = Output[i].ActionPotential;             return res;         }     }     public class PerceptronClassic : NeuralNetwork {         \/\/ \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0447\u0435\u043c \u0432\u0445\u043e\u0434\u043e\u0432 \u0441\u0435\u0442\u0438         public int neuronCountsOverSensoric = 15;         \/\/\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u0430         public int ANeuronSynapsCount;         \/\/ \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f         public Neuron[] Layer;         \/\/ \u041a\u043b\u0430\u0441\u0441 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u043b\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c         override public void create(uint inputCount, uint outputCount) {             rnd = rndSeed &gt;= 0 ? new Random(rndSeed) : new Random();             \/\/ \u0421\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b             this.Input = new SensoryNeuron[inputCount];             for (int i = 0; i &lt; inputCount; i++)                 Input[i] = new SensoryNeuron() {Name = &quot;S&quot; + i};             \/\/\u0413\u0440\u0443\u043f\u043f\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f - \u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0435             Layer = new Neuron[inputCount + neuronCountsOverSensoric];             for (int i = 0; i &lt; Layer.Length; i++) {                 \/\/ \u042d\u0442\u043e \u0441\u0430\u043c \u043d\u0435\u0439\u0440\u043e\u043d                 Layer[i] = new RosenblattNeuron();                 \/\/ \u0410 \u044d\u0442\u043e \u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043d\u0435\u043e\u0431\u0443\u0447\u0430\u0435\u043c\u044b\u0435 \u0441\u0438\u043d\u0430\u043f\u0441\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f                 SensoryNeuron[] sub = Input.OrderBy((cell) =&gt; rnd.NextDouble()).Take(ANeuronSynapsCount).ToArray();                 \/\/ \u0418\u0445 \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432                 for (int j = 0; j &lt; sub.Length; j++) {                     Synaps s = new Synaps();                     s.Axon = sub[j];                     s.Weight = rnd.Next(2) * 2 - 1;                     Layer[i].AppendSinaps(s);                 }             }             \/\/ \u041d\u0430\u0437\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e \u043c\u0435\u0441\u0442\u0443 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.             for (int i = 0; i &lt; Layer.Length; i++)                 Layer[i].Name = &quot;A&quot; + i;             \/\/ \u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b - \u0420\u0435\u0430\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b             Output = new Neuron[outputCount];             for (int i = 0; i &lt; Output.Length; i++) {                 Output[i] = new RosenblattNeuron();                 Output[i].Name = &quot;R&quot; + i;                 \/\/ \u0418\u0445 \u0441\u0438\u043d\u0430\u043f\u0441\u044b \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f                 for (int j = 0; j &lt; Layer.Length; j++) {                     Synaps s = new Synaps();                     s.Axon = Layer[j];                     Output[i].AppendSinaps(s); \/\/ \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u0441 0                 }             }             \/\/ \u0418 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0432 \u043a\u0443\u0447\u0443 \u043e\u0431\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432             int lastIndex = 0;             ExcitationOrder = new Neuron[Layer.Length + Output.Length];             foreach (Neuron cell in Layer)                 ExcitationOrder[lastIndex++] = cell;             foreach (Neuron cell in Output)                 ExcitationOrder[lastIndex++] = cell;         }     }     \/\/\/ &lt;summary&gt;\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438.&lt;\/summary&gt;     public class ErrorCorrection : LearningAlgorythm {         \/\/ \u041c\u0435\u0442\u043e\u0434, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 \u0430\u043a\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435         override protected double LearnNet(double[] required) {             double error = 0;             for (int i = 0; i &lt; required.Length && i &lt; net.Output.Length; i++) {                 if (required[i] != net.Output[i].ActionPotential) {                     error += 1;                     \/\/ \u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b                     for (int j = 0; j &lt; (net as PerceptronClassic).Layer.Length; j++)                         \/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0435\u0445 \u0438\u0437 \u043d\u0438\u0445, \u043a\u0442\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f                         if ((net as PerceptronClassic).Layer[j].ActionPotential &gt; 0)                             \/\/ \u0423 \u0432\u0441\u0435\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f                             foreach (RosenblattNeuron cell in net.Output)                                 \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0432\u0435\u0441\u0430 \u0432\u0441\u0435\u0445 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d                                 \/\/ \u0415\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u0434\u0435\u0437\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f, \u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u043c \u0432\u0435\u0441, \u0435\u0441\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2013 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u043c. \u0412\u0435\u0441 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c.                                 cell.Synapses[j].Weight += required[i] &lt;= 0 ? -1 : 1;                 }             }             return error;         }         \/\/\/ &lt;summary&gt;\u041e\u0431\u0443\u0447\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430&lt;\/summary&gt;         public void LearnTasksSet() {             if (data == null) { Console.WriteLine(&quot;\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442&quot;); return; }             data.Reset();             LearnedTaskSetsCount++;             ErrorsInSet = LearnedTasksInSetCount = 0;             int max = 1000;             while (data.MoveNext() && --max &gt;= 0)                 LearnCurrentTask();             \/\/ \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u0435\u0442 \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0438\u0434\u043d\u0430.         }          \/\/\/ &lt;summary&gt;\u041e\u0431\u0443\u0447\u0430\u0442\u044c \u0432\u0441\u0435\u043c\u0443 \u0441\u0435\u0442\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0438\u043b\u0438 \u043f\u043e\u043a\u0430 \u0441\u0435\u0442\u044c \u043d\u0435 \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f.&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;loops&quot;&gt;\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u0441\u0435\u0442&lt;\/param&gt;         public void LearnSetManyTimesUntilSuccess(int loops) {             for (int i = 0; i &lt; loops; i++) {                 LearnTasksSet();                 if (ErrorsInSet == 0) {                     break;                 }             }          }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>Enumerable&lt;NeuralTask&gt;<\/code> \u0438 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c Reset-\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u0447\u043a\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.<\/p><\/div>\n<\/div>\n<p>  \u0412\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043f\u043e \u0434\u0432\u0430 \u0431\u0438\u0442\u0430 \u043d\u0430 \u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043c \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0441\u0435\u043f\u0430\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0439 A \u043d\u0430 8 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u0445\u043e\u0434\u043e\u0432 \u2013 12 \u0448\u0442\u0443\u043a. \u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438. \u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0431\u0435\u0437\u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u0441\u0435 16 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a56\/1f0\/beb\/a561f0beb99f92b38efee0a0382624d1.png\"\/><\/p>\n<p>  \u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0441\u0435\u0433\u043e 16, \u0430 \u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0431\u043e\u043b\u044c\u0448\u0435. \u0427\u0442\u043e\u0431\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u043e\u043a\u0440\u044b\u043b\u0438 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b.<\/p>\n<p>  \u0420\u0430\u0437 \u0432\u0441\u0451 \u0442\u0430\u043a \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043a \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u0435, \u0433\u0434\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043e\u0441\u044c \u0443 \u043d\u0430\u0441 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f 256 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0443\u044e. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, 64 \u0442\u043e\u0447\u043a\u0438. \u0412 \u0441\u043b\u043e\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 20 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u0445\u043e\u0434\u043e\u0432 \u2013 36 \u0448\u0442\u0443\u043a. \u0418 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0443\u0441\u043f\u0435\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/92a\/fe0\/a2c\/92afe0a2c2bfe72a06c18c5d2a724d30.png\"\/><\/p>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u041c\u044b \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u0441\u0435\u0442\u044c \u0438 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u0435\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u043e\u0447\u043a\u0430\u0445. \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0433\u0440\u0443\u0441\u0442\u043d\u043e\u0435. \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b\u0439 \u0441\u0435\u0442\u044c\u044e, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0442\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/712\/7f2\/f70\/7127f2f705bb2bb1aa265ba8a2a0fdda.png\"\/><\/p>\n<p>  \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0441\u0435\u0442\u044c \u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u0431\u0449\u0438\u0445 \u0447\u0435\u0440\u0442\u0430\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u0430\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0435\u0439 \u0442\u043e\u0447\u043a\u0430\u043c\u0438. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431 \u0438\u0437\u0443\u0447\u0430\u0435\u043c\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c 256 \u0442\u043e\u0447\u0435\u043a. 36-\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u043a\u0430\u043a \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437, \u0443\u0436\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0442\u044c \u0441\u043c\u043e\u0433\u043b\u0430 \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043b\u0438\u043d\u0435\u0439\u043d\u043e \u0441\u0435\u043f\u0430\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c 70 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 615 \u0440\u0430\u0437 \u0438 \u043f\u0440\u043e\u043f\u044b\u043b\u0435\u0441\u043e\u0441\u0438\u0442\u044c \u043a\u0443\u043b\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0432\u0430\u043b\u0441\u044f \u043e\u0442 \u0440\u0430\u0434\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u0437\u0430 \u043e\u0434\u043d\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u0435 \u0441\u0435\u0442\u044c\u044e, \u0441\u0442\u0430\u043b\u043e \u043b\u0443\u0447\u0448\u0435, \u043d\u043e \u043d\u0435\u0432\u043e\u043e\u0440\u0443\u0436\u0451\u043d\u043d\u044b\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043e\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0443\u0441\u0438\u043b\u0438\u044f\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/180\/b21\/c31\/180b21c31a43305cee14c3886388a4d6.png\"\/><\/p>\n<p>  \u0412 \u0441\u0435\u0440\u0434\u0446\u0430\u0445, \u043c\u044b \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e 2048 \u0442\u043e\u0447\u043a\u0430\u043c\u0438. \u0412\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0443\u0436\u0435 266 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u043e\u0435, \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d (\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 8) \u0443\u0447\u0438\u043c \u043d\u0430\u0431\u043e\u0440 411 \u0440\u0430\u0437 (\u043f\u043e\u043a\u0430 \u0441\u0435\u0442\u044c \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f) \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/c18\/a46\/8c3\/c18a468c3194a06bce1ae2f5b339b0df.png\"\/><\/p>\n<p>  \u041d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u0432\u044b, \u0430 \u044f \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0432\u0438\u0436\u0443 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. \u0421\u0435\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e \u0437\u0430\u0437\u0443\u0431\u0440\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0438\u0437\u0443\u0441\u0442\u044c, \u043d\u0438 \u0432 \u043c\u0430\u043b\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043d\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u044f\u0441\u044c \u043a \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0435\u0439 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438. \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044c\u044e \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0430 \u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434 \u043d\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/f15\/eb2\/012\/f15eb201219777217526254c5e9a1558.png\"\/><\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0447\u0442\u043e \u0441\u0443\u043c\u0435\u043b\u0430 \u0445\u043e\u0442\u044f \u0431\u044b \u044d\u0442\u043e \u0432\u044b\u0443\u0447\u0438\u0442\u044c. \u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u0432\u0435\u0440\u043d\u044b, \u0438 \u0435\u0441\u043b\u0438 \u044f \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0442\u043e \u0441\u043c\u043e\u0433\u0443 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u044c \u0437\u0430\u0443\u0447\u0438\u0442\u044c \u0445\u043e\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 65536 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1500-2000 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0438 \u0432\u043e\u0434\u044f\u043d\u043e\u0435 \u043e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0435. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0432\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044e\u0441\u044f \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0435\u0442\u0438, \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0438\u043d\u0430\u043f\u0441 \u043f\u043e 5 \u0431\u0438\u0442 (4 \u0431\u0438\u0442\u0430 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0430\u043a\u0441\u043e\u043d\u0430 \u0438 \u0431\u0438\u0442 \u0432\u0435\u0441\u0430), \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0439\u0440\u043e\u043d 16 \u0431\u0438\u0442 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0441\u0430 \u0430\u043a\u0441\u043e\u043d\u0430 \u0438 40 \u0431\u0438\u0442 \u043d\u0430 \u0432\u0441\u0435 \u0441\u0438\u043d\u0430\u043f\u0441\u044b. \u0410 \u043e\u0434\u0438\u043d \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u0435\u0441\u0438\u0442 17 \u0431\u0438\u0442. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441 2048 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u0435\u0441\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<h4>\u0423\u0434\u043e\u0431\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/237\/2df\/c9b\/2372dfc9b20af113cb5968f245f13988.png\" align=\"right\"\/>\u0422\u0430\u043a \u0432 \u0447\u0451\u043c \u0436\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430? \u0412 \u0447\u0451\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0431\u0435\u0437\u0440\u0430\u0434\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u044b? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0441\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f, \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e, \u043f\u043e\u0434\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0435 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 8 \u0432\u0445\u043e\u0434\u0430\u043c\u0438 \u0438 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435 \u0431\u0430\u0440\u044c\u0435\u0440\u043d\u0443\u044e, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438. \u0412\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u044b\u0445 8 \u0431\u0438\u0442\u043e\u0432 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0422\u0440\u0435\u0442\u0438\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441\u043e \u0432\u0441\u0435\u043c\u0438, \u0438\u043c\u0435\u0435\u0442 \u0431\u0430\u0440\u044c\u0435\u0440\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u0434\u0430\u0432\u0430\u0442\u044c 1, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0432\u0445\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0447\u0442\u043e-\u0442\u043e. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043b\u043e\u0435 \u0434\u0432\u0430 \u0438\u0437 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u043e\u043f\u044f\u0442\u044c \u0431\u0435\u0437 \u0431\u0430\u0440\u044c\u0435\u0440\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u0441 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0432\u0435\u0441\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c\u0438, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u041f\u0440\u043e\u0441\u0442\u043e, \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438 \u043d\u0438 \u043a\u0430\u043f\u043b\u0438 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0438 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0410 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0435\u0441\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u043e\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e -1 \u0438 1. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 8 \u0431\u0438\u0442 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443. \u042f \u0432\u0430\u043c \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0443 \u2013 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 512 \u0448\u0442\u0443\u043a \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0438 \u044d\u0442\u043e \u043c\u044b \u0435\u0449\u0451 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438.<\/p>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u043c\u0443 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u041a\u0442\u043e \u0434\u0440\u0443\u0436\u0435\u043d \u0441 \u0442\u0435\u043e\u0440\u0435\u043c\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0447\u0438\u0441\u0435\u043b, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0442\u044c, \u043a\u0430\u043a\u043e\u0432\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e-\u0441\u0435\u043f\u0430\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0443 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u0443\u0434\u043e\u0431\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438, \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u044f\u0442\u043d\u0438\u0441\u0442\u043e\u0433\u043e \u0441\u0438\u043d\u0435-\u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u044b\u0442\u043e\u0433\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430, \u043d\u043e \u0432\u0441\u0451 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0433\u0440\u0443\u0441\u0442\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<h3>\u0410 \u0447\u0442\u043e \u0441 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u043e\u043c \u0420\u0443\u043c\u0435\u043b\u044c\u0445\u0430\u0440\u0442\u0430?<\/h3>\n<p>  \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0430 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430, \u0430 \u0443 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0430, \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e, \u0438 \u0434\u0430\u0436\u0435 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0436\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430 \u043f\u0440\u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445. \u0412\u0441\u0451 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0438\u043d\u043b\u0430\u0439\u043d\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u044f\u043c\u043e \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f, \u043d\u043e \u043d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0436\u0435 \u043d\u0435 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c, \u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    \/\/\/ &lt;summary&gt; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u043e\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. &lt;\/summary&gt;     \/\/\/ &lt;param name=&quot;argument&quot;&gt;\u0421\u0443\u043c\u043c\u0430 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u043e\u0432 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432&lt;\/param&gt;     \/\/\/ &lt;param name=&quot;funcResult&quot;&gt;\u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u0430, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439&lt;\/param&gt;     \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0435.&lt;\/returns&gt;     public delegate double DTransferFunctionDerivative(double argument, double funcResult); <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0438\u0433\u043c\u043e\u0438\u0434\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0413\u0438\u043f\u0435\u0440\u0442\u0430\u043d\u0433\u0435\u043d\u0441\u043e\u043c:<\/p>\n<pre><code class=\"cs\">DTransferFunction Function = (x) =&gt; Math.Tanh(x), DTransferFunctionDerivative Derivative = (x, th) =&gt; (1 - th) * (1 + th) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0430\u043c \u043d\u0435\u0439\u0440\u043e\u043d. \u041e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0443\u044e \u043e\u0442 \u043d\u0435\u0433\u043e \u043f\u043e \u0441\u0443\u043c\u043c\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class NeuronWithDerivative<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    public class NeuronWithDerivative : Neuron {         \/\/\/ &lt;summary&gt; \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430. \u041e\u043d\u0430 \u0442\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0437\u043e\u0432\u0430.&lt;\/summary&gt;         protected DTransferFunctionDerivative transferFunctionDerivativeDelegate;         \/\/\/ &lt;summary&gt;&lt;\/summary&gt;         override public DTransferFunctionDerivative TransferFunction {             get { return transferFunctionDerivativeDelegate; }             set { transferFunctionDerivativeDelegate = value; }         }         \/\/\/ &lt;summary&gt;\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438&lt;\/summary&gt;         protected double actionPotentialDerivative = 0;         \/\/\/ &lt;summary&gt;\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u043e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443.&lt;\/summary&gt;         public double ActionPotentialDerivative { get { return actionPotentialDerivative; } }         \/\/\/ &lt;summary&gt;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438. \u041d\u0443, \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439. \u041a\u043e\u043c\u0443 \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435.&lt;\/summary&gt;         public double BackProprigationParametr = 0;          public override void Excitation() {             base.Excitation();             actionPotentialDerivative = transferFunctionDerivativeDelegate(synapsPotentials, actionPotential);         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041c\u043d\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c LINQ, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a \u043f\u0440\u043e\u0449\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430 \u043c\u043e\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0430\u044f \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0435\u0451 \u0432\u043c\u0435\u0441\u0442\u043e List.ForEach \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u043e\u0432 \u0431\u044b\u043b \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0438 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">static class Tools<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    static class Tools {         \/\/\/ &lt;summary&gt;\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430.&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;source&quot;&gt;\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;func&quot;&gt;\u0414\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c.&lt;\/param&gt;         public static void Each&lt;SequenceType&gt;(this IEnumerator&lt;SequenceType&gt; source, Action&lt;SequenceType&gt; func) {             while (source.MoveNext())                 func(source.Current);         }         \/\/\/ &lt;summary&gt;\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441.&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;source&quot;&gt;\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;func&quot;&gt;\u0414\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0443 - \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041e\u0442\u0441\u0447\u0451\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u043e\u0439 - \u0441 \u043d\u0430\u0447\u0430\u043b\u0430.&lt;\/param&gt;         public static void Each&lt;SequenceType&gt;(this IEnumerator&lt;SequenceType&gt; source, Action&lt;SequenceType, int&gt; func) {             for (int i = 0; source.MoveNext(); i++)                 func(source.Current, i);         }         \/\/\/ &lt;summary&gt;\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430.&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;source&quot;&gt;\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;func&quot;&gt;\u0414\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c.&lt;\/param&gt;         public static void Each&lt;SequenceType&gt;(this IEnumerable&lt;SequenceType&gt; source, Action&lt;SequenceType&gt; func) {             source.GetEnumerator().Each(func);         }         \/\/\/ &lt;summary&gt;\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441.&lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;source&quot;&gt;\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;func&quot;&gt;\u0414\u0435\u043b\u0435\u0433\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0443 - \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041e\u0442\u0441\u0447\u0451\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u043e\u0439 - \u0441 \u043d\u0430\u0447\u0430\u043b\u0430.&lt;\/param&gt;         public static void Each&lt;SequenceType&gt;(this IEnumerable&lt;SequenceType&gt; source, Action&lt;SequenceType, int&gt; func) {             source.GetEnumerator().Each(func);         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u0430\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class RumelhartPerceptron<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    \/\/ \u041c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0438\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439.     public class RumelhartPerceptron : NeuralNetwork {         \/\/\/ &lt;summary&gt; \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c. \u0417\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u0437\u0432\u043d\u0435.&lt;\/summary&gt;         DTransferFunctionDerivative TransferFunctionDerivative;         \/\/\/ &lt;summary&gt;\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043f\u043e\u0441\u043b\u043e\u0439\u043d\u043e, \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044f \u0441\u0435\u043d\u0441\u043e\u0440\u043d\u043e\u0433\u043e \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0451\u0432&lt;\/summary&gt;         public int[] NeuronsCount = new int[0];           override public void create(uint input, uint output) {             \/\/ \u0421\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u044b.             Input = (new SensoryNeuron[input]).Select((empty, index) =&gt; new SensoryNeuron(){Name = &quot;S[&quot; + index + &quot;]&quot;}).ToArray();             \/\/ \u0424\u0430\u0431\u0440\u0438\u043a\u0430 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432             Func&lt;string, NeuronWithDerivative&gt; create = (name) =&gt; {                 NeuronWithDerivative neuron = new NeuronWithDerivative();                 neuron.Name = name;                 neuron.TransferFunction = TransferFunction;                 neuron.TransferFunctionDerivative = TransferFunctionDerivative;                 return neuron;             };             Func&lt;IAxon, Synaps&gt; createSynaps = (axon) =&gt; { Synaps s = new Synaps(); s.Axon = axon; return s; };              \/\/\/ &lt;summary&gt;\u041d\u0435\u0439\u0440\u043e\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u043b\u043e\u0451\u0432&lt;\/summary&gt;             \/\/ \u0421\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u0441\u043b\u043e\u0451\u0432             NeuronWithDerivative[][] Layers = NeuronsCount.Select((count, layer) =&gt; Enumerable.Range(0, count).Select(index =&gt; create(&quot;A[&quot; + layer + &quot;][&quot; + index + &quot;]&quot;)).ToArray()).ToArray();             \/\/ \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432             \/\/ \u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u043e\u0439             Output = Enumerable.Range(0, (int)output).Select(index =&gt; create(&quot;R[&quot; + index + &quot;]&quot;)).ToArray();             \/\/ \u0412\u0441\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043d\u0430\u0432\u0435\u0441\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u0441\u043e \u0441\u043b\u043e\u0435\u043c \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u0432.             Layers[0].Each(neuron =&gt; { Input.Select(createSynaps).Each(synaps =&gt; { neuron.AppendSinaps(synaps); }); });             \/\/ \u0412\u0441\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f, \u0441\u0432\u044f\u0437\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u044f.             Layers.Skip(1).Each((layer, layerIndex) =&gt; { layer.Each(neuron =&gt; { Layers[layerIndex].Select(createSynaps).Each(synaps =&gt; { neuron.AppendSinaps(synaps); }); }); });             \/\/ \u0412\u0441\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0430\u043c \u0432\u044b\u0434\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u044b              Output.Each(neuron =&gt; { Layers.Last().Select(createSynaps).Each(synaps =&gt; { neuron.AppendSinaps(synaps); }); });             \/\/ \u0421\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0451 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f             ExcitationOrder = Layers.SelectMany(layer =&gt; layer).Concat(Output).ToArray();             \/\/ \u0420\u0430\u043d\u0434\u043e\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0441\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 -1 \u0434\u043e +1             Random rnd = new Random();             ExcitationOrder.Each(neuron =&gt; neuron.Synapses.Each(synaps =&gt; synaps.Weight = rnd.NextDouble() * 2 - 1));          }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0426\u0435\u043b\u0438\u043a\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 LINQ \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a \u0431\u044b\u043b\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0438 \u043f\u0440\u043e\u0449\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0414\u0430, \u044f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">class BackPropagationLearning<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    public class BackPropagationLearning : LearningAlgorythm {          \/\/ \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435         public double LearningSpeed = 0.01;           override protected double LearnNet(double[] required) {             double[] errors = net.Output.Select((neuron, index) =&gt; neuron.ActionPotential - required[index]).ToArray();             \/\/ \u041f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043e\u0431\u0445\u043e\u0434\u044f \u0441\u0438\u043d\u0430\u043f\u0441\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u0445 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0432 \u043d\u0435\u0439\u0440\u043e\u043d\u0435 \u0438 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0434\u0432\u0443\u0445\u0441\u0432\u044f\u0437\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0432\u044f\u0437\u0435\u0439 \u0432 \u0441\u0435\u0442\u0438.             net.ExcitationOrder.Cast&lt;NeuronWithDerivative&gt;().Each(neuron =&gt; { neuron.BackProprigationParametr = 0; });             \/\/ \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 BackProprigationParametr \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0445\u0440\u0430\u043d\u0438\u043c dE\/dS[i] = dE\/dO[i] * F'[i](S[i])             \/\/ \u0414\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f \u043e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. BP[i] = dE\/dO[i] * F'[i] = 2*(O[i]-T[i])*F'[i];             net.Output.Cast&lt;NeuronWithDerivative&gt;().Each((neuron, index) =&gt; { neuron.BackProprigationParametr = 2 * errors[index] * neuron.ActionPotentialDerivative; });             \/\/ \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043b\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d\u0438 \u0432\u043d\u0435\u0441\u043b\u0438 \u0432 \u0441\u0432\u043e\u0438 \u0430\u043a\u0441\u043e\u043d\u044b BP[j] = SUM( dE\/dO[i] * F'[i] * W[j,i] ) * F'[j] = SUM ( BP[i] * W[j,i] * F'[j])             net.ExcitationOrder.Reverse().Cast&lt;NeuronWithDerivative&gt;().Each(neuron =&gt; {                 neuron.Synapses.SkipWhile(synaps =&gt; !(synaps.Axon is NeuronWithDerivative)).Each(synaps =&gt; {                     (synaps.Axon as NeuronWithDerivative).BackProprigationParametr += neuron.BackProprigationParametr * neuron.ActionPotentialDerivative * synaps.Weight;                 });             });             \/\/ \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u0435\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u0432\u0435\u0441\u0430, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u043c\u0441\u044f delta W[i,j] = -speed * dE\/dS[j] * X[i];             net.ExcitationOrder.Reverse().Cast&lt;NeuronWithDerivative&gt;().Each(neuron =&gt; {                 neuron.Synapses.Each(synaps =&gt; {                     synaps.Weight += -LearningSpeed * neuron.BackProprigationParametr * synaps.Axon.ActionPotential;                 });             });             \/\/ \u0418 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043e\u0448\u0438\u0431\u043a\u0438. (\u0423\u0441\u0440\u0435\u0434\u043d\u044f\u0442 \u0438 \u0432\u043e\u0437\u044c\u043c\u0443\u0442 \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432).             return errors.Select(e =&gt; e * e).Average();         }          public void LearnSomeTime(int sek) {             DateTime begin = DateTime.Now;             while (TimeSpan.FromTicks(DateTime.Now.Ticks - begin.Ticks).Seconds &lt; sek) {                 LearnTasksSet();             }         }     } <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0442 \u043a\u043e\u0434. \u041e\u0442 \u0441\u0430\u043c\u043e\u0439 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0437\u0430\u0448\u0438\u0442\u0430 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443, \u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0435\u0441\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c. \u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0443\u043c\u043c\u0443 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u0430\u043a \u0443\u0447\u0438\u0442 \u043d\u0430\u0441 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u044f, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0432\u0448\u0430\u044f\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0430\u043c\u0438.<\/p>\n<p>  \u041a\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u043e\u0434\u0441\u0443\u043d\u0435\u043c \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 x \u0438 y \u0441 \u0443\u0447\u0430\u0441\u0442\u043a\u0430 [0,1], \u0412 \u0442\u043e\u0447\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0448\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430, \u0431\u0443\u0434\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0441\u0435\u0442\u0438 +1, \u0432 \u0442\u043e\u0447\u043a\u0430\u0445 \u043d\u0438\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 -1. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435 \u043e\u0434\u043d\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0430 \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0443\u0447\u0435\u0431\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u043e\u0432\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0443 \u0441\u0435\u0442\u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u043c \u0443\u0447\u0430\u0441\u0442\u043a\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u041e\u0442\u0434\u0430\u0451\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0447\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e 1000 \u0448\u0442\u0443\u043a \u0437\u0430 \u0441\u0435\u0442. \u0412 \u043f\u0440\u0435\u0432\u044c\u044e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/95e\/f0f\/eae\/95ef0feaedafbe5a39933dbc7cbbe82f.png\"\/><\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c. \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u044f \u043d\u0430\u043c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0440\u0451\u0445 \u0441\u043b\u043e\u0451\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u0430\u043b\u043e, \u043d\u0430\u0444\u0438\u0433\u0430\u0447\u0438\u043c \u043f\u043e 30 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0432 \u0441\u043b\u043e\u0439.\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u0447\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u043e\u0431\u0438\u0435\u043c <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B8%D0%BC%D0%B8%D1%82%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%82%D0%B6%D0%B8%D0%B3%D0%B0\">\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0436\u0438\u0433\u0430<\/a>, \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e \u043c\u0435\u0440\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 1000 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0436\u0438\u0433 \u0431\u044b\u043b\u043e \u043b\u0435\u043d\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u043e \u044d\u0442\u043e. \u041e\u0431\u0443\u0447\u0430\u0435\u043c-\u043e\u0431\u0443\u0447\u0430\u0435\u043c, \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f \u0440\u0438\u0441\u0443\u0435\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0442\u044c \u0432\u044b\u0434\u0430\u0441\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u0442\u043e\u0447\u0435\u043a \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0435 1&#215;1.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7d0\/361\/af9\/7d0361af94b7b47b90adafe2e665a5dd.png\"\/><\/p>\n<p>  \u041d\u0443 \u043a\u0430\u043a \u043f\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043a\u0440\u043e\u043c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u044d\u0442\u043e \u0435\u0449\u0451 \u0438 \u043b\u0443\u0447\u0448\u0438\u0439 \u0438\u0437 5 \u043f\u043e\u043f\u044b\u0442\u043e\u043a, \u0443 \u043d\u0435\u0433\u043e \u0445\u043e\u0442\u044f \u0431\u044b \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0432\u043e\u0433\u043d\u0443\u0442\u043e\u0441\u0442\u0438, \u044d\u0442\u043e \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0435\u0442\u0438 \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0435\u0449\u0451 4 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043f\u043e\u0434\u0440\u044f\u0434.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/2d0\/119\/637\/2d0119637d69ecc330710ad9e588031c.png\"\/><\/p>\n<p>  \u0412\u0441\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0434\u0430\u044e\u0442, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043f\u043e\u0445\u043e\u0436\u0438\u0439, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0438 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0437\u0430\u0432\u0430\u043b\u0435\u043d\u0430 \u0432\u043b\u0435\u0432\u043e, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0432\u043e \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e. \u0422\u0443\u043f\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0414\u041d\u041a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430, \u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0441\u0435\u0442\u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0437\u0430\u0432\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043b\u0435\u0432\u043e, \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435. \u0422\u0430\u043a, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043c\u044b \u0433\u0434\u0435-\u0442\u043e \u043e\u0448\u0438\u0431\u043b\u0438\u0441\u044c? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043c \u0441\u0435\u0442\u0438 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0436 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u2013 \u0434\u0430\u0434\u0438\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/fca\/1ec\/a95\/fca1eca95e2d8ca58e533f035ff935e2.png\"\/><\/p>\n<p>  \u0412\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u0441\u0451 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u041e\u0442\u0441\u043b\u0435\u0434\u0438\u0432 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0422\u043e\u0433\u0434\u0430 \u0434\u0430\u0434\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u043a\u0443 \u043b\u0438\u0448\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/407\/943\/6e9\/4079436e9e7b277049e3f1e944f3e348.png\"\/><\/p>\n<h4>\u041f\u043e\u043b\u043d\u043e\u0435 \u0424\u0438\u0430\u0441\u043a\u043e<\/h4>\n<p>  \u0412\u043e\u0442 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u044b \u043d\u0430 \u044d\u0442\u043e \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u0442\u0443\u0442 \u043d\u0435 \u0442\u0430\u043a. \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f, \u043e\u043d\u0430 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430\u044f. \u041d\u043e \u0441\u0435\u0442\u044c \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043d\u0430\u0439\u0442\u0438 \u0435\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0438 \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438.<\/p>\n<p>  \u0412\u044b \u0443\u0436\u0435 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0447\u0435\u043c\u0443? \u0418\u0437 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u044f\u0432\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u2013 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0441\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0437\u0430\u0432\u0430\u043b\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432\u043b\u0435\u0432\u043e.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u2013 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0441 \u0440\u0443\u0447\u043a\u043e\u0439 \u0438 \u0431\u0443\u043c\u0430\u0436\u043a\u043e\u0439, \u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0451\u043c\u0441\u044f \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u043c. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d \u0441 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0433\u043c\u043e\u0438\u0434\u043e\u0439 \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u0443\u0445\u0438\u0449\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 output = k*input+b. \u041d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u043b\u044f \u0441\u0438\u0433\u043c\u043e\u0438\u0434\u043e\u0439 \u0432 \u0442\u043e\u0447\u043a\u0435 (0,0) \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u0440\u043e\u043c\u0435 0 (\u043f\u0440\u0438\u0432\u0435\u0442, \u043a\u0441\u0442\u0430\u0442\u0438, \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u043e \u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0430 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430, \u0442\u0430\u043c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430).<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0445\u043e\u0434, \u0438 \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0435 \u043e\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0418 \u0442\u0443\u0442 \u0441\u0435\u0442\u044c \u0441\u043b\u043e\u0432\u043d\u043e \u0431\u044b \u043f\u043e \u043c\u0430\u043d\u043e\u0432\u0435\u043d\u0438\u044e \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u043e\u0439 \u043f\u0430\u043b\u043e\u0447\u043a\u0438 \u0443\u043c\u043d\u0435\u0435\u0442 \u0438 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434 \u043d\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0432 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0435 \u0441\u0440\u043e\u043a\u0438 \u0438 \u0441 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u0435\u043b\u0435 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/9aa\/7fb\/4c4\/9aa7fb4c4ca6f382d21b881d7e3ba7a9.png\"\/>\u0410 \u0432\u043e\u0442 \u0442\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. <\/p>\n<p>  \u0410 \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u043e\u0440\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u0430? \u0421\u043c\u043e\u0436\u0435\u043c \u043b\u0438 \u043c\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438? \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<h4>\u041c\u043e\u0437\u0433 \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/h4>\n<p>  \u041f\u043e \u0445\u043e\u0434\u0443 \u0441\u0435\u0442\u0438 \u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u043d\u0430\u0439\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0435\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412\u043e\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0412\u0445\u043e\u0434\u044b \u0441\u0435\u0442\u0438 \u0443 \u043d\u0430\u0441 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f S[0] \u0438 S[1], \u043d\u0435\u0439\u0440\u043e\u043d\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e A[0][1], A[0][2] \u0438 A[0][3], \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 A[1][0] \u0438 A[1][1] \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u044b\u0445\u043e\u0434 R[0]. \u0427\u0435\u0433\u043e \u043d\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438? \u041d\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u043e\u043f\u043e\u0440\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043e\u0434\u0438\u043d \u043d\u0435\u0439\u0440\u043e\u043d, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 A[0][0] \u0438 \u043d\u0430\u0432\u0435\u0441\u0438\u043c \u0435\u0433\u043e \u0441\u0438\u043d\u0430\u043f\u0441\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0435\u0441\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e 1000, \u041a\u0440\u043e\u043c\u0435 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 0, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 1. <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/7f6\/2e2\/d64\/7f62e2d64fdeb2946d305b90fc375cfc.png\" align=\"right\"\/> \u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435? A[0][1], \u0431\u0443\u0434\u0435\u0442 \u0443 \u043d\u0430\u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435 \u0438 \u0438\u043c\u0435\u0442\u044c \u0432\u0435\u0441\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e 1 \u0438 0, \u043d\u0435\u0439\u0440\u043e\u043d A[0][2] \u2013 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435, \u0438 \u0438\u043c\u0435\u0442\u044c \u0441\u0438\u043d\u0430\u043f\u0441\u044b \u0441 \u0432\u0435\u0441\u0430\u043c\u0438 0 \u0438 1. \u041c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443. \u041d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u0432\u0435\u0441\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, 0,0 \u0438 1. \u0410 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0438\u043d\u0430\u043f\u0441\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 k*x-b. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e k =-0.5 b \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0432\u043d\u043e 0.75 \u0435\u0441\u043b\u0438 \u0431\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043d\u0435 \u043f\u043e\u0433\u043d\u0443\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u043e \u0432\u0445\u043e\u0434\u0435 x=1 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u0435 A[0][1] \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0443\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 0,76. \u0417\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e b = 0.65. \u041f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u0435 A[1][0] \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u043d\u0435 A[1][1] \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u043a, \u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u0439. \u041d\u0443 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u044d\u0442\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u043b\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d R[0] \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u0430\u0445 -1 \u0438 1. \u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0442\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041f\u0440\u044f\u043c\u043e \u043a\u0440\u0430\u0441\u043e\u0442\u0430! \u0421\u0438\u043d\u0438\u0435 \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e. \u0421\u0432\u0435\u0440\u0445\u0443 \u0437\u0435\u043b\u0451\u043d\u043e\u0435. \u0421\u043d\u0438\u0437\u0443 \u043a\u0440\u0430\u0441\u043d\u043e\u0435. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0435\u043b\u0451\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0440\u0430\u0441\u043d\u043e\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u0432\u043e\u0434\u043a\u0443 \u0432\u0435\u0441\u043e\u0432 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u0443\u043c\u0435\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0445\u0443\u0436\u0435, \u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u044f. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0438 \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0433\u043e\u0432 \u0438\u043c\u0435\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043d\u043e\u0441\u043d\u043e\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/5d2\/cbf\/13e\/5d2cbf13e06f21c08bc6e866b0aad05a.png\"\/><\/p>\n<p>  \u0412\u043e\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u0435\u0442\u044c:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">XML-\u043a\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u0441\u0435\u0442\u044c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;rumelhart&gt;   &lt;input&gt;     &lt;SensoryNeuron name=&quot;S[0]&quot; potential=&quot;0,0396039603960396&quot;\/&gt;     &lt;SensoryNeuron name=&quot;S[1]&quot; potential=&quot;0,232673267326733&quot;\/&gt;   &lt;\/input&gt;   &lt;excitationOrder&gt;     &lt;Neuron name=&quot;A[0][0]&quot; potential=&quot;1&quot;&gt;       &lt;synaps weight=&quot;999,800400355468&quot; axon=&quot;S[0]&quot; potential=&quot;39,5960554596225&quot; \/&gt;       &lt;synaps weight=&quot;999,545226476388&quot; axon=&quot;S[1]&quot; potential=&quot;232,5674536851&quot; \/&gt;     &lt;\/Neuron&gt;     &lt;Neuron name=&quot;A[0][1]&quot; potential=&quot;0,116342019068401&quot;&gt;       &lt;synaps weight=&quot;1,13712492177543&quot; axon=&quot;S[0]&quot; potential=&quot;0,0450346503673436&quot; \/&gt;       &lt;synaps weight=&quot;0,308744483692756&quot; axon=&quot;S[1]&quot; potential=&quot;0,0718365877898986&quot; \/&gt;     &lt;\/Neuron&gt;     &lt;Neuron name=&quot;A[0][2]&quot; potential=&quot;0,29693700450834&quot;&gt;       &lt;synaps weight=&quot;-0,0240967983057654&quot; axon=&quot;S[0]&quot; potential=&quot;-0,000954328645772886&quot; \/&gt;       &lt;synaps weight=&quot;1,31992553337836&quot; axon=&quot;S[1]&quot; potential=&quot;0,307111386479124&quot; \/&gt;     &lt;\/Neuron&gt;     &lt;Neuron name=&quot;A[1][0]&quot; potential=&quot;0,683083451961352&quot;&gt;       &lt;synaps weight=&quot;1,02404884109051&quot; axon=&quot;A[0][0]&quot; potential=&quot;1,02404884109051&quot; \/&gt;       &lt;synaps weight=&quot;-0,649771926175146&quot; axon=&quot;A[0][1]&quot; potential=&quot;-0,0755957778251805&quot; \/&gt;       &lt;synaps weight=&quot;-0,382508459201211&quot; axon=&quot;A[0][2]&quot; potential=&quot;-0,113580916074308&quot; \/&gt;     &lt;\/Neuron&gt;     &lt;Neuron name=&quot;A[1][1]&quot; potential=&quot;0,0324886810522597&quot;&gt;       &lt;synaps weight=&quot;-0,404744328902586&quot; axon=&quot;A[0][0]&quot; potential=&quot;-0,404744328902586&quot; \/&gt;       &lt;synaps weight=&quot;0,161865952018599&quot; axon=&quot;A[0][1]&quot; potential=&quot;0,0188318116762727&quot; \/&gt;       &lt;synaps weight=&quot;1,40909563283595&quot; axon=&quot;A[0][2]&quot; potential=&quot;0,418412636280091&quot; \/&gt;     &lt;\/Neuron&gt;   &lt;\/excitationOrder&gt;   &lt;output&gt;     &lt;Neuron name=&quot;R[0]&quot; potential=&quot;-0,707598983150799&quot;&gt;       &lt;synaps weight=&quot;-1,36308077548559&quot; axon=&quot;A[1][0]&quot; potential=&quot;-0,931097921420856&quot; \/&gt;       &lt;synaps weight=&quot;1,50019153981243&quot; axon=&quot;A[1][1]&quot; potential=&quot;0,0487392444542643&quot; \/&gt;     &lt;\/Neuron&gt;   &lt;\/output&gt; &lt;\/rumelhart&gt; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u043e\u043c \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d, \u0432\u0435\u0434\u043e\u043c\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0441\u0435\u0445 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 [-1,1] \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u0432\u0430 \u0441\u0438\u043d\u0430\u043f\u0441\u0430 \u0432\u0435\u0441\u044f\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u043b\u0435\u0436\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u043f\u0430\u0441\u0442\u044c, \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u0438\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u0440\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u044c \u0438\u0437 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u043f\u0430\u0441\u0442\u0438. \u041a\u0430\u043a \u044f \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u044d\u0442\u043e <b>\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u044e\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043d\u0435\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c<\/b>. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0436\u0438\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0437\u0430\u043a\u0438\u043d\u0443\u0442\u044c \u0441\u0435\u0442\u044c \u0432 \u0442\u0443 \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u043e\u0442\u0436\u0438\u0433\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 (\u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b \u0448\u0430\u043d\u0441 \u0437\u0430\u043a\u0438\u043d\u0443\u0442\u044c \u0441\u0435\u0442\u044c \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u043a\u043e) \u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043d\u0438\u0436\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0442\u0443\u0434\u0430 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u043b\u043e. \u0410 \u0435\u0449\u0451 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0435\u0441\u0430 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438, \u0430 \u0443 \u0434\u0440\u0443\u0433\u0438\u0445, \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u0435\u0449\u0451, \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e, \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435, \u0430 \u0435\u0449\u0451 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0437\u043a\u043e \u0437\u0430\u043c\u0435\u0440\u0437\u0430\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u0448\u0451\u043b \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0433\u043e\u0434\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u0443\u0437\u0435\u043d\u044c\u043a\u0430\u044f. \u0414\u0430\u0436\u0435 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f 0.0001 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0438\u0437 \u043d\u0435\u0451 \u0441\u0435\u0442\u044c. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0435\u0441\u0442\u044c \u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c, \u0434\u0430 \u0432\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0441\u0435\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442.<\/p>\n<p>  \u0425\u043e\u0442\u044f, \u043a\u0430\u043a \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0435\u0441\u043b\u0438 \u0434\u0430\u0442\u044c \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u0442\u0440\u0438 \u0441\u043b\u043e\u044f \u043f\u043e 30 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432, \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043e\u0431\u0440\u0443\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438. \u0425\u043e\u0442\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0439 \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043c\u044b \u0434\u0430\u0434\u0438\u043c \u0441\u0435\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u043e\u0440\u043d\u044b\u0439 \u0432\u0445\u043e\u0434, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043e\u0448\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041d\u043e \u0438 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0438\u0441\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u2013 \u0438\u0437\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0441\u0432\u043e\u0438\u0445 \u0431\u0435\u0441\u0446\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441\u0435\u0442\u044c \u0441\u043c\u043e\u0433\u043b\u0430 \u0432 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0438\u043b\u0443 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0442\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0441\u043b\u043e\u0432\u043d\u043e \u0432 \u043d\u0435\u0439 \u043d\u0430 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0439 \u0438 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044e\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/8a2\/3f3\/32a\/8a23f332af99a8f294e37c9ac0148ffa.png\"\/><\/p>\n<p>  \u0418 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438 \u0432 \u0440\u0430\u0437\u044b, \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u0443\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0435\u0439. \u042f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0445\u043e\u0434\u0430 \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0435\u0442\u0438 \u0434\u0430\u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043e\u0431\u0443\u0447\u0430\u0435\u043c \u0441\u0435\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435 \u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0438 \u0441\u0435\u0442\u0438 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u0445\u043e\u0434\u043e\u043c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043c\u0435\u043d\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u0438\u0447\u0451\u043c \u0432\u0435\u0441\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u0431\u044b\u043b \u0441\u0434\u0432\u0438\u043d\u0443\u0442 \u043f\u043e \u043e\u0431\u043e\u0438\u043c \u043e\u0441\u044f\u043c \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u0435\u0442\u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 1 \u0434\u043e 2. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0441\u0430\u043c\u0438 \u0437\u0430 \u0441\u0435\u0431\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/621\/d47\/a9a\/621d47a9ab594a7a6611ef1260fc8100.png\"\/><\/p>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u0435\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043f\u0435\u0440\u0432\u0443\u044e \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0432\u0448\u0443\u044e\u0441\u044f \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0443 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437. \u041d\u043e \u043d\u0430\u0434\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0442\u043e, \u0447\u0442\u043e \u0432 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u043e\u043c \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435 \u043d\u0430 30 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u0432 \u0441\u0438\u043d\u0430\u043f\u0441\u043e\u0432 \u0441\u0438\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0449\u0443\u0442\u0438\u043c\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0431\u0430\u0439\u0442, \u0447\u0435\u043c \u0432\u0435\u0441\u044f\u0442 \u0441\u0430\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0435\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/998\/a4c\/f3b\/998a4cf3b8fbc1ef3ec7b3ff92a18bb4.png\"\/><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0438\u043c \u0437\u043d\u0430\u043d\u0438\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0442\u043e\u0447\u043a\u0435 \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u0432\u0445\u043e\u0434\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0436\u0435 \u0432\u044b\u0445\u043e\u0434. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u0435\u043e\u0440\u0435\u043c\u043e\u0439 \u043e \u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u0437 \u043d\u0435\u0451 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u2013 \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0435\u0451 \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041d\u0438 \u0437\u0430 \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0432\u0435\u0440\u044e, \u0447\u0442\u043e \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442 \u0438\u043b\u0438 \u041c\u0438\u043d\u0441\u043a\u0438 \u043c\u043e\u0433\u043b\u0438 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430\u0445;<\/li>\n<li>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u0435\u0442\u0438 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0440\u0430\u0437\u044b \u0438 \u0434\u0430\u0436\u0435 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c;<\/li>\n<li>\u041d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043b\u0435\u0433\u043a\u043e \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0433\u043a\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0435\u0451 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435, \u0445\u043e\u0442\u044c \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043d\u043e \u0438\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b, \u0438\u043b\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0435\u0442\u0438;<\/li>\n<li>\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u0432 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u043e\u043c \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043c\u044b\u0441\u043b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0435. \u041a \u043d\u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u044b\u043c \u0441\u043a\u0435\u043f\u0442\u0438\u0446\u0438\u0437\u043c\u043e\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441 \u0438\u0440\u043e\u043d\u0438\u0435\u0439;<\/li>\n<li>\u0422\u043e, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0440\u0435\u0448\u0435\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0435\u0449\u0451 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0435\u0442\u0438. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439;<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/li>\n<\/ul>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/219647\/\"> http:\/\/habrahabr.ru\/post\/219647\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/0c2\/d50\/06c\/0c2d5006c907ab64346ebcf410dafdb3.png\" align=\"right\"\/>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0418\u0437 \u043d\u0438\u0445 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430: <a href=\"http:\/\/habrahabr.ru\/post\/140301\/\">\u041f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430 \u2014 \u0447\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u043e \u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439?<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/post\/140387\/\">\u041a\u0430\u043a\u043e\u0432\u0430 \u0440\u043e\u043b\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u00ab\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e\u00bb \u0441\u043b\u043e\u044f \u0432 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d\u0435 \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430<\/a>. \u0412 \u043d\u0438\u0445, \u043a\u0430\u043a \u0438 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0435\u0442\u0438 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0434\u0430\u0447, \u0438 \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0442 \u0434\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f. \u041d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043a\u0430\u043a-\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0423\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0447\u0435\u043c\u0443 \u0442\u0430\u043c \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d, \u0438 \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0435\u043c\u0443 \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438\u0441\u043f\u044b\u0442\u0430\u0442\u044c \u0433\u043e\u0440\u044c\u043a\u0443\u044e \u0438\u0440\u043e\u043d\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u0430 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0418\u0418.<br \/>  \u042f\u0437\u044b\u043a\u043e\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0421#, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044f \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0448\u0438\u043b \u0435\u0433\u043e \u0432\u044b\u0443\u0447\u0438\u0442\u044c. \u042f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0434\u0432\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430: \u043e\u0434\u043d\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u043e\u0437\u0435\u043d\u0431\u043b\u0430\u0442\u0442\u0430, \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0439\u043d\u044b\u0439 \u043f\u0435\u0440\u0446\u0435\u043f\u0442\u0440\u043e\u043d \u0420\u0443\u043c\u0435\u043b\u044c\u0445\u0430\u0440\u0442\u0430, \u043e\u0431\u0443\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043a\u0438. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443, \u043a\u0430\u043a \u0438 \u043c\u043d\u0435, \u0441\u0442\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u0442\u0430\u043c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0431\u0443\u0447\u0438\u043b\u0438\u0441\u044c, \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043e\u0431\u043e\u0431\u0449\u0430\u0442\u044c \u2013 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442.<\/p>\n<p>  <b>\u041e\u0421\u0422\u041e\u0420\u041e\u0416\u041d\u041e! \u041c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a. \u041a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430.<\/b>  <\/p>\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-219647","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/219647","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=219647"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/219647\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=219647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=219647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=219647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}