[R] Simulating mid-points from a defined range

Sergei Ko
Wed, 04 Jun 2025 13:02:59 -0000

Hi!
It's possible I'm wrong. But for me it looks like:
n_sample <- 3000000
v <- round(runif(n_sample, 0, 100), 2)
m <- matrix(v, ncol = 10)
m_s <- t(apply(m, 1, sort))
m_d <- t(apply(m_s, 1, diff))
m_5 <- m_d>=5
f <- rowSums(m_5) == 9
sum(f)
res <- m_s[f, ]
Regards,
Sergiy

On Wed, Jun 4, 2025 at 1:56?PM Brian Smith <briansmith199312 at gmail.com>
wrote:

> Okay, I think I found the reason. This is due to accumulation of nine
> 5s in the cumsum. Thanks again for the elegant solution.
>
> But I wonder, if the solution is simple then what is the significance
> of the Research paper by Bentley and Saxe naming ?Generating sorted
> lists of random numbers? which Richard mentioned?
>
> On Wed, 4 Jun 2025 at 17:54, Brian Smith <briansmith199312 at
gmail.com>
> wrote:
> >
> > Hi Peter,
> >
> > Could you please help me to understand what is the basis of choosing
> > 55 in runif(10,0,55))?
> >
> > Thank you!
> >
> > On Wed, 4 Jun 2025 at 02:45, peter dalgaard <pdalgd at
gmail.com> wrote:
> > >
> > > Can't you just generate 10 values in (0,55), sort them,
generate the
> distances, add 5 and cumulate?
> > >
> > > > x <- sort(runif(10,0,55))
> > > > d <- diff(x)+5
> > > > cumsum(c(x[1],d))
> > >  [1] 12.27815 21.21060 26.37856 36.03812 41.97237 57.02945
67.86113
> > >  [8] 75.74085 81.28533 98.30792
> > >
> > >
> > > > On 3 Jun 2025, at 09.21, Brian Smith <briansmith199312 at
gmail.com>
> wrote:
> > > >
> > > > Hi Richard,
> > > >
> > > > Thanks for your insight.
> > > >
> > > > As I mentioned in one of my earlier emails to the group, I
imposed a
> > > > constraint of accuracy up to two decimal places in order to
obtain a
> > > > finite set of possible values. For instance, if I were to
round
> values
> > > > to zero decimal places, the number of unique sequences that
could be
> > > > generated would be strictly finite and quite limited.
Therefore, I
> > > > chose a precision of two decimal places to allow for a
larger but
> > > > still finite number of possibilities.
> > > >
> > > >
> > > > Now, my question is: how can this accuracy constraint be
imposed
> effectively?
> > > >
> > > > Is the only practical method to generate samples, round each
to two
> > > > decimal places, and then check for duplicates to ensure
uniqueness?
> If
> > > > so, I?m concerned this might be inefficient, as many samples
could be
> > > > discarded, making the process time-consuming.
> > > >
> > > > Is there a better or more efficient way to directly enforce
this
> > > > constraint while generating the values?
> > > >
> > > > ________________________________
> > > >
> > > > Additionally, could you please elaborate on your suggestion
regarding
> > > > imposing minimum gap constraints by subtracting and then
adding back
> > > > certain gaps?
> > > >
> > > >
> > > > For example, based on your earlier guidance, one possible
sequence I
> > > > obtained is:
> > > >
> > > >
> > > > 10.07181, 14.49839, 14.74435, 18.75167, 42.70361, 55.79623,
63.40264,
> > > > 68.62261, 92.49899, 98.29308
> > > >
> > > >
> > > > Now, I?d like to post-process this sequence to enforce a
minimum
> > > > difference constraint of, say, 5 units between values
(including both
> > > > lower and upper bounds).
> > > >
> > > > What would be the appropriate way to modify the sequence to
impose
> > > > this kind of constraint?
> > > >
> > > >
> > > > Many thanks for your time and insight.
> > > >
> > > > On Tue, 3 Jun 2025 at 10:42, Richard O'Keefe <raoknz
at gmail.com>
> wrote:
> > > >>
> > > >> PS I forgot about the weird gaps requirement.
> > > >> What you do is subtract the gaps off and then add them
back.  I
> hope that is clear.
> > > >>
> > > >> On Sun, 1 Jun 2025 at 6:52?AM, Brian Smith <
> briansmith199312 at gmail.com> wrote:
> > > >>>
> > > >>> Hi,
> > > >>>
> > > >>> Let say I have a range [0, 100]
> > > >>>
> > > >>> Now I need to simulate 1000 10 mid-points within the
range with
> > > >>> accuracy upto second decimal number.
> > > >>>
> > > >>> Let say, one simulated set is
> > > >>>
> > > >>> X1, X2, ..., X10
> > > >>>
> > > >>> Ofcourrse
> > > >>>
> > > >>> X1 < X2 < ... <X10
> > > >>>
> > > >>> I have one more constraint that the difference
between any 2
> > > >>> consecutive mid-points shall be at-least 5.00.
> > > >>>
> > > >>> I wonder if there is any Statistical theory
available to support
> this
> > > >>> kind of simulation.
> > > >>>
> > > >>> Alternately, is there any way in R to implement
this?
> > > >>>
> > > >>> ______________________________________________
> > > >>> R-help at r-project.org mailing list -- To
UNSUBSCRIBE and more, see
> > > >>> https://stat.ethz.ch/mailman/listinfo/r-help
> > > >>> PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> > > >>> and provide commented, minimal, self-contained,
reproducible code.
> > > >
> > > > ______________________________________________
> > > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and
more, see
> > > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > > PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> > > > and provide commented, minimal, self-contained, reproducible
code.
> > >
> > > --
> > > Peter Dalgaard, Professor,
> > > Center for Statistics, Copenhagen Business SchoolSolbjerg Plads
3,
> 2000 Frederiksberg, Denmark
> > > Phone: (+45)38153501
> > > Office: A 4.23
> > > Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
> > >
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]