基于上课点名问题的简易网络模型【“自然哲学”中的matlab原理_1】

摘要:在大学课堂、特别是在公共课上,当老师和学生之间几乎都不认识的情况下,哪一些学生被抽中的概率会更高一些呢?我们通过建立一个简单的网络模型,来对这一事件进行简单的预测模拟。

关键词:点名;网络;概率

目录

前言

1.班级网络的构建

1.1初始网络构建

1.2学生“曝光度”的变化

2 “曝光率”的描述

3 总结


前言

众所周知,在大学课堂上老师点名是一件很普遍的事情,有的点名是为了抽人回答问题,而有的点名可能就是为了查勤。那么,在那些老师和同学之间都不认识的大课上,哪一些学生被抽中的概率会大一些呢。

本文将以思想政治课为例,在该课上,由于是公共课属性,一个老师通常会对多个班进行授课,因此老师和学生之间很难建立起熟悉的关系。除此之外,为了完成课业考察,老师通常会把一个班的学生分为几个小组,每个小组完成一个课题的任务,然后老师会在小组之中随机抽选一名同学来进行任务报告。

如果我们把一个班的学生看作一个网络的话,老师就是把这个大网络随机均分为几个小网络,而在每个网络之中随机的找出一名学生进行报告。由于是在每个随机组成的小组中,随机的抽查一名学生,这也最大可能的完成了抽查机会的均分。在一定程度上,达到了对每一名学生都进行“威慑”的效果,即尽可能的使每一名学生都会去认真的准备。

我们可以把该课堂网络比作一个多局域世界网络,我们认为那些度高的点更容易被选中,即一些“曝光度”高的学生更容易被抽查。而“曝光度”的提升,往往来自于多个方面,有可能是由于缺勤、课堂表现活跃、亦或名字比较有特点等等原因。除此之外,在每个小组中的第一位和最后一名学生,老师为了表现出非刻意性,通常也不会对其进行抽查。

1.班级网络的构建

假设该班有6个小组,每个小组由10人组成。由于其与多局域世界网络之间存在相当相似性,我们将用多局域世界网络对其描述。

1.1初始网络构建

我们先编写一个由6个局域网络构成,每个网络中有10个点的大网络。为了均分机会,我们定义每个小网络中有20条边,即每个点都有一条边相连,每一个点的初始度相等。其子函数程序如下所示:

function a=generategraph(m0,e0); 
if e0>m0*(m0-1)/2
    fprintf('输入数据m0,e0不匹配'); return
end
a=zeros(m0); 
ra=rand(m0); 
ra=tril(ra); 
ra([1:m0+1:end])=0; 
[sra,ind]=sort(nonzeros(ra),'descend');
p=sra(e0);  
a(ra>=p)=1; 
a=a+a';

 m0代表局域网络个数,e0代表每个局域网络的边数。

1.2学生“曝光度”的变化

学生在老师那里每多留一次印象,我们定义为“曝光度”加一,在上文中我们已经提到 “曝光度”的来源多种多样。总而言之,每多增加一次“曝光度”,该点度加一。其子程序如下:

function b=addedge(a,m,alpha); 
b=a; n=length(a); 
for i=1:m
    deg=sum(b); 
    LP=(deg+alpha)/sum(deg+alpha); 
    pp=cumsum(LP); 
    rnum=randperm(n); 
    flag=1; 
    while flag<=n & deg(rnum(flag))==n-1
        flag=flag+1;
    end
    if flag==n+1, continue, end
    ind=find(pp>=rand); 
    if rnum(flag)~=ind(1) & b(rnum(flag),ind(1))==0 
        b(rnum(flag),ind(1))=1; b(ind(1),rnum(flag))=1;
    end   
end

其中,m代表增加“曝光度”的数,LP代表每一个点增加曝光度的概率,其数学函数表达式为:

 

 α为函数的调节系数,表示节点对边的吸引力,也就是某位同学增加“曝光度”概率的高低。

通过这个计算式可以看出,ki表示的是一个节点的度,而这个度越大,其吸引到新的度的概率也越大。这符合“富人俱乐部”的理念,即越是“有名”的学生,由于老师对其的重点关照,其也越容易变得更加“有名”。

2 “曝光率”的描述

综合上文,主程序如下:

clc, clear
m=6; m0=10; e0=20; p=0.3; q=0.2; r=0.25; s=0.05; u=0.2;
m2=10; alpha=0.5;
p=[p,q,r,s,u]; n=m;
pp=cumsum(p);
for i=1:m
    A{i}=generategraph(m0,e0); 
end
num(1:m)=m0; 
Tno=[]; Tuv=[]; 
for i=1:2000
    ind=find(pp>=rand); 
    switch ind(1)
       case 1
            n=n+1; A{n}=generategraph(m0,e0);   
            num(n)=length(A{n});
        case 2
            rn=randperm(n); k=rn(1); 
            A{k}=addedge(A{k},m2,alpha);
        otherwise
            [no,uv]=addlongedge(A,m4,alpha);
            Tno=[Tno,no]; 
            Tuv=[Tuv,uv];  
    end
end
A{1}=1;A{2}=1;%降低队首和队尾同学被抽中概率
B=blkdiag(A{:}); 
num=[0,num];  
cnum=cumsum(num); 
for i=1:length(Tno)
    u=cnum(Tno(1,i))+Tuv(1,i); 
    v=cnum(Tno(2,i))+Tuv(2,i);
    B(u,v)=1; B(v,u)=1;
end
dp=mydegree(B); 
d=dp(1,:)'; 
gd=(dp(2,:)/length(B))'; 
subplot(1,2,1), plot(d,gd,'-o')
xlabel('各同学的曝光次数'),ylabel('被抽中概率')

 其运行结果如下:

其中,由于队首和队尾的同学一般不会被抽中,因此通过A{1}=1;A{2}=1;将其初始化为原始值,即使其在课上增加“曝光度”,老师为了体现非刻意,他们也很难被抽中。

3 总结

可以看出,在该模型中,在中位数的同学反而更容易被抽中。这也不难理解,“曝光率”低的学生一般不爱发言,但也会准时上课,并没有什么违纪行为,老师自然不容易注意到。而“曝光率”高的学生,通常是给老师留下深刻印象,除了极少数是由于连续缺勤而造成的高“曝光率”,通常是由于这些学生上课发言比较积极,老师一般也不会抽出这些学生进行最终的报告。为了体现公共课的随机考察性,老师会倾向于抽取中位数的学生进行报告,即选择那种特征性较小的学生。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值