如何用R语言生成10个0至1之间随机数且要求他们的和为1?

Python0176

如何用R语言生成10个0至1之间随机数且要求他们的和为1?,第1张

x<-runif(10,min=0,max=1)#生成10个0到1的均匀分布

x<-x/sum(x)#每个随机数除以这十个数的总和

这样得到的10个随机数的和就是1了。

这里为了方便最初采用了0到1的均匀分布,实际上你可以采用任意的分布,只要将得到的十个数先平移至均为正数,再除以总和,就得到10个和为1的随机数。

当然,这10个数具体是什么分布就不讨论了。

1、第一步,调用runif()函数,这时函数内的值为6,生成6个随机数,如下图所示

2、第二步,再次调用runif()函数,runif(6)又生成6个随机数,如下图所示:

3、第三步,使用set.seed(12345)设置种子元素,然后调用runif(6),查看数据情况,如下图所示:

4、第四步,再次调用set.seed()函数,这时多加了一个6,如下图所示:

5、第五步,再次调用runif(6)函数,查看生成的6个随机数的不同,如下图所示:

6、第六步,再次调用set.seed()函数,这时是从1到9;然后调用runif()函数,如下图所示:

Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。Pascal也可以是指人名,它的取名原本就是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal,而不是编程工具。以法国数学家命名的pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。

Pascal语言还是一种自编译的语言,这就使它的可靠性大大提高了。