随机生成100个0~2的数字,要完全打乱的,所有的数字的和等于100

随机生成100个0~2的数字,要完全打乱的,所有的数字的和等于100,请问代码应该怎么设计?

这个问题你已经问了好几次了,方法是先随机生成数字,然后根据平均值调整下。

用Math方法随机生成0-2的数
用While语句判断
少于100就加
多于100就减
只有等于100才输出

1、第1-99个数,范围取:(1)n< (100-已产生的数和) and (0<n<2)
2、第100个数=(100-已产生的数和)。
3、通过递归,比较方便。

每生成一个随机数,都计算平均值,如果平均值>1,生成0;<1生成2,=1随机生成,

用java写的
public class AddNum {
public static void main(String[] args) {
int num=0;
int x=0;
while(!(num==100)){
if(num x=(int)(Math.random()*2);
num=num+x;
System.out.println(num);
}else if(num>100){
x=(int)(Math.random()*2);
num=num-x;
System.out.println(num);
}
}
System.out.println(num);
}

我写的这个计算10各还好,一百个数的话电脑算不过来,参考一下

#include
#include
#include

int main(){
int sum=0,t;
int a[10];
srand((unsigned)time(NULL));
while(sum!=10){
sum=0;
for(int i=0;i<10;i++){
t=rand()%11;
sum+=t;
a[i]=t;
}

}
for(int i=0;i<10;i++){
    printf("%2d",a[i]);
    if (i!=9) {
        printf(" +");
    }

}
printf(" = %d\n",sum);

}

我觉得 就是 循环 当合计大于等于100结束。 每次用100* (0~0.02)之间的随机数,最后一次取余

要想和等于100,那生成的0和2数量要相等,1数量无所谓