盧鈺松 陸尚輝 黃曉航
摘要:《概率論與數(shù)理統(tǒng)計(jì)》課程是數(shù)學(xué)類專業(yè)的一門專業(yè)基礎(chǔ)課程.本文通過實(shí)例,闡述如何根據(jù)信息與計(jì)算科學(xué)專業(yè)特點(diǎn),將概率統(tǒng)計(jì)課程與信息與計(jì)算科學(xué)專業(yè)其他課程相結(jié)合,設(shè)計(jì)概率統(tǒng)計(jì)實(shí)驗(yàn),開展實(shí)踐教學(xué)活動(dòng)。
關(guān)鍵詞:概率論與數(shù)理統(tǒng)計(jì);實(shí)驗(yàn)設(shè)計(jì);實(shí)踐教學(xué)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2015)51-0236-03
一、引言
概率論與數(shù)理統(tǒng)計(jì)是研究和揭示隨機(jī)現(xiàn)象統(tǒng)計(jì)規(guī)律性的一門數(shù)學(xué)學(xué)科[1],是信息與計(jì)算科學(xué)專業(yè)的一門必修課程.隨著大數(shù)據(jù)時(shí)代的到來,在計(jì)算科學(xué)及計(jì)算機(jī)科學(xué)領(lǐng)域內(nèi),統(tǒng)計(jì)知識(shí)和統(tǒng)計(jì)方法的應(yīng)用已越來越多,越來越廣泛。幾年來,在信息與計(jì)算科學(xué)專業(yè)的《概率論與數(shù)理統(tǒng)計(jì)》課程教學(xué)中,筆者常思考如何結(jié)合現(xiàn)代信息科學(xué)的需求,在實(shí)踐教學(xué)環(huán)節(jié)中結(jié)合實(shí)際需要,設(shè)計(jì)與專業(yè)其他課程相結(jié)合的實(shí)驗(yàn)內(nèi)容。這樣在實(shí)踐教學(xué)中,一方面能有效學(xué)習(xí)概率統(tǒng)計(jì)知識(shí)和方法,另一方面能不斷提高學(xué)生實(shí)際應(yīng)用能力,便于今后在工作中能順利解決類似問題。
二、實(shí)踐中的案例
1.模擬實(shí)證案例。“拋硬幣”實(shí)驗(yàn)是概率論中一個(gè)經(jīng)典實(shí)驗(yàn),在實(shí)踐教學(xué)中利用計(jì)算機(jī)模擬該實(shí)驗(yàn),讓學(xué)生通過實(shí)驗(yàn)進(jìn)一步體會(huì)頻率的穩(wěn)定性,有助于概率這一概念的理解。在教學(xué)中筆者將該實(shí)驗(yàn)設(shè)計(jì)為:利用Java軟件實(shí)現(xiàn)“拋硬幣”實(shí)驗(yàn),這樣即開展了模擬實(shí)驗(yàn),又鞏固了專業(yè)知識(shí),同時(shí)激發(fā)學(xué)生主動(dòng)思考探索,提高學(xué)生學(xué)習(xí)的興趣。以下是該實(shí)驗(yàn)的Java程序:
import java.math.*;
import java.util.Random;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class yingbi
{
BufferedImage table1;
BufferedImage zheng;
BufferedImage fan;
private Button one = new Button("開始扔");
private Button two = new Button("停止");
private final int TABLE_WIDTH = 800;
private final int TABLE_HETGHT = 800;
Timer timer;
JFrame f = new JFrame("扔硬幣");
// 畫板對(duì)應(yīng)的Canvas組件
ChessBoard chessBoard = new ChessBoard();
Random rand = new Random();
int a = 0;
int b = 0;
int c = 5;
int zongshu = 0;
int number = 0;
double pro = 0;
public void init()throws Exception
{
JPanel p = new JPanel();
table1 = ImageIO.read(new File("table1.jpg"));
zheng = ImageIO.read(new File("image/H.gif"));
fan = ImageIO.read(new File("image/T.gif"));
chessBoard.setPreferredSize(new Dimension(
TABLE_WIDTH , TABLE_HETGHT));
FListener F = new FListener();
SListener S = new SListener();
one.addActionListener(F);
two.addActionListener(S);
f.addWindowListener(new myListener());
p.add(one);
p.add(two);
f.add(chessBoard);
timer = new Timer(100, F);
//timer.start();
f.pack();
f.add(p , BorderLayout.SOUTH);
f.setVisible(true);
chessBoard.repaint();
}
class myListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class FListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
timer.start();
zongshu = zongshu +1;
//System.out.println("z"+zongshu);
c = Math.random()>0.5?1:0;
if(c==0)
{
number=number+1;
}
chessBoard.repaint();
}
}
class SListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
timer.stop();
if(zongshu!=0)
{
pro = (double)number/zongshu;
System.out.println("正面總數(shù)為"+number);
System.out.println("總?cè)哟螖?shù)為"+zongshu);
System.out.println("模擬概率為:"+pro);
}
chessBoard.repaint();
}
}
public static void main(String] args)throws Exception
{
yingbi yb = new yingbi();
yb.init();
}
class ChessBoard extends JPanel
{
// 重寫JPanel的paint方法,實(shí)現(xiàn)繪畫
public void paint(Graphics g)
{
// 將繪制背景圖片
g.drawImage(table1 , 0 , 0 , null);
if(c == 0)
{
a = (int)rand.nextInt(500)+40;
b = (int)rand.nextInt(500)+40;
g.drawImage(zheng ,a,b,null );
}
if(c == 1)
{
a = (int)rand.nextInt(500)+40;
b = (int)rand.nextInt(500)+40;
g.drawImage(fan,a,b,null );
}
}
}
}
通過此實(shí)驗(yàn),學(xué)生既進(jìn)一步了解了“拋硬幣”實(shí)驗(yàn)的原理,又鞏固了Java編程的知識(shí)。當(dāng)學(xué)生通過自己的思考和努力實(shí)現(xiàn)這一實(shí)驗(yàn),還會(huì)產(chǎn)生強(qiáng)烈的成就感,能激發(fā)學(xué)生的學(xué)習(xí)興趣。
2.綜合訓(xùn)練案例。綜合訓(xùn)練實(shí)驗(yàn)主要是從日常生活中提煉實(shí)際問題,要求學(xué)生利用統(tǒng)計(jì)知識(shí)和統(tǒng)計(jì)方法解決問題。下面是一個(gè)實(shí)驗(yàn)案例:
問題:令在線考試系統(tǒng)中試卷份數(shù)為M,參加考試的考試人數(shù)為N,現(xiàn)考慮至少有兩個(gè)考生抽到同一份試卷的概率P為多少?
當(dāng)人數(shù)N=30,試卷份數(shù)M=300時(shí),下面利用MATLAB計(jì)算,通過隨機(jī)模擬的方法來計(jì)算P的值為:
N=30;%設(shè)置考試人數(shù)
M=300;%設(shè)置試卷數(shù)據(jù)庫(kù)記錄數(shù)
TestTime=100000;%模擬的次數(shù)10萬次
Count=0;%統(tǒng)計(jì)重復(fù)的試卷記錄數(shù)
for loop=1:TestTime
Number=floor(rand(1,N)*M);%用產(chǎn)生n個(gè)隨機(jī)數(shù)
Number=sort(Number);
for i=1:n-1
flag=Number(i)-Number(i+1);%看排序后相鄰有沒有相同的數(shù)
if flag==0 %如果有,就說明此次模擬出現(xiàn)了相同試卷
Count=Count+1;
break
end
end
end
q=(TestTime-Count)/TestTime;%算出最終概率
p=1-q;
輸出結(jié)果P=0.7754,因此當(dāng)N=30,M=300時(shí),P=0.7754,再以M=500/800/1000進(jìn)行統(tǒng)計(jì),得P=0.5851/0.4217/0.3562
該實(shí)驗(yàn)將概率問題用MATLAB軟件進(jìn)行計(jì)算,通過計(jì)算可以發(fā)現(xiàn)在設(shè)計(jì)在線考試系統(tǒng)時(shí)可通過增加試卷數(shù)據(jù)庫(kù)的記錄數(shù)到達(dá)有效降低試題重復(fù)率的效果。
三、總結(jié)
在信息與計(jì)算科學(xué)專業(yè)《概率論與數(shù)理統(tǒng)計(jì)》課程實(shí)踐教學(xué)中,有效的將概率統(tǒng)計(jì)問題與計(jì)算機(jī)相關(guān)課程有機(jī)結(jié)合,設(shè)計(jì)出適合專業(yè)特點(diǎn)的實(shí)踐教學(xué)內(nèi)容能較好的激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生喜歡實(shí)驗(yàn),主動(dòng)思考,從而提高教學(xué)效果。
參考文獻(xiàn):
[1]浙江大學(xué),盛驟.概率論與數(shù)理統(tǒng)計(jì)[M].高等教育出版社,2008.
[2]周興才.應(yīng)用型本科院校概率論與數(shù)理統(tǒng)計(jì)教學(xué)研究[J].襄樊學(xué)院學(xué)報(bào),2011,(5):60-63
[3]榮騰中,黃光輝,等.信息與計(jì)算專業(yè)概率統(tǒng)計(jì)課程的實(shí)踐教學(xué)研究[J].高等理科教育,2010,(4):108-111
[4]曾德強(qiáng).在概率統(tǒng)計(jì)中引入數(shù)學(xué)實(shí)驗(yàn)的教學(xué)探討[J].保山師專學(xué)報(bào),2009,(5):27-30