{"id":288223,"date":"2018-08-19T23:45:04","date_gmt":"2018-08-19T19:45:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=288223"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=288223","title":{"rendered":"\u041e\u0431\u0437\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c \u0434\u043b\u044f \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u2014 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432"},"content":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/420605\/\" class=\"post__text post__text-html js-mediator-article\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0437\u043e\u0440 \u0437\u0430\u0434\u0430\u0447\u0435\u043a \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 (\u042f\u043d\u0434\u0435\u043a\u0441, \u0413\u0443\u0433\u043b \u0438 \u0442\u043f) \u0442\u0430\u043a \u043b\u044e\u0431\u044f\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430\u043c \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 (\u0435\u0441\u043b\u0438 \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c, \u0442\u043e \u0448\u0430\u043d\u0441\u044b \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e \u043c\u0435\u0447\u0442\u044b, \u0443\u0432\u044b, \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043d\u0443\u043b\u044e). \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u043e\u043f\u044b\u0442\u0430 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u044f\u0436\u0435\u043b\u043e\u0432\u0435\u0441\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0442\u0438\u043f\u0443 \u0428\u0410\u0414\u0430 \u0438\u043b\u0438 \u041b\u041a\u0428, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u043d\u043e \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0438\u043b\u0438 \u0436\u0435 \u0442\u0435\u043c, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043c\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f, \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u043e\u0445\u043e\u0436\u0438. <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u043c\u044b \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439. <\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h3 id=\"1-nachnem-s-bayan-bayanycha---nuzhno-sgenerirovat-vse-pravilnye-skobochnye-posledovatelnosti-so-skobkami-odnogo-vidachto-takoe-pravilnaya-skobochnaya-posledovatelnosthttpsruwikipediaorgwikid09fd180d0b0d0b2d0b8d0bbd18cd0bdd0b0d18f_d181d0bad0bed0b1d0bed187d0bdd0b0d18f_d0bfd0bed181d0bbd0b5d0b4d0bed0b2d0b0d182d0b5d0bbd18cd0bdd0bed181d182d18c-s-kolichestvom-skobok-ravnym-k\">1. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u0430\u044f\u043d-\u0431\u0430\u044f\u043d\u044b\u0447\u0430 \u2014 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043e \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430(<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%BA%D0%BE%D0%B1%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C\">\u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/a>) \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u043a\u043e\u0431\u043e\u043a, \u0440\u0430\u0432\u043d\u044b\u043c k.<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e.<br \/>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0445 \u0441 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441\u043a\u043e\u0431\u043a\u0430 (\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0438\u043b\u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f), \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u041a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u044f? \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438 (\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f cnt) \u2014 \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439, \u0438\u043d\u0430\u0447\u0435 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439. \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u043a\u043e\u0434\u0435.<\/p>\n<p>  <\/p>\n<pre><code>k = 6 # \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043a\u043e\u0431\u043e\u043a init = list(np.zeros(k)) # \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u043a\u0443\u0434\u0430 \u043a\u043b\u0430\u0434\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438 cnt = 0 # \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 ind = 0 # \u0438\u043d\u0434\u0435\u043a\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043a\u043b\u0430\u0434\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0443 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a   def f(cnt, ind, k, init):     # \u043a\u043b\u0430\u0434\u0435\u043c \u043e\u0442\u043a\u0440. \u0441\u043a\u043e\u0431\u043a\u0443, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u0430     if (cnt &lt;= k-ind-2):         init[ind] = '('         f(cnt+1, ind+1, k, init)     # \u0437\u0430\u043a\u0440. \u0441\u043a\u043e\u0431\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 cnt &gt; 0     if cnt &gt; 0:         init[ind] = ')'         f(cnt-1, ind+1, k, init)     # \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0446\u0438\u043a\u043b\u0430 \u0438 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c     if ind == k:         if cnt == 0:             print (init)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u2014 <math>$inline$O((C_k^{k\/2} &#8212; C_k^{k\/2 -1})*k)$inline$<\/math>, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <math>$inline$O(k)$inline$<\/math>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <math>$inline$f(cnt, ind, k, init)$inline$<\/math> \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ai\/hq\/zf\/aihqzftixdthe2loqgnoleilula.png\"\/><\/p>\n<p>  <\/p>\n<h3 id=\"2--teper-rassmotrim-iterativnyy-sposob-resheniya-etoy-zadachi\">2. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<\/h3>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0434\u0435\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u2014 \u043d\u0443\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043d\u0430 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u0445. <\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u043a\u043e\u0431\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0442\u043e, \u0447\u0442\u043e <math>$inline$'(&#8216;&lt;&#8216;)&#8217;$inline$<\/math>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f n=6 \u0441\u0430\u043c\u043e\u0439 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043b\u0430\u0434\u0448\u0435\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0443\u0434\u0435\u0442 <math>$inline$((()))$inline$<\/math>, \u0430 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0430\u0440\u0448\u0435\u0439 <math>$inline$()()()$inline$<\/math>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0430\u043c\u0443\u044e \u043f\u0440\u0430\u0432\u0443\u044e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e\u0441\u044f \u0441\u043a\u043e\u0431\u043a\u0443, \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f, \u0442\u0430\u043a\u0443\u044e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439. \u041f\u043e\u0441\u043b\u0435 \u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0443\u0444\u0444\u0438\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d, \u0441\u0430\u043c\u044b\u043c \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043c\u043b\u0430\u0434\u0448\u0438\u043c \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u043a\u043e\u0431\u043e\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043c\u0443\u0442\u043e\u0440\u043d\u0435\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432. \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u044d\u0442\u043e \u0432 \u043a\u043e\u0434\u0435. <\/p>\n<p>  <\/p>\n<pre><code># \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043a\u043e\u0431\u043e\u043a, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0447\u0435\u0442\u043d\u043e\u0435 n = 6 arr = ['(' for  _ in range(n\/\/2)] + [')' for _ in range(n\/\/2)]  def f(n, arr):     # \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u043d\u0443\u043b\u0435\u0432\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c     print (arr)     while True:         ind = n-1         cnt = 0         # \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043e\u0442\u043a\u0440. \u0441\u043a\u043e\u0431\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c         while ind&gt;=0:             if arr[ind] == ')':                 cnt -= 1             if arr[ind] == '(':                 cnt += 1             if cnt &lt; 0 and arr[ind] =='(':                 break             ind -= 1         # \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0448\u043b\u0438, \u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443         if ind &lt; 0:             break         # \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 \u0437\u0430\u043a\u0440. \u0441\u043a\u043e\u0431\u043a\u0443         arr[ind] = ')'         # \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 \u0441\u0430\u043c\u0443\u044e \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e         for i in range(ind+1,n):             if i &lt;= (n-ind+cnt)\/2 +ind:                 arr[i] = '('             else:                 arr[i] = ')'         print (arr)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0442\u0430\u043a\u0430\u044f \u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430. <\/p>\n<p>  <\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u0447\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0435, \u043a\u0430\u043a\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u2014 \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e n\/2 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A7%D0%B8%D1%81%D0%BB%D0%B0_%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%B0%D0%BD%D0%B0\">\u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u041a\u0430\u0442\u0430\u043b\u0430\u043d\u0430.<\/a><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i2\/9v\/k5\/i29vk5ha8ruh1yzmscgoln0t5-a.png\"\/><br \/>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!<\/p>\n<p>  <\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0441\u043e \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 \u043f\u043e\u043a\u0430 \u0432\u0441\u0435, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"3-dan-uporyadochennyy-massiv-po-vozrastaniyu-s-chislami-ot----mathinline0inlinemath----do----mathinlinen-1inlinemath----trebuetsya-sgenerirovat-vse-ego-podmnozhestva\">3. \u0414\u0430\u043d \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043e\u0442 <math>$inline$0$inline$<\/math> \u0434\u043e <math>$inline$n-1$inline$<\/math>, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0433\u043e \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430.<\/h3>\n<p>  <\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0432\u043d\u043e \u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 <math>$inline$2^n$inline$<\/math>. \u0415\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0433\u0434\u0435 <math>$inline$0$inline$<\/math> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u0430 <math>$inline$1 $inline$<\/math> \u2014 \u0447\u0442\u043e \u0432\u0445\u043e\u0434\u0438\u0442, \u0442\u043e\u0433\u0434\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0430\u043a\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u043e\u0442 0 \u0434\u043e <math>$inline$2^n &#8212; 1$inline$<\/math>, \u0442\u043e \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043e\u043c\u044b\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u043a \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441\u043e \u0432\u0441\u0435\u0445 \u043d\u0443\u043b\u0435\u0439 \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b.<\/p>\n<p>  <\/p>\n<pre><code>n = 3 B = np.zeros(n+1) # \u043c\u0430\u0441\u0441\u0438\u0432 B \u0431\u0435\u0440\u0435\u043c \u043d\u0430 1 \u0434\u043b\u0438\u043d\u043d\u0435\u0435 (\u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0446\u0438\u043a\u043b\u0430) a = np.array(list(range(n))) # \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432  def f(B, n, a):     # \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0446\u0438\u043a\u043b     while B[0] == 0:         ind = n          # \u0438\u0449\u0435\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u043d\u043e\u043b\u044c         while B[ind] == 1:             ind -= 1         # \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 1         B[ind] = 1         # \u043d\u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0438\u0448\u0435\u043c \u043d\u0443\u043b\u0438         B[(ind+1):] = 0         print (a[B[1:].astype('bool')]) <\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u2014 <math>$inline$O(n*2^n)$inline$<\/math>, \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 <math>$inline$O(n)$inline$<\/math>.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zj\/9d\/ma\/zj9dma30fqbmrkjnkwttcgtsmlw.png\" alt=\"\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u044b\u0432\u043e\u0434.\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n<p>  <\/p>\n<h3 id=\"4--dan-uporyadochennyy-massiv-po-vozrastaniyu-s-chislami-ot----mathinline0inlinemath----do----mathinlinen-1inlinemath----trebuetsya-sgenerirovat-vse-ego----mathinlinekinlinemath----elementnye-podmnozhestva---reshit-iterativnym-sposobom\">4. \u0414\u0430\u043d \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043e\u0442 <math>$inline$0$inline$<\/math> \u0434\u043e <math>$inline$n-1$inline$<\/math>, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0433\u043e <math>$inline$k$inline$<\/math>-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u2014 \u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c.<\/h3>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u2014 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e. \u0420\u0435\u0448\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u043c. \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435 \u044d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0438 \u0440\u0435\u0448\u0430\u0442\u044c \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438 \u2014 \u0432\u0437\u044f\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 <math>$inline$k$inline$<\/math> \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438 \u0438 <math>$inline$n-k$inline$<\/math> \u043d\u0443\u043b\u044f\u043c\u0438 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u0438\u043d\u044b <math>$inline$n.$inline$<\/math><\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 <math>$inline$k$inline$<\/math>-\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0447\u0438\u0441\u0435\u043b \u043e\u0442 <math>$inline$0$inline$<\/math> \u0434\u043e <math>$inline$n-1$inline$<\/math>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u2014 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u0445.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438 \u0442\u0430\u043a\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u043a\u043e\u0434\u0430\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432: <math>$inline$1 &lt; 0$inline$<\/math> (\u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u043e \u0442\u0430\u043a \u043d\u0430\u0434\u043e, \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0439\u043c\u0435\u043c \u043f\u043e\u0447\u0435\u043c\u0443). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f <math>$inline$n=4, k=2$inline$<\/math> \u0441\u0430\u043c\u043e\u0439 \u043c\u043b\u0430\u0434\u0448\u0435\u0439 \u0438 \u0441\u0442\u0430\u0440\u0448\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <math>$inline$[1,1,0,0],[0,0,1,1]$inline$<\/math>.<\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u0439 \u2014 \u0442\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u043c\u0435\u043d\u044f\u0435\u043c <math>$inline$1$inline$<\/math> \u043d\u0430 <math>$inline$0$inline$<\/math>, \u0442\u043e \u0441\u043b\u0435\u0432\u0430 \u043f\u0438\u0448\u0435\u043c \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043d\u0430 <math>$inline$k$inline$<\/math>. \u041a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code>n = 5 k = 3 a = np.array(list(range(n)))  # \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0435\u0440\u0432\u043e\u0433\u043e k - \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 init = [1 for _ in range(k)] + [0 for _ in range(n-k)]   def f(a, n, k, init):     # \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u043d\u0443\u043b\u0435\u0432\u043e\u0435 k-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e     print (a[a[init].astype('bool')])     while True:         unit_cnt = 0         cur_ind = 0         # \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 1         while (cur_ind &lt; n) and (init[cur_ind]==1 or unit_cnt==0):             if init[cur_ind] == 1:                 unit_cnt += 1             cur_ind += 1         # \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0438 \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 - \u0442\u043e \u0432\u0441\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438         if cur_ind == n:             break         # \u043c\u0435\u043d\u044f\u0435\u043c         init[cur_ind] = 1         # \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0432\u0430 \u043b\u0435\u043a\u0441. \u043d\u0430\u0438\u043c. \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c         for i in range(cur_ind):             if i &lt; unit_cnt-1:                 init[i] = 1             else:                 init[i] = 0         print (a[a[init].astype('bool')])<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bi\/ep\/vh\/biepvhwthy6ao_phsbsycdmf9hm.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u2014 <math>$inline$O(C_n^k * n)$inline$<\/math>, \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 <math>$inline$O(n)$inline$<\/math>.<\/p>\n<p>  <\/p>\n<h3 id=\"5--dan-uporyadochennyy-massiv-po-vozrastaniyu-s-chislami-ot----mathinline0inlinemath----do----mathinlinen-1inlinemath----trebuetsya-sgenerirovat-vse-ego----mathinlinekinlinemath----elementnye-podmnozhestva--reshit-rekursivno\">5. \u0414\u0430\u043d \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043e\u0442 <math>$inline$0$inline$<\/math> \u0434\u043e <math>$inline$n-1$inline$<\/math>, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0433\u043e <math>$inline$k$inline$<\/math>-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430- \u0440\u0435\u0448\u0438\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e.<\/h3>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e. \u0418\u0434\u0435\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2014 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043e\u0431\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u0431\u0435\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u043e\u0434.<\/p>\n<p>  <\/p>\n<pre><code>n = 5 a = np.array(list(range(n))) ind = 0 # \u0447\u0438\u0441\u043b\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u0435\u0436\u0438\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 num = 0 # \u0438\u043d\u0434\u0435\u043a\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 k = 3 sub = list(-np.ones(k)) # \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e  def f(n, a, num, ind, k, sub):     # \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 k \u0435\u0434\u0438\u043d\u0438\u0446 \u0435\u0441\u0442\u044c, \u0442\u043e \u043f\u0435\u0447\u0430\u0442\u0435\u043c \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u043c     if ind == k:         print (sub)     else:         for i in range(n - num):             # \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u043e k \u0435\u0434\u0438\u043d\u0438\u0446             if (n - num - i &gt;= k - ind):                 # \u043a\u043b\u0430\u0434\u0435\u043c \u0432 \u044d\u0442\u043e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442                 sub[ind] = a[num + i]                 # \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b                 f(n, a, num+1+i, ind+1, k, sub)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/iu\/cz\/bo\/iuczbo2ypiy34timflh1ifdpphu.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0436\u0435, \u043a\u0430\u043a \u0438 \u0443 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430.<\/p>\n<p>  <\/p>\n<h3 id=\"6--dan-uporyadochennyy-massiv-po-vozrastaniyu-s-chislami-ot-0-do-n-1-trebuetsya-sgenerirovat-vse-ego-perestanovki\">6. \u0414\u0430\u043d \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043e\u0442 0 \u0434\u043e n-1, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/h3>\n<p>  <\/p>\n<p>\u0412\u0440\u043e\u0434\u0435 \u0442\u043e\u0436\u0435 \u0431\u0430\u044f\u043d, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0435\u0448\u0438\u043c. \u0411\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0435\u0439. \u0418\u0434\u0435\u044f \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u0433\u0434\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u043d\u0443\u043b\u0435\u0432\u043e\u0439, \u0435\u0441\u043b\u0438 \u043d\u0430 <math>$inline$i$inline$<\/math>-\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u043e\u0438\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <math>$inline$i$inline$<\/math> \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435. \u0421\u043a\u0430\u0437\u0430\u043d\u043e \u2014 \u0441\u0434\u0435\u043b\u0430\u043d\u043e:<\/p>\n<p>  <\/p>\n<pre><code>a = np.array(range(3)) n = a.shape[0] ind_mark = np.zeros(n) # \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 perm = -np.ones(n) # \u0443\u0436\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438  def f(ind_mark, perm, ind, n):     if ind == n:         print (perm)     else:         for i in range(n):             if not ind_mark[i]:                 # \u043a\u043b\u0430\u0434\u0435\u043c \u0432 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442                 ind_mark[i] = 1                 # \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441                 perm[ind] = i                 f(ind_mark, perm, ind+1, n)                 # \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 - \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043d\u0443\u043b\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441                 ind_mark[i] = 0<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zg\/yi\/jz\/zgyijzorpqebroejj2xuvgqwyvu.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u2014 <math>$inline$O(n^2 *n!)$inline$<\/math>, \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 <math>$inline$O(n).$inline$<\/math><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0435 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%BE%D0%B4_%D0%93%D1%80%D0%B5%D1%8F\">\u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f<\/a>. \u0415\u0441\u043b\u0438 \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445, \u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0441\u0435\u0434\u0435\u0439 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0430\u0437\u0440\u044f\u0434\u0435. <\/p>\n<p>  <\/p>\n<h3 id=\"7--sgenerirovat-vse-dvumernye-kody-greya-dliny-n\">7. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f \u0434\u043b\u0438\u043d\u044b n.<\/h3>\n<p>  <\/p>\n<p>\u0418\u0434\u0435\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u043b\u0430\u0441\u0441\u043d\u0430\u044f, \u043d\u043e \u0438\u043c\u0445\u043e \u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u043d\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f. \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0430\u0432\u043d\u043e <math>$inline$2^n$inline$<\/math>. <\/p>\n<p>  <\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e. \u041f\u0443\u0441\u0442\u044c \u043c\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u0443\u0441\u0442\u044c \u043e\u043d\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u043f\u0438\u0441\u043a\u0435. \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435, \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0442.\u0434. \u0421\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u044d\u0442\u0438 \u0441\u043f\u0438\u0441\u043a\u0438 \u0432 \u043e\u0434\u0438\u043d. <\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u043d\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0438\u0441\u044c \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0430\u0437\u0440\u044f\u0434\u0435? \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043e\u0434\u043d\u0443 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u044c, \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/1s\/y-\/wv\/1sy-wvovm2qfrtlobsrezoxhu0c.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code>n = 3 init = [list(np.zeros(n))]  def f(n, init):     for i in range(n):         for j in range(2**i):             init.append(list(init[2**i - j - 1]))             init[-1][i] = 1.0     return init<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 <math>$inline$O(n*2^n)$inline$<\/math>, \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0442\u0430\u043a\u0430\u044f \u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n<p>  <\/p>\n<h3 id=\"8--sgenerirovat-vse-k-mernye-kody-greya-dliny-n\">8. \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 k-\u043c\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f \u0434\u043b\u0438\u043d\u044b n.<\/h3>\n<p>  <\/p>\n<p>\u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u043b\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0447\u0430\u0441\u0442\u043d\u044b\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u043c \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0435\u043c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u044b\u043b\u0430 \u0440\u0435\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0417\u0430\u0432\u0435\u0434\u0435\u043c \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <math>$inline$k*n$inline$<\/math>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 \u0441\u0442\u043e\u044f\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u043e\u044f\u0442 \u043d\u0443\u043b\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0438 <math>$inline$-1$inline$<\/math>. \u0417\u0434\u0435\u0441\u044c <math>$inline$1$inline$<\/math> \u0438 <math>$inline$-1$inline$<\/math> \u043f\u043e \u0441\u0443\u0442\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c: <math>$inline$1$inline$<\/math> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0432\u0435\u0440\u0445, <math>$inline$-1$inline$<\/math> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0438\u0437. \u0412\u0430\u0436\u043d\u043e \u2014 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0435 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 <math>$inline$1$inline$<\/math> \u0438\u043b\u0438 <math>$inline$-1$inline$<\/math>, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0443\u043b\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ac\/ky\/fj\/ackyfjkw3upc9kjpqrqb8i9r30y.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0439\u043c\u0435\u043c, \u043a\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438\u0441\u044c \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043a\u043e\u043d\u0446\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u0432\u0435\u0440\u0445. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o6\/en\/ro\/o6enrotwec773ck7hcoi6ytrsm0.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043c\u044b \u0443\u043f\u0440\u0435\u043c\u0441\u044f \u0432 \u043f\u043e\u0442\u043e\u043b\u043e\u043a. \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0443\u043f\u0435\u0440\u043b\u0430\u0441\u044c \u0432 \u043f\u043e\u0442\u043e\u043b\u043e\u043a, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c. \u0418\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e, \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c, \u0442\u043e \u0443 \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043e\u043f\u044f\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/j-\/ou\/uo\/j-ouuosww20oplsu9-ovlmrw2nq.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u043d\u0438\u0437. \u0414\u0432\u0438\u0433\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u043e\u043d \u043d\u0435 \u0443\u043f\u0440\u0435\u0442\u0441\u044f \u0432\u043d\u0438\u0437. \u0418 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440 \u043f\u043e\u043a\u0430 \u0432\u0441\u0435 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u043f\u0435\u0440\u0442\u044b \u0432 \u043f\u043e\u043b \u0438\u043b\u0438 \u043f\u043e\u0442\u043e\u043b\u043e\u043a \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c. <\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0434\u043b\u0438\u043d\u044b <math>$inline$n$inline$<\/math> \u2014 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438). <\/p>\n<p>  <\/p>\n<pre><code>n,k = 3,3 arr = np.zeros(n) direction = np.ones(n) # \u043e\u0434\u0438\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0432\u0435\u0440\u0445, \u043d\u043e\u043b\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0438\u0437  def k_dim_gray(n,k):     # \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u043d\u0443\u043b\u0435\u0432\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c     print (arr)     while True:         ind = n-1         while ind &gt;= 0:             # \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0430 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c             if (arr[ind] == 0 and direction[ind] == 0) or (arr[ind] == k-1 and direction[ind] == 1):                 direction[ind] = (direction[ind]+1)%2             else:                 break             ind -= 1         # \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0443         if ind &lt; 0:             break         # \u043b\u0438\u0431\u043e \u0434\u0432\u0438\u0433\u0430\u0435\u043c \u043d\u0430 1 \u0432\u043f\u0435\u0440\u0435\u0434, \u043b\u0438\u0431\u043e \u043d\u0430 1 \u043d\u0430\u0437\u0430\u0434         arr[ind] += direction[ind]*2 - 1         print (arr) <\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xm\/yf\/fh\/xmyffhx7hhjsulwsmobb75b9p44.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u2014 <math>$inline$O(n*k^n)$inline$<\/math>, \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 <math>$inline$O(n).$inline$<\/math><br \/>  \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0443\u043a\u0446\u0438\u0435\u0439 \u043f\u043e $n$, \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e. <\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0441\u0442\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443.<\/p>\n<\/div>\n<p>        <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/post\/420605\/\"> https:\/\/habr.com\/post\/420605\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div data-io-article-url=\"https:\/\/habr.com\/post\/420605\/\" class=\"post__text post__text-html js-mediator-article\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0437\u043e\u0440 \u0437\u0430\u0434\u0430\u0447\u0435\u043a \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 (\u042f\u043d\u0434\u0435\u043a\u0441, \u0413\u0443\u0433\u043b \u0438 \u0442\u043f) \u0442\u0430\u043a \u043b\u044e\u0431\u044f\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430\u043c \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 (\u0435\u0441\u043b\u0438 \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c, \u0442\u043e \u0448\u0430\u043d\u0441\u044b \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e \u043c\u0435\u0447\u0442\u044b, \u0443\u0432\u044b, \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043d\u0443\u043b\u044e). \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u043e\u043f\u044b\u0442\u0430 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u044f\u0436\u0435\u043b\u043e\u0432\u0435\u0441\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0442\u0438\u043f\u0443 \u0428\u0410\u0414\u0430 \u0438\u043b\u0438 \u041b\u041a\u0428, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u043d\u043e \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0438\u043b\u0438 \u0436\u0435 \u0442\u0435\u043c, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u043c\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u044f\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f, \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u043e\u0445\u043e\u0436\u0438. <\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u043c\u044b \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439. <\/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-288223","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/288223","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=288223"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/288223\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=288223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=288223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=288223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}