实数r范围是在有理数和无理数的范围内。实数可以分为有理数和无理数两类,或代数和超越数两类。实数集通常用黑正体字母R表示。R表示n维实数空间。实数是不可数的。数学中粗写的 R 指的是所有实数组成的实数集。
实际上是一个二进制的实现biset<-function(n){
one<-c(rep(0,n-1),1)
result<-one
final<-vector()
for(i in 1:(2^n-2)){
result<-result+one
while(sum(result==2)>0){
id<-which(result==2)
result[id-1]<-result[id-1]+1
result[id]<-0
}
final<-rbind(final,result)
}
dimnames(cc)[[1]]=NULL
return(rbind(one,final))
}
然后在控制台输入 >biset(8)
x<-runif(10,min=0,max=1)#生成10个0到1的均匀分布x<-x/sum(x)#每个随机数除以这十个数的总和
这样得到的10个随机数的和就是1了。
这里为了方便最初采用了0到1的均匀分布,实际上你可以采用任意的分布,只要将得到的十个数先平移至均为正数,再除以总和,就得到10个和为1的随机数。
当然,这10个数具体是什么分布就不讨论了。