计算24点游戏c

2024-05-07

计算24点游戏c(精选6篇)

篇1:计算24点游戏c

1设计内容

有2、3、4、5、6、7、8、9、10、J、Q、K、A共13张牌,编一程序,判断对任意给定的4张牌,能否在进行加、减、乘、除运算后,其运算结果等于24。其中J按11计算,Q按12计算,K按13计算,A按1计算。如果能得到结果24,则输出可得到该结果的计算表达式。

若输入数据符合要求,且经过加、减、乘、除运算后,运行结果能得到24,如输入5,5,5,1,则显示可得到该结果的计算表达式,如5*(5-(1/5))。

若输入数据小于1或者大于13或者不是整数时,提示输入错误。若输入不能运算出24的数据,如1,1,1,1,则显示经过加、减、乘、除运算后,运行结果不能得到24。

2程序设计

2.1存储结构设计

由于要储存的数据不多,主要是储存所输入的4个整数,所以采用一维数组(a[4])储存。而计算过程会出现小数,所以数据类型采用浮点型(float)。

2.2主要程序设计

程序采用穷举法,对输入的4个数进行排列,有 4!=24种。用for来循环,if来判断,算法如下。for(i=0;i<4;i++)for(j=0;j<4;j++)if(j!=i)for(k=0;k<4;k++)if(k!=j && k!=i)for(l=0;l<4;l++)if(l!=i && l!=j && l!=k){ calculate(a[i],a[j],a[k],a[l]);}

用if来判断括号的类型,然后作出不同顺序的运算。括号有两对,主要有两种类型:一种是()()型,如(a+b)*(c+d);另一种是(())型,继续细分又有

种类型,如下a*(b*(c+d)),(a*(b+c))*d,a*((b+c)*d),((a+b)*c)*d。算法如下 if((!(i==3 && b==0))&&(!(j==3 && c==0))&&(!(k==3 && d==0))){ sum1=arithmetic(i,a,b);sum2=arithmetic(j,sum1,c);sum3=arithmetic(k,sum2,d);} if(k==2){ sum1=arithmetic(i,a,b);sum2=arithmetic(j,c,d);sum3=sum1*sum2;} if(k==3){ sum1=arithmetic(i,a,b);sum2=arithmetic(j,c,d);if(sum2!=0){ sum3=sum1/sum2;} } 在输入方面,按要求,数据类型是 1 至13 的整数,符合则进行运算,不符合则重新输入。用if语句来实现,如下 if(a[i]<1 || a[i]>13 || a[i]!=int(a[i]))

在输出方面,运算结果等于 24就输出,利用调用的参数判断输出形式,有5种:(a+b)*(c+d),a*(b*(c+d)),(a*(b+c))*d,a*((b+c)*d),((a+b)*c)*d。算法如下:

void show(int type,int i,int j,int k,float a,float b,float c,float d){ if(type==1){

if(j==4 || j==5){

if(k==4 || k==5)

cout<else

cout<<“(”<else if(k==4 || k==5)

cout<}

else

cout<<“((”<

} if(type==2 || type==3){ cout<<“(”<

程序流程框图如图2-3所示:

图2-3 3程序调试

3.1测试用例

开始运行时的页面如图4-1所示:

图4-1 首先,测试程序能不能运算出正确的结果,输入数据6,6,6,6,出现了44组符合要求的解,如图4-2所示。

接着输入数据2,9,7,14,提示输入错误,重新输入2,7,5,13,能得到正确运行结果,如图4-2所示。

输入4,9,11,13,不能运算得到24,显示“你所输入的数,经过四则运算后,不等于24点”,如图4-3所示。

输入5,5,5,1,这组数据要运算得到24,一定会出现小数,因为只有一种运算,即5*(5* /“ 4个运算符号选3个,有4*4*4=64种

for(j=0;j<6;j++)

// 3种运算符排列

有 3!=6 种

for(k=0;k<6;k++)

{

if((!(i==3 && b==0))&&(!(j==3 && c==0))&&(!(k==3 && d==0)))// 括号的类型为(()){ // 3为做除法运算的标志,除数为 0 时,跳过

= =

sum1=arithmetic(i,a,b);

//a,b做 以 i 为标志的运算,然后把值赋给sum1

sum2=arithmetic(j,sum1,c);//sum1,c做 以 j 为标志的运算,然后把值赋 给sum2

sum3=arithmetic(k,sum2,d);//sum2,d做 以 k 为标志的运算,然后把值赋给sum3

if(fabs(sum3-24)<0.001)//判断能否运算出24,出现小数时,能够包含在内

{

check++;

//标志能运算出24

show(1,i,j,k,a,b,c,d);// 输出运算出 24 的表达式

}

}

if(k==2)//()*()

{

sum1=arithmetic(i,a,b);//a,b做 以 i 为标志的运算,然后把值赋给sum1

sum2=arithmetic(j,c,d);//sum1,c做 以 j 为标志的运算,然后把值赋给sum2

sum3=sum1*sum2;

if(fabs(sum3-24)<0.001)//出现小数时,能够包含在内

{

check++;

//标志能运算出24

show(2,i,j,k,a,b,c,d);// 输出运算出 24 的表达式

}

}

if(k==3)// 括号的类型为()()

{

sum1=arithmetic(i,a,b);//sum1,c做 以 j 为标志的运算,然后把值赋给sum2

sum2=arithmetic(j,c,d);//sum1,c做 以 j 为标志的运算,然后把值赋给sum2

if(sum2!=0)

{

sum3=sum1/sum2;

if(fabs(sum3-24)<0.001)//出现小数时,能够包含在内

{

check++;

//标志能运算出24

show(3,i,j,k,a,b,c,d);

// 输出运算出 24 的表达式

}

}

}

} }

void main(){ int i,j,k,l,m=0;

float a[4];

//储存所输入的 4个 整数

while(m==0){ m=1;

cout<< ”请输入4 个 1--13 的整数:“<

for(i=0;i<4;i++){

cin>>a[i];

if(a[i]<1 || a[i]>13 || a[i]!=int(a[i]))//判断是否为符合要求的整数

{ if(m!=0){

}

cout<<”输入错误,请重新输入!“<

m=0;} } for(i=0;i<4;i++)

//4的排列 4!=24,每中情况调用calculate

for(j=0;j<4;j++)

if(j!=i)

//第2数和第1个数不能重复

for(k=0;k<4;k++)

if(k!=j && k!=i)//第3数和第1,2个数不能重复

for(l=0;l<4;l++)

if(l!=i && l!=j && l!=k)//第4数和第1,2,3个数不能重复

{ calculate(a[i],a[j],a[k],a[l]);//调用calculate函数,进行进行加、减、乘、除运算

}

} if(check==0)//不能运算出24 { cout<<”你所输入的数,经过四则运算后,不等于24点"<

篇2:计算24点游戏c

2012年 9 月 1 日

目录

一题目及要求 二项目概述 三项目分析 四程序思路分析

五总结 六答辩记录 七教师意见

一 题目及要求 计算24点游戏

输入四个数,通过加减乘除计算出24,显示计算过程,并提示成功信息。二 项目概述

我设计的是24点游戏,它功能是输出给定4个数运算得出24的算式。大概思路很简单,就是穷举4个数字排列组合后的所算式,选择其中结果为24的,并筛选符合数学法则的输出,难点在于穷举 三项目分析

通过题目这是大家很熟悉的游戏,大家也都知道直接计算很难,想不出具体的算法,但考虑到计算机的特点——运算速度快,不知疲倦,我们可以另辟蹊径,让计算机算出所有与这4个数字相关的算式,选择其中得24的算输出即可。所以确定思路,穷举。大概分几个模块,主函数,转化四则运算的fun函数,for循环,if选择,scanf,printf。四 程序思路分析

程序要求给出4个数字,输出算出等于24的结果的所有算式,所以大体上首先scanf4个数字储存在数组中,然后试用定义的fun函数,fun函数为将4则运算

转化为数字的函数,然后用多个for语句实现数字的排列组合,关于括号的问题,分两种情况,一种是“三一”的,一种是“二二”的。然后写一个报错的语句,关于结果用printf输出,如果结果为-24,-1/24,1/24的,可以改变输出结果的顺序。

下面附上源程序: #include double fun(double a1,double a2,int b){ switch(b){

case 0:return(a1+a2);

case 1:return(a1-a2);

case 2:return(a1*a2);

case 3:return(a1/a2);} } void main(){ int g;for(g=0;g<100;){

int i,j,k,l,n,m,r,save[4];

double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;

char sign[5]=“+-*/”;

printf(“请输入4个数,数字与数字之间用空格隔开:”);

for(i=0;i<4;i++)

{

scanf(“%lf”,num+i);

save[i]=num[i];

} for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(j!=i)

{

for(k=0;k<4;k++)

if(k!=i&&k!=j)

{

for(l=0;l<4;l++)

if(l!=i&&l!=j&&l!=k)

{

for(n=0;n<4;n++)

for(m=0;m<4;m++)

for(r=0;r<4;r++)

{

tem1=fun(num[i],num[j],n);

tem2=fun(tem1,num[k],m);

tem3=fun(tem2,num[l],r);

if(tem3==24.0)printf(“{(%d%c%d)%c%d}%c%d=24n”,save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

else if(tem3==-24.0)printf(“{%d%c(%d%c%d)}%c%d=24n”,save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);

else if(tem3==1.0/24.0)printf(“%d%c{(%d%c%d)%c%d}=24n”,save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);

else if(tem3==-1.0/24.0)printf(“%d%c{%d%c(%d%c%d)}=24n”,save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);

else

{

tem1=fun(num[i],num[j],n);

tem2=fun(num[k],num[l],r);

if(tem2 == 2 && m == 3)

printf(“此处省略出现的一个非法运算n”);

else

{

tem3=fun(tem1,tem2,m);

if(tem3==24.0)

printf(“(%d%c%d)%c(%d%c%d)=24n”,save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

}

}

}

}

}

} g++;} } 下面详细说明:

double fun(double a1,double a2,int b)//定义fun函数 { switch(b)

{

case 0:return(a1+a2);

case 1:return(a1-a2);

case 2:return(a1*a2);

case 3:return(a1/a2);} }用switch语句将四则运算转化。void main()定义主函数

int i,j,k,l,n,m,r,save[4];

double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;

char sign[5]=“+-*/”;

printf(“请输入4个数,数字与数字之间用空格隔开:”);

for(i=0;i<4;i++)

{

scanf(“%lf”,num+i);//输入语句

save[i]=num[i];}

定义参数,有fun函数转化四则运算,但需要将四则运算的符号存入字符数组中以便输出时使用。用for语句循环实现输入。

用两段语句分两种情况计算for(n=0;n<4;n++)

for(m=0;m<4;m++)

for(r=0;r<4;r++)

{

tem1=fun(num[i],num[j],n);

tem2=fun(tem1,num[k],m);

tem3=fun(tem2,num[l],r);for循环实现运算的排列组合,上面是一种情况(不带有括号的),下面是另一种

else

{

tem1=fun(num[i],num[j],n);

tem2=fun(num[k],num[l],r);else 下面是两两组合的情况

{tem3=fun(tem1,tem2,m);

if(tem3==24.0)printf(“(%d%c%d)%c(%d%c%d)=24n”,save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

用for和if语句实现数字的排列组合,for(i=0;i<4;i++)for(j=0;j<4;j++)if(j!=i){

for(k=0;k<4;k++)if(k!=i&&k!=j)

{

for(l=0;l<4;l++)

if(l!=i&&l!=j&&l!=k)

{ 输出语句如下 if(tem3==24.0)printf(“{(%d%c%d)%c%d}%c%d=24n”,save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);

else if(tem3==-24.0)printf(“{%d%c(%d%c%d)}%c%d=24n”,save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);

else if(tem3==1.0/24.0)printf(“%d%c{(%d%c%d)%c%d}=24n”,save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);

else if(tem3==-1.0/24.0)printf(“%d%c{%d%c(%d%c%d)}=24n”,save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);对于其他几种结果通过改变输出时变量的顺序即可。五 总结

通过这次学习,我学到了很多,这个程序的难度级别是B,不是很难,但是算法比较繁琐,考虑要细心才行。通过此次程序设计,也让我们把平时学的理论知识用在了实际问题上,有助于我们的理解和运用,而且这个程序设计本身也比较有趣,能激发我们自己去深入研究。

以上就是我对这次程序设计的心得体会,也希望在以后的专业课学习中能够充分利用计算机本身速度快的优势,利用编写程序完成一些用手工计算很难完成的问题。

张博禹 05111112 六 答辩记录

篇3:计算24点游戏c

1 C语言程序设计教学存在的问题

1.1 学生自身存在的问题

由于中职学生基础较差, 自我约束能力和自我控制能力不强。有些学生经常迟到、旷课。好多学生不清楚学习该门课程的目的和意义, 没有学习兴趣.特别是对于非计算机专业的学生来说, 他们认为只要学好相关专业的知识, 就万事大吉了, 至于学习C语言的语法规则, 也是为了应付考试。稍有一点难的, 就不想学了, 甚至完全放弃。

1.2 以教师为主体, 忽视学生的能动作用

现在的教学方式, 大部分还是以教师为主体, 这样的教学方式不利于激发学生学习兴趣。以教师为主体的教学方式, 注重的是教师在课堂上的“教”, 而学生处于被动“学”状态, 缺乏教师与学生之间的能动性, 学生的积极性和主动性得不到发挥。虽然, 现在多媒体教学非常普及, 精美的课件随处可见, 在一定程度上提高了学生的学习兴趣, 但仍然没有改善以教师为主体的教学方式, 依然缺少教学的目标性和针对性, 由“照本宣科”变为“照幻灯片宣科”, 没有解决教师与学生或者学生与学生之间能动性严重匮乏的现象。

1.3 实验教学方法有待创新

教师在上机实验教学过程中往往把实验算法和步骤等讲得很具体, 学生上机时只是按照已经给出的实验算法被动的输入相应的代码, 没有进行独立思考, 也没有提问、缺少独立完成程序设计的机会, 毫无主动性, 创新思维根本得不到培养, 不利于激发学生对实验教学的兴趣和积极性.

1.4 实验考核有待改进

实验考核是一般是以实验报告为标准, 由教师主观的给出相应的分数。这样的考核方式缺少相应的标准, 也不够客观, 这样就误导了学生对实验教学的看法, 认为只要有交实验报告, 结论也基本正确, 那么上机实验部分就没有问题。

2 寻求解决C语言程序设计教学现状的思考

2.1 激发学习兴趣

由于是面向非计算机专业的学生, 第一次上课, 教师可以先介绍几个由C语言设计的生动实例, 顺便介绍下这个例子的大体设计过程, 当然例子不能太难, 这样学生就会觉的原来程序设计也不难, 消除学生对程序设计的恐惧感, 同时也可以了解程序设计的整个过程, 从而调动学生的学习兴趣。

2.2 改革教学方法, 以学生为主导

在教学过程中, 教师可以采用“探究式”教学法, 比如在讲解算法时, 我们都知道算法是程序设计的灵魂, 掌握了算法, 对以后的具体编程也就可以做到得心应手了, 可以采用了“分组探究式”教学。因此我将学生分成若干小组, 每一个小组由3个学生组成, 作为一个独立的任务单位, 然后给出一系列由浅入深的题目, 让每一小组采取讨论的方式从最简单题目入手用结构流程图将算法表示出来。通过这种方式, 学生在两节课的学习中很快掌握了算法的表示, 学习效率得到了很大的提高。通过这种方式, 学生在学习过程中不但体验到获得知识的乐趣, 而且使学生在学习过程中加强了集体参与的能力及与他人沟通合作的能力。

也可以采用“举一反三”教学法, 比如在讲到“循环结构”的时候, 为学生讲解循环结构基本的知识点, 然后要求学生完成相应的任务, 例如:求1到100之间所有偶数的和, 这是一个简单的循环程序, C语言为编程者提供了四种循环, 即goto循环、while循环、do–while循环和for循环, 学生可以利用不同的循环编出不同程序来解决同一个问题, 即学习了四种循环之间的区别, 又给学生带来一定的成就感, 培养学生的自信心, 激发求知欲望。

当然, 教学方法不只“探究式”教学法和“举一反三”教学法, 还有其他的教学法, 比如谈论法、演示法、练习法、启发法等, 教师可以根据实际情况灵活运用相应的教学方法, 以达到良好的教学效果。

2.3 合理利用教学环境

如今的教学环境已经发生了巨大的改变, 多媒体教学随处可见, 大家在教学或实践课中都是使用各种电子课件并利用投影仪或网络广播来讲授, 这是计算机发展到今天的必然趋势.多媒体教学的优势在C语言程序设计这种课上体现的淋漓尽致, 多媒体能直接的把程序的整个运行过程演示给学生, 对于课堂的教学质量有很大的提高。此外, 在C语言程序设计教学过程中, 我们不但要讲解正确的程序, 也要讲解有存在一定错误的程序, 并提问学生, 让学生纠正有错误的地方, 这样学生就能直观深刻的认识到那些常见的错误, 否则就算是教的再认真了, 学生也还是会犯错误。

在多媒体教学的环境下, 板书的作用变得越来越小, 对于这种古老的教学方法, 大家都有意的淡化和弱化了, 有的学校甚至要求教师在多媒体教室中不能板书。这样就导致教师特别重视电子课件的效果, 在教学过程中就靠课件来讲解程序设计, 而只有少许的板书或者有些根本就没有板本。对于C语言程序设计的初学都来说, 编写程序是一个思考的过程, 少写板书会让学生的思维跟不上教师的讲解速度, 导致的结果就是学生听不懂。而利用板书讲解程序, 教师可以控制书写的内容和教学的语速, 并在书写板书的过程中, 让学生进行一定的思考, 保持学生的思维与教师的讲解速度一致。然而把编写好的程序利用多媒体演示给学生看的时候, 学生会感觉像是在看录像, 都不用进行思考, 从而导致学生的印象不深刻, 降低教学效果。

总的来说, C语言程序设计这种课, 要充分发挥多媒体教学和板书教学的各自优点, 从而达到一个良好的授课效果。

2.4 重视实践教学, 提高实践效果

我们都知道, C语言程序设计光靠教师教学是达不到教学效果的。上机实践才是学会C语言程序设计的关键, 那么如何抓好上机实践环节就成为了C语言程序设计课程的重中之重。个人认为, 在布置上机习题的时候, 应该分为两种题型, 一种为必做题 (掌握基本知识点) , 另一种为选做题 (在基本知识点上进行一定的提高) 。对于必做题, 要求所有的学生都必须在规定的时间内完面, 这样就可以完成C语言上机实践的基本要求, 而选做题, 是为学习好的同学准备的, 这样他们会在掌握C语言程序设计基础知识的同时, 也能进行一定的提高, 增强他们的学习兴趣。

2.5 合理安排考试考核

改革过去C语言课程学习成绩的计分方法。具体做法是:在C语言考试成绩中, 增加实际操作能力和综合运用所学语言能力的考查比例 (如:占期末考试成绩的30%) 。体现了注重素质教育的指导思想, 改变了学生的学习态度, 引导学生向提高自身素质的方面努力。

3 结束语

《C语言程序设计》是国内很多中职学校非计算机专业开设的一门课程, 本文分析了中职学校非计算机专业学生学习C语言程序设计课程所存在的问题, 并在此基础上探讨了非计算机专业的C语言程序设计教学方法, 提出了一些改进方法。

参考文献

[1]谭浩强.C语言程序设计[M].3版.北京:清华大学出版社2007.

[2]赖晓晨.程序设计课程创新教学模式探索.中国大学教学, 2008 (7) :42-44.

[3]赵光胜.非计算机专业C语言课程教学研究[J].福建电脑, 2009, 1:206-207.

篇4:几道经典的24点计算题

例1 抽出下面四组牌(A、J、Q、K分别为1点、11点、12点、13点),你能算出24点吗?

(1)2,3,4,5 (2)3,4,5,10

(3)K,7,9,5 (4)J,6,Q,5

分析:计算24点必须有一些技巧,那就是要非常清楚24可以由怎样的两个数求得,如2×12=24,4×6=24,3×8=24,18+6=24,30-6= 24等,这样,就可以把问题转化成怎样使用4个数,凑出两个数的问题.

解:(1)依据2×12=24,可得2×(3+4+5)=24;

(2)依据3×8=12,可得3×(10÷5×4)=24;

(3)依据4×6=24,可得(13-7)×(9-5)=24;

(4)依据18+6=24,可得(11-5)+(6+12)=24.

试一试:在“24”点游戏中,抽出了下面两组牌,你能求出“24”吗?

(1)3,3,7,7;(2)1,5,5,5

例2 如果恰巧四个人抽出的扑克牌是“1~9”中同一数字的牌,请你帮忙想一想:哪种情况可以算出“24”?怎样算?

分析:四人抽出同一数字的牌有9种情况,4个1,4个3,4个4……4个8,4个9.现在,问题转化为如何使四个相同的数字(1~9中的一个)添加运算符号,得“24”的问题.由于4个数字相同,用乘法关系最后求得“24”就不太容易,应考虑+、-关系,27-3=24,25-1=24,20+4 =24,12+12=24等.经过尝试,我们发现,4个1,4个2,由于数太小,无法算出“24”,而4个7、4个8、4个9由于太大,也无法算出,其余皆可以实现.

解:依据27-3=24 ,可得3×3×3-3=24,

20+4=24 ,可得4×4+4+4=24,

25-1=24 ,可得5×5-5÷5=24,

12+12=24 ,可得(6+6)+(6+6)=24.

试一试:抽的四张牌恰好是“1~9”中从大到小连续排列的四张,即(1)9,8,7,6;(2)8,7,6,5;(3)7,6,5,4;(4)6,5,4,3;(5)5,4, 3,2;(6)4,3,2,1;这样6组牌能算出“24”吗?

例3 “梅花点心算24”是指在梅花的花心填入1~10中的一个数,能和周围花瓣中的三个数一起,用加、减、乘、除四则运算计算出24.

分析:“梅花点心算24”是普通算24点的进阶,一个“梅花点心”化开来,可出50道小题,但花心数字只有一个,并且是唯一的,这就需要仔细甑别,花心数字选对了,方能写出5组算式.算“梅花点心”不但需要智力更需要毅力.

解:花心数字为9:

(1+1)×9+6=24;

1+4+9+10=24;

(9+6÷2)×2=24;

(5-2)×5+9=24;

(7+9)÷4×6=24.

试一试:在梅花的花心填入1~10中的一个数,能和周围花瓣中的三个数一起,用加、减、乘、除四则运算计算出24.

例4 “皆大欢喜算24”是指给定加、减、乘、除计算符号各三个,合理分配给周围四组数字,要求每组数字均能算出24.(小括号可自由添加,但算式不能被化简)

分析:“皆大欢喜算24”是骨灰级24点题目,适合24点高手们操练.它要求挖掘一道题目的不同解法,如果你无法将四道小题的全部解法列出统一思考,可能很难找出正确的解法.

解:(10-4÷2)×3=24

(2+10÷5)×6=24

(6×9-6)÷2=24

10+10+6-2=24

检查四个算式是否有3个加、3个减、3个乘、3个除,如是,才是正确答案.

试一试:给你加、减、乘、除计算符号各三个,合理分配给周围的四组数字,要求每组数字均能算出24.(小括号自由添加,但算式不能被化简)

例5 由上面的例子,我们可以很自然地想到这种游戏可以发展成一类专门的数学问题,下面,我们就来看看这道有趣的数学智力题.

填上适当的运算符号,使算式成立.

(1)4 4 4 4=5

(2)4 4 4 4=6

(3)4 4 4 4=7

(4)4 4 4 4=8

(5)4 4 4 4=9

(6)4 4 4 4=10

分析:(1)4 4 4 4=5,最后一个4的前面是三个4,如可凑出1,1+4=5,如可凑出20,20÷4=5,4×4 +4=20,因此可求解.

(2)4 4 4 4=6,最后一个4的前面是三个4,如可凑出2,2+4=6;即(4+4)÷4=2,因此可求解.

(3)4 4 4 4=7,前面两个4+4=8,后面两个4得1即可求解,4÷4=1刚刚好.

(4)和(6)可利用(3)的思路稍加变化就可以求解.

(5)4 4 4 4=10,最后一个4,前面如是6,6+4=10可求解,但不易做到.如前面是40,40÷4=10也可以求解,44-4=40,数字连用在解这类题目时是常用的一种技巧.

解:(1)(4×4+4)÷ 4=5

(2)(4+4)÷4+4=6

(3)(4+4)-4÷4=7

(4)(4+4)×4÷4=8

(5)(4+4)+4÷4=9

(6)(44-4)÷4=10

说明:解(1)、(2)、(6)运用的是一种倒推的方法,这是一种常用的、行之有效的方法,同学们应掌握.解(4)、(5)是依据数字的特点,这种方法,需要有良好的数字感,要经过一段时间的训练才能获得.

试一试:填上适当的运算符号,使算式成立.

1 2 3=1

1 2 3 4=1

1 2 3 4 5=1

1 2 3 4 5 6=1

1 2 3 4 5 6 7=1

1 2 3 4 5 6 7 8=1

上期《概率问题强化训练》参考答案

1.B;2.C;3.B;4.A;5.200;

6.■;7.5;8. ■,■,1;

9.(1)∵整个圆被分成了12个扇形,其中有6个扇形能享受折扣,

∴P(得到优惠)=■=■;

(2)转盘1能获得的优惠为:■=25元,

转盘2能获得的优惠为:40×■=20元,

所以选择转动转盘1更优惠;

10.(1)树状图略.概率为■.

(2)∵方程ax2+3x+■=0有实数根的条件为:9-ab≥0,

∴满足ab≤9的结果共有14种,(1,1),(1,2),(1,3),(1,4),(1,5),(2,1),(2,2),(2,3),(2,4),(3,1),(3,2),(3,3),(4,1),(4,2),

∴关于x的方程ax2+3x+■=0有实数根的概率为■=■.

篇5:“24点”游戏秘籍

“24点”数学游戏,它能把枯燥的基本数字计算变得趣味盎然,能大大提高计算能力和计算速度,使得思维灵活敏捷,是一种寓教于乐的的智力竞赛游戏。

游戏规则:给定4个自然数,通过加、减、乘、除四则运算,可以任意交换数的位置,可以随意的添加括号,但是每个数只能且必须用上一次,连起来组成一个计算式子,得数就是24。

“24点”数学游戏通常是用扑克牌进行的,此时,给定的4个数就被限定在1~13的范围内。“24点”数学游戏可以是1个人玩,也可以是多人玩,比如4个人玩,把扑克牌中的大、小王拿掉,剩下的52张牌洗好后,每人分给13张,然后就是每人出一张牌,其中J、Q、K分别代表11、12、13,其他的牌就代表相应的1~10的自然数,谁先算出“24点”,谁就把这4张牌赢走,然后继续玩牌,最后谁的牌多谁就获胜。当如果算不出“24点”的话,各自就拿回来自己的牌,然后洗牌,再次继续进行。

要想算得又快又准,这就要靠平时的基本功了,而要有好的过硬的基本功,就要多练习了,只有多练,才能算得好,而且这又能很好地锻炼自己的反应能力和敏捷的判断能力,对学好数学很有帮助。而要玩好这个游戏,最重要的有2条:

1、熟悉加法口诀和乘法口诀;

2、利用括号,因为括号既能改变运算顺序,也可以改变运算符号。

下面通过一些例子来说明“24点”的一些基本算法。“24点”的基本算法(1)乘法

乘法式子有3×8=24,4×6=24,2×12=24,1×24=24等。

例1.3、3、5、6 解法

一、根据3×8=24,3已经有了,只要将其他3个数凑成8,有3×(5+6-3)=24。

解法

二、根据4×6=24,6已经有了,只要将其他3个数凑成4,有6×(5-3÷3)=24或者6×(3×3-5)=24。

解法

三、还是根据3×8=24,要将2个数凑成3,要将另2个数凑成8有(6-3)×(5+3)=24。

解法

四、先把其中两个数相乘,积不足24的用另外2个数补足,有3×5+3+6=24 解法

五、先把其中两个数相乘,积超过24的用另外2个数割去,有5×6-3-3=24 例2.2、2、4、8 解法

一、根据3×8=24,8已经有了,只要将其他3个数凑成8,有8×【(2+4)÷2】=24或者8×【4-2÷2】=24。

解法

二、根据4×6=24,4已经有了,只要将其他3个数凑成6,有4×(2+8÷2)=24。

解法

三、根据2×12=24,有2×(2×8-4)=24。

解法

四、根据8+16=24,8已有,将其他3个数凑成16,有8+2×2×4=24或者8+(2+2)×4=24。

解法

五、根据4+20=24,4已有,将其他3个数凑成20,有4+(2+8)×2=24。

“24点”的基本算法(2)除法

除法式子有24÷1=24,48÷2=24,72÷3=24,96÷4=24等。

例1.2、4、8、10 解法

一、根据48÷2=24,2已经有了,只要将其他3个数凑成48,有(4×10+8)÷2=24。

解法

二、不过容易想到2×12=24,故有(2+10)×(8÷4)=24。解法

三、根据96÷4=24,有【(2+10)×8】÷4=24。

解法

四、根据4×6=24,4已经有了,只要将其他3个数凑成6,有4×(2×8-10)=24。

解法

五、由乘减有:4×10-2×8=24。例2.2、3、7、10 解法

一、根据72÷3=24,3已经有了,只要将其他3个数凑成72,有(7×10+2)÷3=24。

解法

二、由乘减知道:2×10+7-3=24。

例3.4、6、9、10 解法

一、根据24÷1=24,有(4×6)÷(10-9)=24。

解法

二、根据96÷4=24,4已经有了,只要将其他3个数凑成96,有(9×10+6)÷4=24。

“24点”的基本算法(3)借助“乘法分配律” 例、1、4、4、5 分析:很明显,4×(1+5)=24。但是这3个数就凑成了24了,可惜还有一个数4用不到,根据规则,必须要将这个4用进去,怎么办?用到“乘法分配律”试试。

解:4×1+4×5=24。例2、6、8、8、9 8×(9-6)=8×9-8×6=24 例3、5、7、12、12 12×(7-5)=12×7-12×5=24 总结:在例1~例3中,我们用到了a×(b+c)=a×b+a×c, a×(b-c)=a×b-a×c

例4、2、2、6、9 分析,显然,有2×9+6=24,三个数就够了,但是还有一个数字2没有用到,这次又怎么办呢?

还是利用“乘法分配律”,24=2×9+6=2×9+6÷2×2=2×(9+6÷2)=24

“24点”的基本算法(4)分数

例1、1、5、5、5 分析:假设基本算式已经找到:5×?=24,则?=.用1,5,5能够凑成 吗? 解: =5-,于是得到5×(5-1÷)=24。

例2、3,3,8,8 分析:我们有基本算式8÷ =24。被除数8已有,另外三个数3,3,8能够凑成 吗?

解: =3-,于是有8÷(3-8÷3)=24。例3、1,4,5,6 解:根据4÷ =24,有4÷(1-5÷6)=24。或者6÷ =24,有6÷(5÷4-1)=24。

例4、2、6、9、9 2×9+6=2×9+6÷9×9=9×(2+6÷9)=24 例5、2、4、10、10 2×10+4=2×10+4÷10×10=10×(2+4÷10)=24 总结:在例1~例5中,我们用到了a×b+c=a×(b+c÷a), a×b-c=a×(b-c÷a).我们知道,符合“24点”数学游戏规则的每个具体的算式中,一定要知道出现四个数和三个运算符号。也就是说,一定要进行三次运算,出现三个运算结果。其中前两次结果是运算过程中的中间结果,⑴可以看成三个相连数中最前面一个数。如:4、5、6、6和3、4、5、8。⑵可以看成三个相连数中中间一个数。如:3、7、8、9和2、3、4、8。⑶可以看成三个相连数中最后面一个数。如:2、3、4、6和6、7、8、3。⑷可以看成三个相连数中最前面一个数减去1。如:4、5、6、8和5、6、7、6。

⑸可以看成三个相连数中最后面一个数加上1。如:3、4、5、4和5、6、7、3。

⑹可以看成三个相连数中中间一个数的2倍数。如:2、3、4、4和7、8、9、8。

⑺可以看成三个相连数中中间一个数的3倍数。如:6、7、8、3和8、9、10、3。

⑻三个数相连时,有时可以看作是两组两个数相连,如3、4、5可看作3与4或4与5两组两个数相连,计算时具体用哪个组合要看另一张牌的数。

3、四个数相连:四个数相连的概率极小,一共只有7个组合,每个组合都有解,不难。

“24点”的基本算法(6)相同数的计算方法

1、两个数相同

⑴两个数相同可以看作1。如5、5、2、8和7、7、3、6。⑵两个数相同可以看作0。如7、7、3、8和9、9、4、6。

⑶两个数相同可以看作这个数的2倍。如5、5、2、7和4、4、2、6。⑷两个数相同可以看作乘积,数较大时不宜使用。如5、5、2、1和3、3、6、8。

从上面的例子知道,当四张牌中出现任何一对数相同时,另两张牌如果是3和8,或者是4和6时则可解。并且根据两个相同数可以看作1的道理,四张牌中有两个相同,另外两张是下列情况时均可解。如9、9、7、3。(9÷9+7)×3=24,9、9、5、4。(5+9÷9)×4=24 9、9、9、3。(9-9÷9)×3=24,9、9、2、8。(2+9÷9)×8=24 9、9、8、3。(9÷9)×3×8=24,9、9、4、8。(4-9÷9)×8=249、9、6、3。(3+9÷9)×6=24,9、9、5、6。(5-9÷9)×6=24 9、9、7、4。(7-9÷9)×4=24,9、9、6、4。(9÷9)×6×4=24。

2、三个数相同

⑴三个数相同时可以看作是其中的一个数,如3、3、3、8和4、4、4、6。⑵三个数相同时可以看作是其中的一个数加上1,如5、5、5、4和7、7、7、3或7774。

⑶三个数相同时可以看作是其中的一个数减去1,如5、5、5、6和9、9、9、3。

从上面的例子可以知道,四张牌中出现三个相同数时,可以看作3个不同的数。如出现7、7、7时,可看作是6,7,8,当另外一个数是3或4时,应用此法便可解答。如出现3个4时,可看作3、4、5,当另一个数是6或8时,也可解。其他依此类推。

3、四个数相同:四个数相同出现的概率较少,一共有10个。这些组合中,只有四个3、4、5、6能够解答,其余的都没有解。

“24点”的基本算法(7)单数的计算方法

1、一个单数

随机取出的四张牌中几乎都会出现一张单数。当出现一张单数时,应根据这张单数的数目和另外三张双数之间的关系来做灵活调整。因为有3×8=24的基本算法,所以如单数是3,一般可以考虑把三个双数处理成8。如3、10、2、4有3×(10+2-4)=24或3、2、2、4有3×(2+2+4)=24。

如单数不是3,双数中有8时,可以将单数和其他两个双数处理成3。例如9、4、2、8有8×(9-2-4)=24或者9、10、2、8有8×(10-9+2)=24。

单数既不是3,双数不是8呢,有时可以将通过一个单数与2个双数和一个双数进行匀算后出现3和8,如9、6、4、4有(9-6)×(4+4)=24或9、6、2、4有(9-6)×2×4=24。

用以上方法不能求解时,就要考虑其他方法了。可将单数乘上双数变成一个双数后再和另外两个双数一起运算。在单数较大时可先减掉一个双数再乘上一个双数变成双数,再和另外一个双数运算。通常就是乘减或乘加运算。如3、4、6、6有3×4+6+6=24。3、4、2、6有3×4+2×6=24,9、6、4、2有(9-6)×2×4=24。

2、二个单数:可以通过二个单数之间相加或相减变成双数。

如3、3、2、2有(3+3)×(2+2)=24,9、3、8、2有(9-3)×8+2=24。

一般两个单数之间不宜相乘,因为相乘后又是单数。且数目较大,但是有例外。如7、7、1、2有(7×7-1)÷2=24。但是两个单数可以相除的话,不妨一试。如9、3、2、6有9÷3×(2+6)=24或9、3、4、4有9÷3×(4+4)=24。

篇6:数学《24点游戏》活动方案

(联侨中学2018—2019学年第二学期)

一、活动背景:24点是传统的牌戏,是通过扑克牌来完成的竞争性智力游戏,考的是学生的临机和速算能力。24点游戏使用数字,但不需要数学,这也是它为什么如此受欢迎的原因。24点游戏能够促进我们每个人的大脑和逻辑性。研究表明,玩24点游戏能够提高记忆力和头脑清晰度、有益开发孩子们的智力水平。

二、活动目的: 数学不仅是科学的基础,更是科学的工具。“24点”游戏是考验学生反应和速度的一项极具有挑战性的数学游戏。不仅能健脑益智、启迪智慧、开发智力,而且能推进仁美教育。“24点”游戏将为学生提供一个展现自我的舞台。在这个舞台上,他们的思维意识和创新能力都能得到很大的提高。

三、参与对象:初中部学生

四、活动时间:14周星期三第七节课:

五、活动场地:阅读教室

六、活动流程:

1、前期准备:现在至14周前。教师准备幻灯片,以班为单位,在班上进行活动。14周星期三第七节课进行比赛。年级按分数高低评出一等奖 名、二等奖 名、三等奖 名;按 评奖。

2、利用1-12的数字进行自由加减乘除结果正确即可。

上一篇:夹竹桃第一课时下一篇:商务英语学习课程