简单问题,快速解答,大大地加分

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:06:15
生成7个1-10之间的随机数,要求随机且不重复。
Sample_Size=7;
Population_Size = 10;
后面继续
做好以后更多加分在线等
对了,用For循环+ rand()函数产生随机数,应该就够了吧?用在MATLAB里面的,一般的C语言还能看懂,别的就不行了
重点就在“不重复”,1楼的回复用了“this.getNum();//判断是否有相同数字 ”,我怎么用到别的地方呢?
2楼,随机当然可以不重复,设想“从一个盆里拿编了号的球(1-10),拿出来就不放回去,拿7次”(事实上我在用MATLAB写这个东西)

Matlab程序。

x1=rand(1,7) %产生7个0~1之间的随机数
x2=10*x1 %扩大10倍,成为0~10之间的随机数【注意不是1~10啊】
disp('integer')
x3=ceil(x2)%向上取整,即只进不舍,例如0.1变为1。【1~10之间的随机数】
disp('sort')
x4=sort(x3) %从小到大排序
ct=100; %随便设定的初始值
while ct~=0
ct=0;
for i=1:6
if x4(i)==x4(i+1) %相邻数字进行比较
x5=ceil(10*rand);%产生1个1~10之间的随机数
x4(i)=x5;%替换原来的重复数字
x4=sort(x4)%再重新排序
ct=ct+1;%进行计数,使ct=1,即ct~=0,重新循环。
else
end
end
end

mm(1,:)=x4 %把结果传递给mm矩阵,以便统计每个数字出现的概率,共运行了20次,每次运行时,手动改变行的数字。用:>> plot(mm,'o')可以观测到每个数字出现的几率是一样的。

mm =

1 2 3 5 6 8 9
2 3 4 5 7 9 10
1 2 4 5 6 7 8
1 2 3 5 7 9 10
1 2 3 4 8 9 10
1 2 3 4 6