{"id":366660,"date":"2024-05-21T03:04:45","date_gmt":"2024-05-21T03:04:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=366660"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=366660","title":{"rendered":"<span>\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/789816\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\" data-src=\"https:\/\/habrastorage.org\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\"\/><\/div>\n<p><\/a><br \/>  \u041b\u044e\u0434\u0438 \u0443\u0436\u0430\u0441\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u042f \u0445\u043e\u0442\u0435\u043b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u00ab\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435\u00bb \u0447\u0438\u0441\u043b\u0430. \u041c\u043d\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0437\u0430 \u043f\u043e\u043b\u043c\u0438\u043d\u0443\u0442\u044b. \u041f\u043e\u0438\u0441\u043a\u0430\u0432 \u043e\u043d\u043b\u0430\u0439\u043d, \u044f \u043d\u0430\u0448\u0451\u043b <a href=\"https:\/\/groups.google.com\/g\/sci.math\/c\/6BIYd0cafQo\/m\/Ucipn_5T_TMJ?hl=en\">\u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u043e\u0441\u0442 \u0432 Usenet<\/a>, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0414\u0436\u043e\u0440\u0434\u0436\u0435\u043c \u041c\u0430\u0440\u0441\u0430\u043b\u044c\u044f:<\/p>\n<blockquote><p>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, 23. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u00ab\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00bb (seed).<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043f\u043b\u044e\u0441 \u0448\u0435\u0441\u0442\u044c, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: 23 \u2013> (2 + 6 * 3) = 20 \u2013> (2 + 6 * 0) = 02 \u2013> 12 \u2013> 13 \u2013> 19 \u2013> 55 \u2013> 35 \u2013> \u2026<\/p>\n<p>  \u0415\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f (6) \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432, \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0443\u043b\u044f, 10 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 59).<\/p>\n<p>  \u00ab\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0446\u0438\u0444\u0440\u0430\u043c\u0438\u00bb \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0442\u043e \u0435\u0441\u0442\u044c 3,0,2,2,3,9,5,\u2026 \u0442\u043e \u0435\u0441\u0442\u044c \u0447\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 mod 10.<\/p><\/blockquote>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u041c\u0430\u0440\u0441\u0430\u043b\u044c\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0441\u0432\u043e\u0438\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Diehard_tests\">\u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0442\u0435\u0441\u0442\u043e\u0432 diehard-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/a> \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (RNG), \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u043d \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 (\u0437\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u043f\u043e\u0434 RNG \u044f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (PRNG)). \u041c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043e\u043d \u0432\u044b\u0431\u0440\u0430\u043b 6.<\/p>\n<p>  \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/www.raku.org\">Raku<\/a>, <a href=\"https:\/\/buttondown.email\/hillelwayne\/archive\/raku-a-language-for-gremlins\/\">\u044f\u0437\u044b\u043a\u0435 \u0434\u043b\u044f \u0433\u0440\u0435\u043c\u043b\u0438\u043d\u043e\u0432<\/a>. \u041d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u0436\u0435 \u0433\u0440\u0435\u043c\u043b\u0438\u043d, \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 \u044f \u0431\u0443\u0434\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/font><\/h2>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0435\u0441\u043b\u0438 \u043c\u044b \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0451, \u0442\u043e \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u043e\u0442 \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0451\u043c \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u00ab\u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00bb), \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0435\u0439 \u0432\u0441\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c:<\/p>\n<pre><code class=\"perl\">my sub next-rng(Int $start, Int $unitmult = 6, --> List) {     my @out;     my $next = $start;     repeat while $next !(elem) @out {         @out.append($next);         $next = sum($next.polymod(10) Z* $unitmult,1);     };     return @out; }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">Raku \u2014 \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u043d\u043e \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<ul>\n<li><code>@<\/code> \u0438 <code>$<\/code> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/language\/variables#Sigils\">\u0441\u0438\u0433\u0438\u043b\u044b<\/a> \u0434\u043b\u044f \u00ab\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445\u00bb (\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u0438) \u0438 \u00ab\u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0445\u00bb \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043d\u0435 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0432 \u0435\u0439 \u043d\u0438\u0447\u0435\u0433\u043e, \u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c.<\/li>\n<li><code>(elem)<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430 \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u043e, \u0430 <code>!<\/code> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u043d\u0438\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0438\u043d\u0444\u0438\u043a\u0441\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430. <code>(elem)<\/code> \u2014 \u044d\u0442\u043e ASCII-\u0432\u0435\u0440\u0441\u0438\u044f, Raku \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u2208.<\/li>\n<li><a href=\"https:\/\/docs.raku.org\/type\/Int#method_polymod\">polymod<\/a> \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0438 \u0447\u0430\u0441\u0442\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>346.polymod(10) = (6 34)<\/code>. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 <code>num.polymod(60, 60, 24)<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0447\u0430\u0441\u044b-\u043c\u0438\u043d\u0443\u0442\u044b-\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/li>\n<li><a href=\"https:\/\/docs.raku.org\/language\/operators#Zip_metaoperator\">Z<\/a> \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u0430\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u00abzip\u00bb, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0439 \u0438\u043d\u0444\u0438\u043a\u0441\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438. <code>(4, 6) Z* (6, 1)<\/code> = <code>(4*6, 6*1)<\/code>.<\/li>\n<\/ul>\n<\/div><\/div>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0435\u0451 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 <code>put<\/code> \u0438\u043b\u0438 <code>say<\/code>, \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 <a href=\"https:\/\/docs.raku.org\/language\/faq#How_and_why_do_say,_put_and_print_differ%3F\">\u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f<\/a>. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"perl\">put next-rng(1);<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"plaintext\">01 06 36 39 57 47 46 40 04 24 26 38 51 11 07 42 16  37 45 34 27 44 28 50 05 30 03 18 49 58 53 23 20 02  12 13 19 55 35 33 21 08 48 52 17 43 22 14 25 32 15  31 09 54 29 56 41 10 01<\/code><\/pre>\n<p>  \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u2014 \u044d\u0442\u043e <em>\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f<\/em> \u0446\u0438\u0444\u0440\u0430. \u0422\u043e \u0435\u0441\u0442\u044c RNG \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a: 1 -> 6 -> 6 -> 9 -> 7 -> 7 -> \u2026<\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u0418\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430<\/font><\/h2>\n<p>  \u0415\u0441\u043b\u0438 RNG \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439, \u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0446\u0438\u0444\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u044b \u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u0438\u043b\u0438 \u00abbag\u00bb.<\/p>\n<pre><code class=\"perl\">say bag(next-rng(1) &lt;&lt;%>> 10);<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><code>&lt;&lt;op>><\/code> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/language\/operators#Hyper_operators\">\u0433\u0438\u043f\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/a>, \u00ab\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439\u00bb \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u043e \u043e\u0431\u043e\u0438\u043c \u0441\u043f\u0438\u0441\u043a\u0430\u043c, <em>\u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0432\u0445\u043e\u0434\u044f \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432<\/em>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c <code>((1, 2), 3) &lt;&lt;+>> 10<\/code> \u0431\u0443\u0434\u0435\u0442 <code>((11, 12), 13)<\/code>! \u0413\u0438\u043f\u0435\u0440\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u0438\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438, \u0438 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438.<\/li>\n<li>\u041e\u0431\u044a\u0435\u043a\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Bag \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0447\u0451\u043c-\u0442\u043e. <code>bag((4, 5, 4)){4} = 2<\/code>. \u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u043e \u043d\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0441\u043f\u0438\u0441\u043a\u0438 \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435.<\/li>\n<\/ul>\n<\/div><\/div>\n<p>  <\/p>\n<pre><code class=\"perl\">Bag(0(5) 1(6) 2(6) 3(6) 4(6) 5(6) 6(6) 7(6) 8(6) 9(5))<\/code><\/pre>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0435, \u0445\u043e\u0442\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c 0 \u0438\u043b\u0438 9 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435.<\/p>\n<p>  \u0421\u0432\u043e\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u0434\u0435\u044e \u044f \u0432\u0437\u044f\u043b \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432 diehard. \u0426\u0438\u0442\u0430\u0442\u0430 \u0438\u0437 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Diehard_tests#Test_overview\">\u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438<\/a>:<\/p>\n<blockquote><p><i>\u041f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 (Overlapping Permutations)<\/i><\/p>\n<p>  \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. 120 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e.<\/p><\/blockquote>\n<p>  \u0412 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0432\u0441\u0435\u0433\u043e 54 \u043f\u044f\u0442\u0438\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044e \u0442\u0435\u0441\u0442 \u043a \u0434\u0432\u0443\u0445\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u00ab\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u00bb. \u0421\u0434\u0435\u043b\u0430\u044e \u044f \u044d\u0442\u043e, \u0432\u044b\u0432\u043e\u0434\u044f \u0441\u0435\u0442\u043a\u0443 10 \u0445 10, \u0433\u0434\u0435 (i, j)-\u0442\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 (\u043e\u0442 0) \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043e\u0442 <code>i<\/code> \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0446\u0438\u0444\u0440\u044b \u043a <code>j<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 <code>28 -> 50<\/code> \u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0432\u0438\u0434\u0430 <code>X8 -> Y0<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 (8, 0) \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>1<\/code>.<\/p>\n<pre><code class=\"perl\">sub successions-grid(@orbit) {   my @pairs = (|@orbit , @orbit[0]).map(* % 10).rotor(2 => -1);   for ^10 -> $x {put ($x X ^10).map({@pairs.grep($_).elems})} }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><code>| @f, $x<\/code> \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u0443\u0435\u0442 <code>$x<\/code> \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 <code>@f<\/code>. \u0411\u0435\u0437 <code>|<\/code> \u044d\u0442\u043e \u0431\u044b\u043b \u0431\u044b \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/li>\n<li><code>*<\/code> \u0432 <code>`* % 10`<\/code> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/type\/Whatever\">whatever<\/a>, \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430\u0445, \u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435. <em>\u041e\u0431\u044b\u0447\u043d\u043e<\/em>. \u042d\u0442\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>map({$_ % 10})<\/code><sup>1<\/sup>.<\/li>\n<li><a href=\"https:\/\/docs.raku.org\/type\/List#routine_rotor\">rotor<\/a><code>(2 => -1)<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0437\u0430\u0442\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430\u0437\u0430\u0434, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0435\u0449\u0451 \u0434\u0432\u0430 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c <code>[1, 2, 3, 4].rotor(2 => -1)<\/code> \u0431\u0443\u0434\u0435\u0442 <code>[(1, 2), (2, 3), (3, 4)]<\/code>. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <code>rotor(2)<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>[(1, 2), (3, 4)]<\/code>, \u0438\u043b\u0438 <code>rotor(1 => 1)<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>[1, 3]<\/code>. Rotor \u2014 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u0430\u044f \u0448\u0442\u0443\u043a\u0430.<\/li>\n<li><code>^10<\/code> \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c <code>0..9<\/code>. \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435!<\/li>\n<li><a href=\"https:\/\/docs.raku.org\/language\/operators#Cross_metaoperators\">X<\/a> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/language\/operators#Metaoperators\">\u043c\u0435\u0442\u0430\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/a> \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u0422\u043e \u0435\u0441\u0442\u044c \u0435\u0441\u043b\u0438 <code>$x = 2<\/code>, \u0442\u043e <code>$x X ^4<\/code> \u0434\u0430\u0441\u0442 <code>((2 0), (2 1), (2 2), (2 3))<\/code>. \u0418 \u0434\u0430, \u044d\u0442\u043e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u044c\u0448\u0435.<\/li>\n<li><code>grep(foo)<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f <a href=\"https:\/\/docs.raku.org\/language\/operators#infix_~~\">\u0443\u043c\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/a> <code>foo<\/code>, \u0430 <code>.elems<\/code> \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435. \u0422\u043e \u0435\u0441\u0442\u044c <code>@pairs.grep($_).elems<\/code> \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 <code>$_<\/code>. \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c, \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c <em>\u0441\u043b\u0438\u0448\u043a\u043e\u043c<\/em> \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<ol>\n<li>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, <code>-> $x {$x % 10}<\/code>, \u043d\u043e \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e<\/li>\n<\/ol>\n<\/div><\/div>\n<p>  <\/p>\n<pre><code class=\"plaintext\">> successions-grid(next-rng(1, 6))  0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0<\/code><\/pre>\n<p>  \u0418\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b. \u0415\u0441\u043b\u0438 \u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b 0, \u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u043c\u043e\u0433\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c 6. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u044d\u0442\u043e \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 RNG, \u043d\u043e \u0447\u0435\u0433\u043e-\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u044f \u0438 \u043d\u0435 \u0436\u0434\u0430\u043b.<\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u041f\u043e\u0447\u0435\u043c\u0443 6?<\/font><\/h2>\n<p>  \u0427\u0442\u043e, \u0435\u0441\u043b\u0438 \u044f \u0443\u043c\u043d\u043e\u0436\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0446\u0438\u0444\u0440\u0443 \u043d\u0435 \u043d\u0430 6, \u0430 \u043d\u0430 4?<\/p>\n<pre><code class=\"plaintext\">> say next-rng(1, 4); 01 04 16 25 22 10<\/code><\/pre>\n<p>  \u041d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0432\u043e\u043e\u0431\u0449\u0435, \u043c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f RNG, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u044b\u0434\u0430\u0451\u0442 3. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f <i>\u043e\u0440\u0431\u0438\u0442\u0430\u043c\u0438<\/i>, \u0430 \u0438\u0445 \u0434\u043b\u0438\u043d\u044b \u2014 <i>\u043f\u0435\u0440\u0438\u043e\u0434\u0430\u043c\u0438<\/i>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0440\u0431\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 4 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f:<\/p>\n<pre><code class=\"perl\">sub orbits-for-mod(int $mult, $top = 20) {   my &amp;f = &amp;next-rng.assuming(*, $mult);   (1..$top).map(&amp;f).unique(as => &amp;set) }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><code>&amp;<\/code> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/language\/variables#Sigils\">\u0441\u0438\u0433\u0438\u043b<\/a> \u0434\u043b\u044f \u00ab\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00bb \u0438\u043b\u0438 <s>\u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/s> \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041c\u0435\u0442\u043e\u0434 <code>.assuming<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 <code>*<\/code> \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c <em>\u0432\u0442\u043e\u0440\u043e\u0439<\/em> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440.<sup>1<\/sup><\/li>\n<li><code>map<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c <a href=\"https:\/\/docs.raku.org\/type\/independent-routines#routine_unique\"><code>unique<\/code><\/a>. <code>as => &amp;set<\/code> \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 <code>map<\/code> \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043d\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c <em>\u0438\u0445<\/em>, \u0430 \u043d\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438. \u041d\u043e \u0432 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.\n<p>  \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: <code>[-1, 1].unique(as => &amp;abs)<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>[-1]<\/code>, \u0430 <code>[1, -1].unique(as => &amp;abs)<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>[1]<\/code>.<\/li>\n<\/ul>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<ol>\n<li><a href=\"https:\/\/www.codesections.com\/\">\u0414\u044d\u043d\u0438\u0435\u043b \u0421\u043e\u043a\u0432\u0435\u043b\u043b<\/a> (codesections) \u043b\u044e\u0431\u0435\u0437\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u0438 \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043c\u043d\u0435 \u043e\u0431 <code>assume<\/code>. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0435\u043c\u0443!<\/li>\n<\/ol>\n<\/div><\/div>\n<p>  <\/p>\n<pre><code class=\"plaintext\">> say orbits-for-mod(4, 38).map(*.gist).join(\"\\n\"); [1 4 16 25 22 10] [2 8 32 11 5 20] [3 12 9 36 27 30] [6 24 18 33 15 21] [7 28 34 19 37 31] [13] [14 17 29 38 35 23] [26]<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0426\u0438\u0442\u0438\u0440\u0443\u044e <a href=\"https:\/\/www.codesections.com\/\">\u0414\u044d\u043d\u0438\u0435\u043b\u0430 \u0421\u043e\u043a\u0432\u0435\u043b\u043b\u0430<\/a>:<\/p>\n<blockquote><p><code>.map(*.gist).join(\"\\n\")<\/code> \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430. <code>cycles-for-mod<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>Seq<\/code> \u0438\u0437 <code>Array<\/code>; \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e <code>Array<\/code> \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>.gist<\/code> \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0443, \u043e\u043a\u0440\u0443\u0436\u0451\u043d\u043d\u0443\u044e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438, \u0430 <code>.join(\"\\n\")<\/code> \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a.<\/p><\/blockquote>\n<\/div><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 13, \u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 3, 3, 3, 3, 3, 3.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\" data-src=\"https:\/\/habrastorage.org\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\"\/><\/div>\n<p>  \u041f\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c 4 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u0432\u044b\u0434\u0430\u0432\u0430\u043b \u00ab\u0445\u043e\u0440\u043e\u0448\u0438\u0439\u00bb RNG, \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u043d\u0443 \u043e\u0440\u0431\u0438\u0442\u0443.<\/p>\n<pre><code class=\"perl\">> say (1..30).grep(*.&amp;orbits-for-mod == 1) (3 6 11 15 18 23 27)<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li><code>.&amp;<\/code> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430. <code>grep(*.&amp;f)<\/code> \u2014 \u044d\u0442\u043e \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442 <code>grep({f($_)})<\/code>.<\/li>\n<li><code>&amp;orbits-for-mod<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a. <code>==<\/code> \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043e\u0431\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0447\u0438\u0441\u043b\u0430, \u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0451\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u0438\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043e\u0440\u0431\u0438\u0442\u0443). (\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u043b\u0438 <a href=\"https:\/\/docs.raku.org\/language\/operators#infix_===,_infix_%E2%A9%B6\">===<\/a>, \u0438\u043b\u0438 <a href=\"https:\/\/docs.raku.org\/language\/operators#infix_eqv\">eqv<\/a>.)<\/li>\n<\/ul>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0440\u0431\u0438\u0442\u044b, <em>\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f<\/em> \u0441 \u0447\u0438\u0441\u043b\u0430 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 20. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0443\u043f\u0443\u0441\u0442\u0438\u0442 \u043e\u0440\u0431\u0438\u0442\u0443 <code>26 -> 26<\/code> \u0434\u043b\u044f <code>x=4<\/code>. \u041e\u0431\u0435 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u044f \u0443\u0441\u0442\u0440\u0430\u043d\u044e \u043f\u043e\u0437\u0436\u0435.<\/div>\n<\/p><\/div>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u00ab\u0445\u043e\u0440\u043e\u0448\u0438\u0435\u00bb \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043b\u044f <code>n<\/code> \u2014 \u044d\u0442\u043e 6, 11 \u0438 18.<\/p>\n<p>  \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e \u0438\u0437 \u0442\u0440\u0451\u0445 \u0440\u0430\u0437\u0440\u044f\u0434\u043e\u0432, \u0442\u043e \u0441 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u0440\u044f\u0434\u0430\u043c\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0441 \u043e\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 <code>n=11<\/code> \u0447\u0438\u0441\u043b\u043e <code>162<\/code> \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e <code>16 + 22<\/code>, \u0430 \u043d\u0435 \u043a <code>6 + 22<\/code> (\u0438\u043b\u0438 \u043a <code>6 + 1 + 22<\/code>).<\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/font><\/h2>\n<p>  \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u0430 \u0432\u043e\u0442 \u044d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f:<\/p>\n<blockquote><p>\u0415\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f (6) \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432, \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0443\u043b\u044f, 10 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 59).<\/p><\/blockquote>\n<p>  \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0432 \u0441 \u0434\u0440\u0443\u0437\u044c\u044f\u043c\u0438 \u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0432 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u044e, \u044f \u043d\u0430\u0447\u0430\u043b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c. \u041c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 RNG <a href=\"https:\/\/en.wikipedia.org\/wiki\/Multiply-with-carry_pseudorandom_number_generator\">\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u043c<\/a> (multiply with carry, MWC) \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 <code>a=x<\/code> \u0438 <code>c=10<\/code>. \u042d\u0442\u043e\u0442 \u0432\u044b\u0431\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e: \u0435\u0441\u043b\u0438 <code>MWC(x) = y<\/code>, \u0442\u043e <code>10y mod (10n-1) = x<\/code>!<\/p>\n<pre><code class=\"plaintext\">MWC:    01 -> 06 -> 36 -> ... -> 41 -> 10 -> 01 10y%59: 01 -> 10 -> 41 -> ... -> 36 -> 06 -> 01<\/code><\/pre>\n<p>  \u0418 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u043e! \u041c\u043d\u0435 \u043f\u0440\u043e\u0449\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0442\u044c \u043e\u0431 <code>10y mod 59<\/code>, \u0447\u0435\u043c \u043e\u0431 \u00ab\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0446\u0438\u0444\u0440\u044b \u043d\u0430 \u0448\u0435\u0441\u0442\u044c \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0438\u0444\u0440\u044b\u00bb. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 RNG \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 0 \u0438 9 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0435, \u0447\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u0446\u0438\u0444\u0440\u044b: \u043a\u0430\u043a\u043e\u0439 \u0431\u044b \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u043c\u044b \u043d\u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u043e\u0442 1 \u0434\u043e 10n-2, \u00ab\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f\u00bb 10n-1 (\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 9) \u0438 10n (\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 0).<\/p>\n<p>  \u00ab\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c\u00bb \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <a href=\"https:\/\/en.m.wikipedia.org\/wiki\/Lehmer_random_number_generator\">RNG \u041b\u0435\u043c\u0435\u0440\u0430<\/a>.<\/p>\n<h2><font color=\"#3AC1EF\">\u258d \u0418\u0449\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 RNG<\/font><\/h2>\n<p>  \u0410 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0447\u0438\u0441\u043b\u0430? \u041c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043e\u0440\u0431\u0438\u0442\u0443, \u0430 \u0432\u044b\u0448\u0435 \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c O(n\u00b2). <i>[\u0415\u0441\u043b\u0438 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c <code>n<\/code> \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u043d\u0443 \u043e\u0440\u0431\u0438\u0442\u0443, \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c <code>next-rng<\/code> \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0434\u043b\u044f 10n-2 \u0447\u0438\u0441\u0435\u043b, \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 10n-2 \u0440\u0430\u0437 (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0439 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u043e\u0440\u0431\u0438\u0442\u0435). \u0415\u0441\u043b\u0438 \u0431\u044b \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0434 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043b \u0447\u0438\u0441\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b \u0432 \u043e\u0440\u0431\u0438\u0442\u0435, \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0431\u044b \u0434\u043e O(n).]<\/i> \u0415\u0441\u043b\u0438 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c MWC, \u043a\u0430\u043a \u00ab\u041b\u0435\u043c\u0435\u0440\u0430 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442\u00bb, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431: \u0435\u0441\u043b\u0438 <code>n<\/code> \u2014 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c, \u0442\u043e \u043f\u0435\u0440\u0438\u043e\u0434 \u043e\u0440\u0431\u0438\u0442\u044b, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u0441 1, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c <code>10n-2<\/code>.<\/p>\n<p>  \u041c\u0435\u0442\u043e\u0434 \u041b\u0435\u043c\u0435\u0440\u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u0440\u0431\u0438\u0442\u044b:<\/p>\n<pre><code class=\"perl\">sub oneorbit(\\x) {   10, * *10% (10*x - 1) \u2026 1 }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li>\u0423\u043a\u0430\u0437\u0430\u0432 <code>\\x<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>$x<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0442\u0435\u043b\u0435 <code>x<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>$x<\/code>.<\/li>\n<li><code>...<\/code> \u2014 \u044d\u0442\u043e <a href=\"https:\/\/docs.raku.org\/language\/operators#infix_...\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a>. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c <em>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e<\/em> \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u0432\u0430\u0436\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <code>10, &amp;f \u2026 1<\/code>, \u043e\u043d \u043d\u0430\u0447\u043d\u0451\u0442 \u0441 10, \u0430 \u0437\u0430\u0442\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c <code>&amp;f<\/code>, \u043f\u043e\u043a\u0430 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043d\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 <code>1<\/code>.<\/li>\n<li>In <code>* *10%[etc]<\/code>: \u043f\u0435\u0440\u0432\u0430\u044f <code>*<\/code> \u2014 \u044d\u0442\u043e Whatever, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f <code>*<\/code> \u2014 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435. \u0417\u0430\u0442\u0435\u043c \u044d\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>-> $a {$a * 10 % (10*x - 1)}<\/code>.<\/li>\n<\/ul>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043e\u0440\u0431\u0438\u0442\u0443 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u043d\u043e \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0438\u043e\u0434, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0430\u0436\u043d\u043e.<\/p><\/div>\n<\/p><\/div>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0440\u044e\u043a\u0430 \u0441 <code>==<\/code>, \u0447\u0442\u043e \u0438 \u0440\u0430\u043d\u044c\u0448\u0435.<\/p>\n<pre><code class=\"perl\">> say (1..100).grep({oneorbit($_) == 10*$_-2});  (2 3 6 11 15 18 23 27 38 39 42 50 51 62 66 71)<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u041c\u0430\u0440\u0441\u0430\u043b\u044c\u044f \u0432\u044b\u0431\u0440\u0430\u043b 6: \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u0437\u043d\u0430\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 6 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u043a \u0442\u0440\u0451\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u0430\u043f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442. \u041e\u0440\u0431\u0438\u0442\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432\u0441\u0435\u0433\u043e \u0438\u0437 58 \u0447\u0438\u0441\u0435\u043b, \u0438 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u0437\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0446\u0438\u0444\u0440, \u0442\u043e \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438, \u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432. 50 \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0438\u043e\u0434 498 \u0438 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0438\u0444\u0440\u0430 \u0447\u0451\u0442\u043d\u0430\u044f, \u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043e\u0432: <strong><font color=\"#3AC1EF\">23<\/font><\/strong>8 -> 4<strong><font color=\"#3AC1EF\">23<\/font><\/strong>!<\/p>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f 50 \u043d\u0435 <i>\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442<\/i> \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439, \u043a\u0430\u043a \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 9 \u0447\u0451\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438\u0434\u0443\u0442 8 \u043d\u0435\u0447\u0451\u0442\u043d\u044b\u0445. \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0451 \u0434\u043b\u044f \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u0431\u0440\u043e\u0441\u043a\u043e\u0432 \u043c\u043e\u043d\u0435\u0442\u044b.<\/p>\n<p>  \u0415\u0449\u0451 \u043e\u0434\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u2014 \u044d\u0442\u043e 18. \u041e\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 (178) \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0432\u0441\u0435\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438 \u0446\u0438\u0444\u0440:<\/p>\n<pre><code class=\"perl\">> successions-grid(next-rng(1, 18))  1 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 1<\/code><\/pre>\n<p>  \u0415\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0443\u0447\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 18. \u042d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e: \u044f \u043e\u0441\u0432\u043e\u0438\u043b \u0435\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0437\u0430 \u0434\u0435\u0441\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438. \u041d\u043e \u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043a\u0430 <i>\u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e<\/i> \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0441\u044c \u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 MWC, \u043d\u043e \u043c\u043e\u0433\u0443 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u0446\u0438\u0444\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0435 \u043f\u044f\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434. \u041c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u0439 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430 Raku \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/www.hillelwayne.com\/post\/randomness\/src\/rng.raku\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041e\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d <a href=\"https:\/\/buttondown.email\/hillelwayne\/archive\/raku-is-surprisingly-good-for-clis\/\">\u043a\u0430\u043a CLI<\/a>, \u043d\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438; \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u043c. \u0432 \u0444\u0430\u0439\u043b\u0435.<\/p>\n<blockquote><p><b><font color=\"#3AC1EF\"><a href=\"https:\/\/t.me\/ruvds_community\">\u0421\u043a\u0438\u0434\u043a\u0438, \u0438\u0442\u043e\u0433\u0438 \u0440\u043e\u0437\u044b\u0433\u0440\u044b\u0448\u0435\u0439 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0438 \u043e \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u0435 RUVDS \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435 ?<\/a><\/font><\/b><\/p><\/blockquote>\n<p><a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=generator_sluchajnyx_chisel_kotoryj_mozhno_zapustit_v_golove\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4g\/dr\/oa\/4gdroaajo7o0zzvwwx5__rlzhwi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/4g\/dr\/oa\/4gdroaajo7o0zzvwwx5__rlzhwi.png\"\/><\/a><\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/789816\/\"> https:\/\/habr.com\/ru\/articles\/789816\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habr.com\/ru\/companies\/ruvds\/articles\/789816\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\" data-src=\"https:\/\/habrastorage.org\/storage2\/930\/571\/c14\/930571c142e5a454827cca64cd0855be.png\"\/><\/div>\n<p><\/a><br \/>  \u041b\u044e\u0434\u0438 \u0443\u0436\u0430\u0441\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u042f \u0445\u043e\u0442\u0435\u043b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u00ab\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435\u00bb \u0447\u0438\u0441\u043b\u0430. \u041c\u043d\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u0437\u0430 \u043f\u043e\u043b\u043c\u0438\u043d\u0443\u0442\u044b. \u041f\u043e\u0438\u0441\u043a\u0430\u0432 \u043e\u043d\u043b\u0430\u0439\u043d, \u044f \u043d\u0430\u0448\u0451\u043b <a href=\"https:\/\/groups.google.com\/g\/sci.math\/c\/6BIYd0cafQo\/m\/Ucipn_5T_TMJ?hl=en\">\u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u043e\u0441\u0442 \u0432 Usenet<\/a>, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0414\u0436\u043e\u0440\u0434\u0436\u0435\u043c \u041c\u0430\u0440\u0441\u0430\u043b\u044c\u044f:<\/p>\n<blockquote><p>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, 23. \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u00ab\u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00bb (seed).<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u043e\u0435 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043f\u043b\u044e\u0441 \u0448\u0435\u0441\u0442\u044c, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: 23 \u2013> (2 + 6 * 3) = 20 \u2013> (2 + 6 * 0) = 02 \u2013> 12 \u2013> 13 \u2013> 19 \u2013> 55 \u2013> 35 \u2013> \u2026<\/p>\n<p>  \u0415\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f (6) \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432, \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0443\u043b\u044f, 10 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 59).<\/p>\n<p>  \u00ab\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0446\u0438\u0444\u0440\u0430\u043c\u0438\u00bb \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0434\u0432\u0443\u0445\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0442\u043e \u0435\u0441\u0442\u044c 3,0,2,2,3,9,5,\u2026 \u0442\u043e \u0435\u0441\u0442\u044c \u0447\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 mod 10.<\/p><\/blockquote>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u041c\u0430\u0440\u0441\u0430\u043b\u044c\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0441\u0432\u043e\u0438\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Diehard_tests\">\u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0442\u0435\u0441\u0442\u043e\u0432 diehard-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/a> \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (RNG), \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u043d \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 (\u0437\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u043f\u043e\u0434 RNG \u044f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (PRNG)). \u041c\u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043e\u043d \u0432\u044b\u0431\u0440\u0430\u043b 6.<\/p>\n<p>  \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/www.raku.org\">Raku<\/a>, <a href=\"https:\/\/buttondown.email\/hillelwayne\/archive\/raku-a-language-for-gremlins\/\">\u044f\u0437\u044b\u043a\u0435 \u0434\u043b\u044f \u0433\u0440\u0435\u043c\u043b\u0438\u043d\u043e\u0432<\/a>. \u041d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u0436\u0435 \u0433\u0440\u0435\u043c\u043b\u0438\u043d, \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 \u044f \u0431\u0443\u0434\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.  <\/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-366660","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366660","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=366660"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366660\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=366660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=366660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=366660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}