firstnameset={'钱','张','李','王','赵','吴'}
secondnameset={'二','三','四','五','六','麻子'}
temp=randperm(6)
disp('抽签结果:')
person1=[cell2mat(firstnameset(temp(1))),cell2mat(secondnameset(temp(1)))]
person2=[cell2mat(firstnameset(temp(2))),cell2mat(secondnameset(temp(2)))]
disp(person1)
disp(person2)
你跑一跑就可以看到结果咯~
我觉得你编程的思路有问题,你最后计算概率是跳出循环后,算出一个甲的和乙的,然而,事实上,他们摸到白球的概率是累加的,而且每次的还不一样,例如,假设第一次是甲摸,那么甲摸到白球的概率为10/20,接下来乙摸,那么乙摸的话就要考虑甲摸到还是没有摸到,假如甲摸到,那么乙的概率就是(9/19),甲没有摸到,那么就有(10/19),而这两个概率应该是在甲摸到与没摸到的前提下,就是在什么发生的条件下乙摸到白球的概率,看来计算还真是挺复杂的。不过我可以告诉你最终的结果应该是两者一样的,都为1/2.
就如同咱们让五个人抽签,分别为1,2,3,4,5,那么就有每一个人抽到每一个数的概率,而且抽取后也不放回,每一个人的概率都为1/5。
clcclear
Name={'Jack ','Marry','Tom ','Peter','Rose ','Tim ','Kate '}
Mark={72,58,34,89,97,92,78} %同学得分
[sh,sz]=size(Name)
Rank=cell(1,sz)
for i=1:10
a{i}=89+i%90分以上
b{i}=79+i%80多
c{i}=69+i%70多
d{i}=59+i%60多
end
S=struct('Name',Name,'Marks',Mark,'Rank',Rank)%创建一个构架数组
for i=1:sz
switch S(i).Marks
case a
S(i).Rank='exellent'
case b
S(i).Rank='good'
case c
S(i).Rank='not bad'
case d
S(i).Rank='pass'
otherwise
S(i).Rank='fail'
end
end
disp(['学生姓名 ',' 得分 ',' 等级'])disp(' ')
ii=round(rand*6)+1 %产生随机1-7整数
disp([S(ii).Name,blanks(6),num2str(S(ii).Marks),blanks(6),S(ii).Rank]) %显示这个随机抽取的人的成绩和等次
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)