рдмрдЪреНрдЪреЗ, рдЧрдгрд┐рдд рдФрд░ рдЖрд░

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


рдЧрдгрд┐рдд рдпрд╛ рднреМрддрд┐рдХреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рджреЛ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдкрддреНрдерд░ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдПрдХ рдЦрд░рдЧреЛрд╢ рдФрд░ рдПрдХ рдЦрд░рдЧреЛрд╢) рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Ext рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдорд┐рд▓рд╛рдПрдВред рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдбреЗрдЯрд╛ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрд╕реНрдХреГрддрд┐ рдХреА рд╕рдорд╛рдирд╛рдВрддрд░ рд╢рд┐рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛рдПрдВ (рд╕реНрдХреВрд▓ рдкрд╛рдареНрдпрдХреНрд░рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ)ред рд╣рдо рддреАрди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЪреИрдЯ рдмреЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рд▓рдХреНрд╖реНрдп рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдЧрдгрдирд╛ рдХрд░рдирд╛, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛, рдореЙрдбрд▓рд┐рдВрдЧ рдХрд░рдирд╛ рдФрд░ рдЫрд┐рдкреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдИ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


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


рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝:


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

рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рд╣реИред


рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


library(tidyverse) library(glue) library(magrittr) library(lubridate) library(hms) library(numbers) library(polynom) library(Ryacas) library(stringi) library(tictoc) 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдирдВрдд рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдХрд╛рд░реНрдп


рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ: 3тИЧтИЧ:тИЧ3=3тИЧ ред рд╕рднреА рд▓рд╛рдкрддрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рдЬреНрдЮрд╛рдд рдХреАрдЬрд┐рдПред


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #  3ab = c3*3d df <- 0:9 %>% {tidyr::crossing(a = ., b = ., c = ., d = .)} %>% filter(300 + a * 10 + b == (c * 10 + 3) * (30 + d)) df 

рдХрд╛рд░реНрдп


рдХреНрдпрд╛ рд░рд┐рдХреЙрд░реНрдб 7тИЧ(7тИЧ7тИЧ7)тИЧ7 to 7тИЧ(7тИЧ7тИЧ7)тИЧ7 рдореЗрдВ 8 рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП тАЬтИЧтАЭ the тАЬтИЧтАЭ рдмрдЬрд╛рдп рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 ops <- c('*', '/', '+', '-') #      df <- tidyr::crossing(op1 = ops, op2 = ops, op3 = ops, op4 = ops) %>% #        mutate(data = glue::glue("7 {op1} (7 {op2} 7 {op3} 7) {op4} 7"), expr = rlang::parse_exprs(data)) %>% mutate(res = purrr::map_dbl(expr, rlang::eval_bare)) %>% arrange(res) %>% filter(res == 8) print(tbl_df(df), n = 20) 

рдХрд╛рд░реНрдп


1 рд╕реЗ 100 рддрдХ рдХреА рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВред рдХрд┐рддрдиреА рдмрд╛рд░ рд╕рдВрдЦреНрдпрд╛ 4 рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #  100   4,      99 #    tidyr::crossing(d1 = 0:9, d2 = 0:9) %>% #   ,   4 filter(d1 == 4 | d2 == 4) %>% arrange(d1, d2) 

рдХрд╛рд░реНрдп


рд╕рдВрдЦреНрдпрд╛ 9, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рддреАрди-рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реБрд░реВ рд╣реБрдИ, рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ 216 рдХрдо рд╣реИред рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдВрдХреЛрдВ рдХрд╛ рдпреЛрдЧ рдХреНрдпрд╛ рд╣реИред


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #   : abc df <- tidyr::crossing(b = 0:9, c = 0:9) %>% #    9     mutate(delta = (900 + 10*b + c) - (100*b + 10*c + 9)) %>% filter(between(delta, 200, 230)) df 

рдХрд╛рд░реНрдп


5 рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЧреБрдгрдирдлрд▓ 2520 рд╣реИред рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдзрд┐ 1
 numbers::primeFactors(2520) 

рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдзрд┐ 2
 # https://joftius.wordpress.com/2015/10/19/finding-multiple-roots-of-univariate-functions-in-r/ f <- function(x) {x * (x+1) * (x+2) * (x+3) * (x+4) - 2520} rootSolve::uniroot.all(f, c(0, 2520)) 

рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг, рд╡рд┐рдзрд┐ 3
 eq <- "x * (x+1) * (x+2) * (x+3) * (x+4) - 2520" yacas(glue("Simplify({eq})")) #            rts <- base::polyroot(c(-2520, 24, 50, 35, 10, 1)) #     n-1 #     # http://www.johnmyleswhite.com/notebook/2009/12/18/using-complex-numbers-in-r/ Re(rts[abs(Im(rts)) < 1^-10]) 

рдХрд╛рд░реНрдп


"тИЧ" рд▓рд┐рдП рдХрд┐рд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдВрдЦреНрдпрд╛ 543тИЧ ? 4 543тИЧ рд╡рд┐рднрд╛рдЬреНрдп рд╣реЛ? рд╕рднреА рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 tibble(num = 5430 + 0:9, mod = mod(num, 4)) %>% arrange(mod, num) 

рдХрд╛рд░реНрдп


рд╕рдВрдЦреНрдпрд╛ 60 рдХреА рддреАрд╕рд░реА рддрд┐рдорд╛рд╣реА рд╕реЗ рджреЛрдЧреБрдирд╛ рдХреНрдпрд╛ рд╣реИ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 2*(1/3*(1/4*60)) 60 %>% {./4} %>% {./3} %>% {.*2} 

рдХрд╛рд░реНрдп


рд╣рд╛рдереЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡реЙрдЪ рдбрд╛рдпрд▓ рдХреЛ 2 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рд╕рдорд╛рди рд╣реЛред
рдЕрддрд┐рд░рд┐рдХреНрддред рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ: рдШрдбрд╝реА рдХреЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдХрд┐рддрдиреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реЛрдВ рдЬрд┐рдирдХреА рд░рд╛рд╢рд┐ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #       2  ,   #    ,    =  sum(1:12) / 2 #    for (i in 1:12){ res <- cumsum(i:12) print(glue(" : {i},  : {glue_collapse(res, ', ')}")) val <- which(res == 39) if(! identical(val, integer(0))){ print(glue("  [{i}; {val + i - 1}]")) } } 

"рдмреИрд▓ рдФрд░ рдЧрд╛рдп"


рднрд┐рдиреНрдирддрд╛ рез


рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 1 рд╕реЗ 5 рддрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрдХред
рдЙрдирдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЦрдбрд╝реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмреИрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ рдЧрд╛рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред


рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреАрди рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ:


  • 314 - 1 рдмреИрд▓ рдФрд░ 1 рдЧрд╛рдп;
  • 124 - 1 рдмреИрд▓ рдФрд░ 1 рдЧрд╛рдп;
  • 523 - 1 рдмреИрд▓ рдФрд░ 1 рдЧрд╛рдпред

рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 library(tidyverse) library(stringi) #   "an_bn_cn". c --    df <- c(1, 2, 3, 4, 5) %>% {tidyr::crossing(an = ., bn = ., cn = .)} %>% #    mutate(comb = purrr::pmap(., c)) %>% #     mutate(val = stri_join(an, bn, cn)) %>% #      # 314 -  1  filter(stri_detect_regex(val, "3[^1][^4]|[^3]1[^4]|[^3][^1]4")) %>% # 124 -  1  filter(stri_detect_regex(val, "1[^2][^4]|[^1]2[^4]|[^1][^2]4")) %>% # 523 -  1  filter(stri_detect_regex(val, "5[^2][^3]|[^5]2[^3]|[^5][^2]3")) %>% #      filter(purrr::map_int(comb, n_distinct) == 3) %>% #      (1   1 ) filter(purrr::map(comb, ~length(base::intersect(.x, c(3, 1, 4)))) == 2) %>% filter(purrr::map(comb, ~length(base::intersect(.x, c(1, 2, 4)))) == 2) %>% filter(purrr::map(comb, ~length(base::intersect(.x, c(5, 2, 3)))) == 2) df 

рднрд┐рдиреНрдирддрд╛ реи


рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 1 рд╕реЗ 5 рддрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрдХред
рдЙрдирдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЦрдбрд╝реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмреИрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ рдЧрд╛рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рддреАрди рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ:


543 - 1 рдмреИрд▓; 0 рдЧрд╛рдп;
235 - 1 рдмреИрд▓; 0 рдЧрд╛рдпред


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 library(tidyverse) library(stringi) df <- c(1, 2, 3, 4, 5) %>% tidyr::crossing(d3 = ., d2 = ., d1 = .) %>% #    mutate(comb = purrr::pmap(., c)) %>% #     mutate(val = stri_join(d3, d2, d1)) %>% #      # 543 -- 1 ; 0  filter(stri_detect_regex(val, "5..|.4.|..3")) %>% # 235 -- 1 ; 0  filter(stri_detect_regex(val, "2..|.3.|..5")) %>% #      filter(purrr::map_int(comb, n_distinct) == 3) %>% #      filter(purrr::map(comb, ~length(base::intersect(.x, c(5, 4, 3)))) == 1) %>% filter(purrr::map(comb, ~length(base::intersect(.x, c(2, 3, 5)))) == 1) df 

рдЪреМрдХреЛрд░ рднрд░реЗрдВ


рдХреНрдпрд╛ рдПрдХ рд╡рд░реНрдЧ рддрд╛рд▓рд┐рдХрд╛ 4 рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рджрд╕ minuses рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдореЗрдВ рд╡рд┐рд╖рдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ minuses рд╣реЛрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ minuses рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реЛ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг, рд╡рд┐рдХрд▓реНрдк 1
 #      ,    10.  : 3, 3, 3, 1 library(arrangements) library(foreach) #   : # 1 2 3 4 # 5 6 7 8 # 9 10 11 12 # 13 14 15 16 cmb <- arrangements::combinations(1:16, k = 10, replace = FALSE) pryr::object_size(cmb) #   ,   ,   .  icomb <- icombinations(1:16, k = 10, replace = FALSE) foreach(x = icomb, .combine=c) %do% { # x -    ,    "" #       #  isOdd <- function(x, set){ #   length(base::intersect(x, set)) %% 2 == 1 } isEven <- function(x, set){ #   length(base::intersect(x, set)) %% 2 == 0 } col_flag <- all( isOdd(x, c(1, 5, 9, 13)), isOdd(x, c(2, 6, 10, 14)), isOdd(x, c(3, 7, 11, 15)), isOdd(x, c(4, 8, 12, 16)) ) row_flag <- all( isEven(x, c(1, 2, 3, 4)), isEven(x, c(5, 6, 7, 8)), isEven(x, c(9, 10, 11, 12)), isEven(x, c(13, 14, 15, 16)) ) if(col_flag && row_flag) print(x) } 

рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг, рд╡рд┐рдХрд▓реНрдк 2
 #      ,    10.  : 3, 3, 3, 1 library(tidyverse) library(magrittr) library(arrangements) library(foreach) #   : # 1 2 3 4 # 5 6 7 8 # 9 10 11 12 # 13 14 15 16 #   ,   ,   .  icomb <- icombinations(1:16, k = 10, replace = FALSE) df <- foreach(x = icomb, .combine = rbind) %do% { # x -    ,    "" #       #   v <- rep(0, 16) #   ,   # browser() v[x] <- 1 m <- matrix(v, nrow = 4, ncol = 4, byrow = TRUE) #  :      , #        if (all(colSums(m) %% 2 == 1) && all(rowSums(m) %% 2 == 0)) x else NULL } df %<>% as_tibble(.name_repair = "minimal") #       v <- rep(0, 16) #   ,   v[purrr::flatten_int(df[5, ])] <- 1 matrix(v, nrow = 4, ncol = 4, byrow = TRUE) 

рд╕рд╛рд╣рдЪрд░реНрдп


рдХрд╛рд░реНрдп


рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдХрд┐рддрдиреЗ рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрди рдЬрд┐рд╕рдореЗрдВ рджреЛ рд╕рдорд╛рди рдЕрдХреНрд╖рд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдирд╣реАрдВ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, K, A, W рдФрд░ A рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рд╡рд┐рднрд┐рдиреНрди рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред R рдореЗрдВ рдХрд┐рд╕реА рд╕реВрдЪреА рдХреЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд░рдорд╛рдВрдХрди рддреИрдпрд╛рд░ рдХрд░рдирд╛


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #     # https://stackoverflow.com/questions/44918645/split-a-string-into-character-efficiently lset <- unlist(base::strsplit("", split = "", fixed = TRUE)) #       ,      lset <- c("", "1", "", "2") # library(permutations) df <- tidyr::crossing(p1 = lset, p2 = lset, p3 = lset, p4 = lset) ff <- function(...){ vals <- rlang::list2(...) # browser() n_distinct(unlist(vals)) } df %>% # mutate(u = purrr::pmap_int(., ~n_distinct(.x))) mutate(u = purrr::pmap_int(., ff)) %>% filter(u == 4) %>% select(-u) %>% #      mutate(s = purrr::pmap_chr(., stri_join)) %>% mutate_at(vars(s), stri_replace_all_regex, pattern = "(\\d+)", replacement = "") %>% distinct(s) %>% #     filter(!stri_detect_fixed(s, "")) 

рдХрд╛рд░реНрдп


рдПрдХ рд╡рд░реНрд╖ рдореЗрдВ рдХрд┐рддрдиреЗ рд░рд╡рд┐рд╡рд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 #   ,     366 %/% 7 #   .         366 %% 7 

рд╕рдореБрджреНрд░реА рд▓реБрдЯреЗрд░реЛрдВ рдХрд╛ рдХрд╛рдо


рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ: рдП, рдмреА, рд╕реА
рдХрд╣ рез
A: B рдХреА 2 рдЖрдВрдЦреЗрдВ рд╣реИрдВ
B: C рдХреА 2 рдЖрдВрдЦреЗрдВ рд╣реИрдВ
C: A рдХреА 2 рдЖрдВрдЦреЗрдВ рд╣реИрдВ


рдХрд╣ 2
A: рд╣рдо рд╕рднреА рдХреА 2 рдЖрдВрдЦреЗрдВ рд╣реИрдВ
B: рд╣рдо рд╕рднреА рдХреА 3 рдЖрдВрдЦреЗрдВ рд╣реИрдВ
C: рд╣рдо рд╕рднреА рдХреА 4 рдЖрдВрдЦреЗрдВ рд╣реИрдВ


рдкреНрд░рддреНрдпреЗрдХ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдиреЗ рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЭреВрда рдмреЛрд▓рд╛ред рдкреНрд░рддреНрдпреЗрдХ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдХреА рдХрд┐рддрдиреА рдЖрдБрдЦреЗрдВ рд╣реЛрддреА рд╣реИрдВ?


рд╕рдорд╛рдзрд╛рди рдЙрджрд╛рд╣рд░рдг
 df <- tidyr::crossing(a = 0:2, b = 0:2, c = 0:2) %>% mutate(total = a + b + c) %>% mutate(a_lie = (b != 2) + (total != 2), b_lie = (c != 2) + (total != 3), c_lie = (a != 2) + (total != 4)) %>% filter(a_lie == a, b_lie == b, c_lie == c) df 

рдЖрджрд┐ рдЖрджрд┐


рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдкрдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд╕рд╛рде рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдкрд┐рдЫрд▓рд╛ рдкреЛрд╕реНрдЯ - "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝" рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП R рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ ред "

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


All Articles