作业帮 > 综合 > 作业

现有两个奇数a、b,两个偶数c、d.用matlab编程,每次从四个数中随机选出两个数,共选六次,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 06:54:43
现有两个奇数a、b,两个偶数c、d.用matlab编程,每次从四个数中随机选出两个数,共选六次,
需保证一奇一偶,两奇,两偶,均为两次.请问该如何实现?
a=1;
b=3;
c=4;
d=8;
A=[a b];
B=[c d];
[A(round(rand)+1) B(round(rand)+1)]
再问: 没有实现循环选择6次的功能吧?
再答: for i=1:5 [A(round(rand)+1) B(round(rand)+1)] end
再问: 貌似不对啊,没有实现三种情况各发生两次的功能
再答: 之前没理解你的问题,做的是纯粹的随机过程。。。我做好了回你 a=1; b=3; c=4; d=8; tempv=1:4; for i=1:5 %%% Start if isempty(tempv) tempv=1:4; end tindex=ceil(rand*length(tempv)); switch tempv(tindex) case 1 pick=[a c]; case 2 pick=[a d]; case 3 pick=[b c]; case 4 pick=[b d]; end tempv(tindex)=[]; %%End pick end
再问: 很接近了...但运行结果没有出现两个奇数或两个偶数的情况,这是怎么回事呢?麻烦您再看看吧,谢谢了
再答: a=1; b=3; c=4; d=8; tempv=1:6; for i=1:7 %%% Start if isempty(tempv) tempv=1:6; end tindex=ceil(rand*length(tempv)); switch tempv(tindex) case 1 pick=[a c]; case 2 pick=[a d]; case 3 pick=[b c]; case 4 pick=[b d]; case 5 pick=[a b]; case 6 pick=[c d]; end tempv(tindex)=[]; %%End pick end %一共六个情况各一次,1奇1偶共4次,2奇一次,2偶一次