рдкрд░рд┐рдорд┐рдд рдЕрд╕рддрдд рд╡рд┐рддрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд┐рдзрд┐

рдХрднреА-рдХрднреА рд╣рдбреНрдбреА рдлреЗрдВрдХрдиреЗ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рднрд╛рд╡реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрдкрд░реА рдЪреЗрд╣рд░реЗ рдкрд░ рдПрдХ рдореВрд▓реНрдп рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЕрд▓реНрдлрд╛ рдкрд░ рдПрдХ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рд╕реЗ [0,1] ред рдЕрд░реНрдерд╛рддреН: рдЫрд╡рд┐ рдЬрд╣рд╛рдБ рдЫрд╡рд┐ - рддрд░реНрдХ рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рд▓реЗрдирд╛ред

рд▓реЗрдХрд┐рди рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ "рдмреЗрдИрдорд╛рди" рд╣рдбреНрдбреА рд╣реИ рдФрд░ рдХрд┐рдирд╛рд░реЗ рдЕрд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЧрд┐рд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рд╣рдбреНрдбреА рдореЗрдВ K рдЪреЗрд╣рд░реЗ рд╣реИрдВ, рдФрд░ p_i рдПрдХ рдЪреЗрд╣рд░реЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЫрд╡рд┐ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ, рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдз рдЫрд╡рд┐ ред рдореИрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛: рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЕрдиреБрдХрд░рдг рдХреИрд╕реЗ рдХрд░реЗрдВ?


#Naive approach len<-10 ps<-seq(len,2, by=-1) ps<- 1/ps^2 ps<-ps/sum(ps) ss<-cumsum(ps) gen_naiv <- function() { alpha<-runif(1) return (min(which(alpha<ss))) } #sample val<-c() len<-10000 for(i in 1:len) { val<-append(val, gen_naiv()) } vals<-factor(val) plot(vals) 

рдЫрд╡рд┐

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

рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд╣реА рд╣рдбреНрдбреА рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдП, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдЧрд▓рдд рд╣рдбреНрдбреА рдХрд╛ рд▓рдЧрднрдЧ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЪреЗрди рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ "рдХрдЯрдкреЙрдЗрдВрдЯ рд╡рд┐рдзрд┐" рдпрд╛ "рдЗрдВрдбреЗрдХреНрд╕ рд╕рд░реНрдЪ" рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рднреА рдЬрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╣рдо рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ [0,1] рдПрдо рдмрд░рд╛рдмрд░ рднрд╛рдЧреЛрдВ рдкрд░ред рд╣рдо рддрддреНрд╡ рдореЗрдВ рд▓рдВрдмрд╛рдИ рдПрдо рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд░рдгреА рдЖрд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ r_j рд╕рд░рдгреА рдореИрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ i, рдРрд╕реЗ рдЫрд╡рд┐ :
 #Preprocessing ss<-cumsum(ps) ss<-append(ss, 0, after=0) M<-length(ss) rs<-c() for(k in 0:(M-1)) rs<-append(rs, min(which(ss>=k/M))) 


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирдпрд╛ рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗрддрд╛ рд╣реИ:
 #chen's method finite discrete distribution generator gen_dfd <- function() { M<-10 alpha<-runif(1) idx<-rs[floor(alpha*M)+1] return (idx-1+min(which(alpha<ss[idx:(M+1)]))-1) } #sample code val<-c() len<-10000 for(i in 1:len) { val<-append(val, gen_dfd()) } vals<-factor(val) plot(vals) 


рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 0.03712143 рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде (рдПрдо рдХреЗ рдмрд░рд╛рдмрд░ 9) 4 рддреБрд▓рдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд╕рддрди, рдЖрдкрдХреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдФрд░ 1.2 рддреБрд▓рдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдФрд░ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рдХрд╛ рдЪрд░рдг (рдХрд╛рд░реНрдп) рд╣реИ p_i ) рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджреБрд░реНрд▓рдн рд╣реИ, рдПрдо рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрдбрд╝рд╛ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles