# [R] Generate random numbers under constrain

Erich Neuwirth erich.neuwirth at univie.ac.at
Thu Nov 27 19:20:41 CET 2014

```You want random numbers within the n-dimensional simplex (sum xi <=1)
The easiest solution of course would be creating n-dimensions vectors
with iid uniform components on [0,1) and throwing away those
violating the inequality.
Since the volume of the n-dimensional simplex is 1/n! (factorial)
this becomes very wasteful even for low dimensions.

A possible  answer is to use the Dirichlet distribution from package lca)
since the uniform distribution on the simplex is a special case
of the Dirichlet distribution.

> On Nov 27, 2014, at 14:57, Jue Lin-Ye <jl.iccp at gmail.com> wrote:
>
> Hello! I am relatively new using R, but this is my contribution to the
> answer. How about using a Monte-Carlo method. Generate m numbers in the
> support [0,1], where m>n. Then constrain by constructing a loop that takes
> every one of the elements in the m sized vector and select the ones that
> sum up to one. If it is very uncommon to sum up to one, given the
> distribution that you use to generate the random numbers, you can construct
> a loop that generates as many random numbers as you need and then follow
> the steps
> 1.generate
> 2.select
>
> until you find a total of n number.
>
>> Dear all,
>> I use R 3.1.1 for Windows.
>> kindly how can I generate n number of random numbers with probability
> from [0,1]
>> and their sum must not be more than one
>> Ragia
>
> ​Best regards,​
>
> --
> Jue Lin-Ye
>
> ---------------------------------------------------------------
> Civil Engineering phD candidate
> Maritime Engineering Laboratory (LIM)
> Universitat Politècnica de Catalunya (UPC)
> C/Jordi Girona 1-3, Barcelona 08034 (Spain)
> -----------------------------------------------------------------
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help