Skip to content
Prev 397736 / 398500 Next

Generate random vectors (continuous number) with a fixed sum

Hello,

Here are your tests and the random numbers' histograms.


one_vec <- function(a, b, s) {
   repeat{
     repeat{
       u <- runif(1, a[1], b[1])
       if(s - u > 0) break
     }
     v <- s - u
     if(a[2] < v && v < b[2]) break
   }
   c(u, v)
}
gen_mat <- function(m, a, b, s) {
   replicate(m, one_vec(a, b, s))
}

a <- c(0.015, 0.005)
b <- c(0.070, 0.045)
s <- 0.05528650577311
m <- 10000L

set.seed(2025)
res <- gen_mat(m, a, b, s)
apply(res, 1, min) > a
#> [1] TRUE TRUE
apply(res, 1, max) < b
#> [1] TRUE TRUE

# plot histograms of one million 2d vectors
system.time(
   res1mil <- gen_mat(1e6, a, b, s)
)
#>    user  system elapsed
#>    3.01    0.06    3.86

old_par <- par(mfrow = c(1, 2))
hist(res1mil[1L,])
hist(res1mil[2L,])
par(old_par)


Hope this helps,

Rui Barradas

?s 23:31 de 22/04/2025, Rui Barradas escreveu:

  
    

Thread (18 messages)

Brian Smith Generate random vectors (continuous number) with a fixed sum Apr 21 Eric Berger Generate random vectors (continuous number) with a fixed sum Apr 21 Rui Barradas Generate random vectors (continuous number) with a fixed sum Apr 21 Rui Barradas Generate random vectors (continuous number) with a fixed sum Apr 21 Brian Smith Generate random vectors (continuous number) with a fixed sum Apr 22 Rui Barradas Generate random vectors (continuous number) with a fixed sum Apr 22 Brian Smith Generate random vectors (continuous number) with a fixed sum Apr 22 Brian Smith Generate random vectors (continuous number) with a fixed sum Apr 22 Rui Barradas Generate random vectors (continuous number) with a fixed sum Apr 22 Rui Barradas Generate random vectors (continuous number) with a fixed sum Apr 22 Brian Smith Generate random vectors (continuous number) with a fixed sum Apr 24 Bert Gunter Generate random vectors (continuous number) with a fixed sum Apr 24 Duncan Murdoch Generate random vectors (continuous number) with a fixed sum Apr 24 Duncan Murdoch Generate random vectors (continuous number) with a fixed sum Apr 24 Duncan Murdoch Generate random vectors (continuous number) with a fixed sum Apr 26 Duncan Murdoch Generate random vectors (continuous number) with a fixed sum Apr 26 Bert Gunter Generate random vectors (continuous number) with a fixed sum Apr 26 Duncan Murdoch Generate random vectors (continuous number) with a fixed sum Apr 26