将N个学生分为G组

代码:


% %分组表
% %%考试分组
%%考试分组
%随机性
N=69;%69个人
G=4;%分组数目
data=1:N;%每个人的初始索引

%%给每个人随机分配索引
data_index=zeros(1,N);
for loop=1:N
    index=randi(N-loop+1);
    data_index(loop)=data(index);
    data=data(find(data~=data(index)));
end
data_index
last_num=fix(N/G);%最后一组的人数
if(mod(N,G))
    last_num=fix(N/G)+(N-G*fix(N/G));
end
%输出分组结果
clc;
disp('输出分组结果');
for lp=1:G
    disp(['第',num2str(lp),'组']);
    if(lp~=G)
    disp(data_index(1,1+(lp-1)*fix(N/G):lp*fix(N/G)));
    data_index(2,1+(lp-1)*fix(N/G):lp*fix(N/G))=lp;
    end
    if(lp==G)
        disp(data_index(1,1+(lp-1)*fix(N/G):1+(lp-1)*fix(N/G)+last_num-1));
        data_index(2,1+(lp-1)*fix(N/G):1+(lp-1)*fix(N/G)+last_num-1)=lp;
    end
    
end

结果:
在这里插入图片描述

一维寻优,求函数最小值点
代码:


%一维寻优,成功失败法
%%生成数据
x=-pi:1/1000:2*pi;
%y=sin(x);
y=x.*x-4.*x+1;
data(1,:)=x;
data(2,:)=y;
plot(data(1,:),data(2,:));

%%计算
M_max=length(data);
y=y+rand(1,M_max)/100;
x0=99;%开始点索引
h=1/1000;%步长
error=10^-30;
x0_next=x0+h/(1/1000);%下一个点的索引
figure;
plot(x,y);hold on;
lp1=0;
while(x0_next<M_max&&abs(data(2,x0)-data(2,x0_next))>error)
    if(x0_next<M_max&&data(2,x0_next)<data(2,x0))
        lp1=lp1+1;
        disp(strcat(strcat('第',num2str(lp1)),'次'))
        h=2*h;
        x0=x0_next;
        x0_next=x0_next+floor(h/(1/1000));
        if(x0_next>M_max)
            x0_next=x0_next-floor(h/(1/1000));
            continue;
        end
        plot(data(1,x0_next),data(2,x0_next),'r+');
        hold on;
        pause(0.5)
    end
    if((x0_next<M_max&&data(2,x0_next)>data(2,x0)))
        x0=x0_next-floor(h/(1/1000));
        h=h/20;
        x0_next=x0+floor(h/(1/1000));
    end  
end
plot(data(1,x0),data(2,x0_next),'b*');
        pause(0.5)
disp(data(2,x0))

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值