问题 解答题

甲、乙两班各派2名同学参加年级数学竞赛,参赛同学成绩及格的概率都为0.6,且参赛同学的成绩相互之间没有影响,求:

(1)甲、乙两班参赛同学中各有1名同学成绩及格的概率;

(2)甲、乙两班参赛同学中至少有1名同学成绩及格的概率.

答案

(1)∵甲班参赛同学恰有1名同学成绩及格的概率为C21×0.6×0.4=0.48

乙班参赛同学中恰有一名同学成绩及格的概率为C21×0.6×0.4=0.48

由于参赛同学的成绩相互之间没有影响,是相互独立的,

∴甲、乙两班参赛同学中各有1名同学成绩及格的概率为

P=0.48×0.48=0.2304

(2)解法一:甲、乙两班4名参赛同学成绩都不及格的概率为0.44=0.0256

故甲、乙两班参赛同学中至少有一名同学成绩都不及格的概率为

P=1-0.0256=0.9744

解法二:甲、乙两班参赛同学有一人成绩及格的概率为C41×0.6×0.4=0.1536

甲、乙两班参赛同学中恰有2名同学成绩及格的概率为C42×0.62×0.42=0.3456

甲、乙两班参赛同学中恰有3名同学成绩及格的概率为C42×0.62×0.42=0.3456

甲、乙两班4同学参赛同学成绩都及格的概率为0.64=0.1296

故甲、乙两班参赛同学中至少有1名同学成绩及格的概率为

P=0.1536+0.3456+0.3456+0.1296=0.9744

单项选择题
填空题

【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。 在Date类中设计如下重载运算符函数: Date operator + (int days) : 返回某日期加上天数得到的日期。 Date operator - (int days) : 返回某日期减去天数得到的日期。 int operator - (Date&b): 返回两日期相差的天数。 【程序】 #include<iostream.h> int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; //day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date { int year, month, day//年,月,日 int leap(int); //判断是否闰年 int dton(Date&) Date ntod(int) public: Date() { } Date (int y, int mint d) I year = y; month = m; day = d;} void setday(intd){day = d;} void setmonth(int m) {month = m;} void setyear(int y) {year =y;} int getday() {return day;} int getmonth() {return month:} int getyear() {return yea;} Date operator + (int days) //+运算符重载函数 { static Date date; int number = (1) date = ntod(number) return date } Date operator - (int days) //-运算符重载函数 { staffs Date date; int number= (2) ; number - = days; date = ntod(number) return date; } int operator - (Date &b) //-运算符重载函数{ int days= (3) ; return days; } void disp() { cout<<year<<"."<<month<<". "<<day<<endl; } }; int Date: :leap( int year) if( (4) ) //是闰年 return 1;//不是闰年 else return0: } int Date:: dton( Date &d) //求从公元0年0月0日到d日期的天数 { inty,m,days =0; for(y=1;y<=d. year;y++) if( (5) )days+ =366; //闰年时加366天 else days + = 365;//非闰年时加365天 for(m =0;m<d. month-1;m++) if( (6) ) days += day_tab[1] [m]; else days +=day_tab[0] [m]; days + = d. day; return days; } Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期 { int y=1,m = 1,d,rest = n,lp; while(1) { if(leap(y)) if(rest<= 366) break; else rest - = 366; else //非闰年if(rest = 365 ) break;else rest-=365; y++; } y--; Ip = leap(y);while(1) { if(lp)//闰年 if(rest>day_tab[1] [m - 1]) rest -= day_tab[1] [m-1]; else break; else //非闰 if(rest>day_tab[0] [m -1]) rest -= day_tab[0] [m-1]; else break; m++; } d = rest; return Date(y;m,d); } void main() { Date now(2003,10,1) ,then(2005,6,5); cout<<" now:";now. disp(); cout<<" then:";then. disp(); cout<<"相差天数:"<<(then-now)<<endl; Date dl = now + 1000,d2 = now - 1000; cout<<"now + 1000:" ;d1. disp(); cout<<" now - 1000:" :d2. disp(); }