рдЖрд░, рдореЛрдВрдЯреЗ рдХрд╛рд░реНрд▓реЛ рдФрд░ рдЙрджреНрдпрдо рдХрд╛рд░реНрдп

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд┐рдпрдорд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп, рдХрд┐рд╕реА рдХреЛ рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдмреИрдардХреЛрдВ рдореЗрдВ рдЖрдЧреЗ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рд╣рд╡рд╛ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред


  • рд╡рд┐рдХрд▓реНрдк 1 - рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
  • рд╡рд┐рдХрд▓реНрдк 2 - рдЖрдЗрдП рдПрдХ рдЧреИрд░-рд░реЗрдЦреАрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди, рдПрдордПрд▓ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдлреИрд╢рдиреЗрдмрд▓ рдЪреАрдЬреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░реЗрдВред рд╕рдм рдХреЗ рдмрд╛рдж рдХреВрд▓ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЖрд╡реЗрджрди рд╣рдореЗрд╢рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрддреНрд░реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рд╣реИред


рдРрд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмреЗрдорд╛рдиреА рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рд╣рд╛рдВ, рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ: рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп, рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп, рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ, рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХрд░рдирд╛, рдЧрд▓рдд рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдХреА рдЙрдЪреНрдЪ рдЬрдЯрд┐рд▓рддрд╛, рдЙрд▓рдЯрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЙрдЪреНрдЪ рдЬрдЯрд┐рд▓рддрд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред


рд▓реЗрдХрд┐рди рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИред рдореЛрдВрдЯреЗ рдХрд╛рд░реНрд▓реЛ рд╡рд┐рдзрд┐ред рд╕реНрдЯреЗрдЯред рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдЬреЛ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред
рдкрд╣рд▓реЗ рдЕрдиреБрдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдЙрддреНрддрд░, рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрдирд╛, рдХреЛрдбрд┐рдВрдЧ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред


рдиреАрдЪреЗ рд╕рд┐рд░реНрдл 2 рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред


рдЙрджрд╛рд╣рд░рдг 1. рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдп рдЗрдирдкреБрдЯ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреИрдЯ рдмреЙрдЯ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЖрдзрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╣реИред рд╕реНрд░реЛрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЪрдпрди рдХреЗрд╡рд▓ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╡рд╛рдХреНрдп рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдордд рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреАрдврд╝реА рджреНрд╡рд╛рд░рд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдПрдХ рдкрд╛рдЗрдк 6 рдХрдорд░реЗ рдореЗрдВ рдмрд╣рддреА рд╣реИ" рдФрд░ "рдПрдХ рдХрдорд░реЗ рдореЗрдВ 6 рдкреНрд░рд╡рд╛рд╣ рдкрд╛рдЗрдк" рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред


рддреЛ, рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдмрдпрд╛рдиред рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕реВрдЪреА рд╣реИред рдореВрд▓реНрдпреЛрдВ рдХреА рдореВрд▓ рд╕реВрдЪреА рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд░рдорд╛рдВрдХрди рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рддрддреНрд╡реЛрдВ рдХреА рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рд╕реВрдЪреА рдХреЗ рднреАрддрд░ рд╣реА рдЕрдиреБрдореЗрдп рд╣реЛред


ll <- list(list('a', 'b', 'c'), 'd', list('e', 'f', list('g', 'h', 'i'))) #   factorial(3) * factorial(3) * factorial(3) * factorial(3) 


рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рд╕реНрдХреЗрдЪред
 #        ff <- function(x){ #    ,           res <- if(is.list(x)) { sample(x, length(x), replace = FALSE) %>% purrr::map(ff) } else { x } res } procLine <- function(row){ purrr::map(row, ff) %>% #    rlang::squash_chr() %>% stri_c(collapse = "") } #   ,     wks <- 1 future::plan(multiprocess, workers = wks) tic(glue("Generating permutations @ {wks} thread(s)")) df1 <- purrr::map(1:10^4, ~sample(ll, length(ll), replace = FALSE)) %>% #          # purrr::map_chr(procLine) %>% furrr::future_map_chr(procLine) %>% enframe(name = NULL) %>% distinct() toc() 

рдЙрджрд╛рд╣рд░рдг 2. рдЧреНрд░рд╛рд╣рдХ рдХрддрд╛рд░реЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛


рдорд╛рдк рдпреЛрдЬрдирд╛ рдРрд╕реА рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд╣рд░реА рд╕рдВрдХреЗрддрдХ рд▓реЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ (рд╣рдо рдЗрд╕реЗ рд╕рдордп рдореЗрдВ рдЬрдЯрд┐рд▓ рдФрд░ рдЕрд╕реНрдерд┐рд░ рдорд╛рдирддреЗ рд╣реИрдВ), рдЬреИрд╕реЗ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдЖрдЧрдорди рдФрд░ рдкреНрд░рд╕реНрдерд╛рди рдХрд╛ рд╕рдордп, рдЯреЛрдХрд░реА рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред


рд╡рд┐рдХрд▓реНрдк рд╕рдВрдЦреНрдпрд╛ 1 - рд╕рдорд╕реНрдпрд╛ рд╕рд┐рд░ рдкрд░ рд╣рд▓ рдХрд░рдирд╛ред рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд╣рд░реА рд╕рдВрдХреЗрддрдХреЛрдВ (рд╕реБрд╡рд┐рдзрд╛рдУрдВ) рдХреЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рджреНрд░рд╡реНрдпрдорд╛рди рдХреЗ рдХрд▓рд╛рдХрд╛рд░ + рд╕рдВрдЪрдп рдХрд╛ рд╢реВрдиреНрдп рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЬреНрдЮрд╛рди рдФрд░ "рдлрд┐рдЯрд┐рдВрдЧ" рдХреЗ рд▓рд┐рдП рдПрдордПрд▓ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред рдХреБрдЫ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд▓рдЧрд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛, рдХреНрдпреЛрдВ, рдФрд░ рдХреИрд╕реЗ - рдЗрд╕ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд▓рд┐рдпрдирд░реАрдХреГрдд "рд╡реНрдпрд╛рдЦреНрдпрд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред


рд╡рд┐рдХрд▓реНрдк рд╕рдВрдЦреНрдпрд╛ 2 - рд╣рдо рдЕрдиреБрднреВрддрд┐ рдХреА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХрддрд╛рд░рдмрджреНрдз рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдПрдХ рд╕реНрдЯреЗрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреВрдПрд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдХреЗрддрдХ, рд╣рдо рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдХреЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░рд┐рдд рдЕрд╕рддрдд рд╕рд┐рдореБрд▓реЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ "рдбрд┐рдЬрд┐рдЯрд▓ рдореЙрдбрд▓" рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд▓реАрд╡рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рд╢рдХреНрддрд┐ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкреНрд░реЗрдХреНрд╖рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдХреБрдЫ "рд╕реБрд╡рд┐рдзрд╛рдУрдВ" рдХреЗ рд╕реЗрдЯ рдкрд░ред
R рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░реАрди simmer рдкреИрдХреЗрдЬ рд╣реИред рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ ред


рдкрд┐рдЫрд▓рд╛ рдкреЛрд╕реНрдЯ - "рдЖрд░ рдореЗрдВ рдмрд┐рдЧрд┐рдиреЗрдВрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рдЫреВрддрд╛ рд╣реИ" ред

Source: https://habr.com/ru/post/hi482020/


All Articles