24点

      它始于何年何月已无从考究,但它以自己独具的数学魅力和丰富的内涵正逐渐被越来越多的人们所接受。这种游戏方式简单易学,能健脑益智,是一项极为有益的活动。

游戏梗概编辑

24点是一种益智游戏,24点是把4个 整数(一般是 正整数)通过 加减乘除以及括号运算,使最后的计算结果是24的一个 数学游戏,24点可以考验人的智力和数学敏感性,它能在游戏中提高人们的心算能力。
24点通常是使用 扑克牌来进行游戏的,一副牌中抽去大小王后还剩下52张(如果初练也可只用1~10这40张牌),任意抽取4张牌(称为牌组),用加、减、乘、除(可加括号)把牌面上的数算成24。每张牌必须只能用一次,如抽出的牌是3、8、8、9,那么算式为(9-8)×8×3或3×8÷(9-8)或(9-8÷8)×3等。
游戏技巧
“算24点”作为一种 扑克牌智力游戏,应注意计算中的技巧问题。比如,计算时,不能够把牌面上的4个数的不同组合形式一一去试,更不能瞎碰乱凑。这里向大家介绍几种常用的、便于学习掌握的方法:
1.利用3×8=24、4×6=24 、12×2=24求解。
把牌面上的四个数想办法凑成3和8、4和6、12和2再相乘求解。如3、3、6、10可组成(10-6÷3)×3=24或(10-3-3)×6=24。又如2、3、3、7可组成(7+3-2)×3=24等。实践证明,这种方法是利用率最大、命中率最高的一种方法。
2.利用0、1的运算特性求解。
如3、4、4、8可组成3×8+4—4=24等。又如4、5、J、K可组成11×(5—4)+13=24等。
3.在有解的牌组中,用得最为广泛的是以下六种解法:(在这里用a、b、c、d表示牌面上的四个数)
①(a—b)×(c+d)
如(10—4)×(2+2)=24等。
②(a+b)÷c×d
如(10+2)÷2×4=24等。
③(a-b÷c)×d
如(3—2÷2)×12=24等。
④(a+b-c)×d
如(9+5—2)×2=24等。
⑤a×b+c—d
如11×3+l—10=24等。
⑥(a-b)×c+d
如(4—l)×6+6=24等。

2算法编辑

利用计算程序来完成这个计算二十四点的程序
方法如下:
首先穷举的可行性问题。把 表达式如下分成三类——
1、 无括号的简单 表达式
2、 有一个括号的简单表达式。
3、 有两个括号的较复杂 表达式
在栈中,元素的插入称为压入(push)或入栈,元素的删除称为弹出(pop)或退栈。
栈的基本运算有三种,其中包括入栈运算、退栈运算以及读栈顶元素,这些请参考相关 数据结构资料。根据这些基本运算就可以用 数组模拟 出栈来。
那么作为栈的著名应用, 表达式的计算可以有两种方法。
第一种方法:
首先建立两个栈, 操作数栈OVS和 运算符栈OPS。其中, 操作数栈用来记忆 表达式中的操作数,其栈顶指针为topv,初始时为空,即topv=0; 运算符栈用来记忆表达式中的运算符,其栈顶指针为topp,初始时,栈中只有一个表达式结束符,即topp=1,且OPS(1)=‘;’。此处的‘;’即 表达式结束符。
然后自左至右的扫描待处理的 表达式,并假设当前扫描到的符号为W,根据不同的符号W做如下不同的处理:
1、 若W为 操作数
2、 则将W压入 操作数栈OVS
3、 且继续扫描下一个 字符
4、 若W为运算符
5、 则根据 运算符的性质做相应的处理:
6、若 运算符为左括号或者运算符的优先级大于运算符栈栈顶的运算符(即OPS(top)),则将运算符W压入运算符栈OPS,并继续扫描下一个字符。
7、若运算符W为 表达式结束符‘;’且运算符栈栈顶的运算符也为表达式结束符(即OPS(topp)=’;’),则处理过程结束,此时, 操作数栈栈顶元素(即OVS(topv))即为表达式的值。
8、若 运算符W为右括号且运算符栈栈顶的运算符为左括号(即OPS(topp)=’(‘),则将左括号从运算符栈谈出,且继续扫描下一个符号。
9、若 运算符的右不大于运算符栈栈顶的运算符(即OPS(topp)),则从 操作数栈OVS中弹出两个操作数,设先后弹出的操作数为a、b,再从运算符栈OPS中弹出一个运算符,设为+,然后作运算a+b,并将运算结果压入操作数栈OVS。本次的运算符下次将重新考虑。
第二种方法:
首先对 表达式进行线性化,然后将线性表达式转换成 机器指令序列以便进行求值。
那么什么是 表达式的线性化呢?人们所习惯的表达式的表达方法称为中缀表示。中缀表示的特点是运算符位于运算对象的中间。但这种表示方式,有时必须借助括号才能将运算 顺序表达清楚,而且处理也比较复杂。
1929年, 波兰逻辑学家Lukasiewicz提出一种不用括号的逻辑符号体系,后来人们称之为 波兰表示法(Polish notation)。 波兰 表达式的特点是运算符位于运算对象的后面,因此称为后缀表示。在对波兰 表达式进行运算,严格按照自左至右的顺序进行。下面给出一些 表达式及其相应的 波兰表达式。
表达式波兰表达式
A-B AB-
OK,所谓 表达式的线性化是指将中缀表达的表达式转化为 波兰表达式。对于每一个 表达式,利用栈可以把表达式变换成 波兰表达式,也可以利用栈来计算 波兰表达式的值。
至于转换和计算的过程和第一种方法大同小异,这里就不再赘述了。
下面给出转换和计算的具体实现程序——
这样这个程序基本上就算解决了,回过头来拿这个程序来算一算文章开始的那个问题。很快就算出来了,原来如此简单——(6-3)*10-6=24。

3例题编辑

例题1:
3388:解法8/(3-8/3)=24 按第一种方法来算,假如有8就先找3,这里可能有人会问这里面并没有3,其实除以1/3,就是乘3.
例题2:
5551:解法5*(5-1/5) 这道题型比较特殊,5*4.8算是比较少见,一般的简便算法都是3*8,2*12,4*6,15+9,25-1,但5*4.8也是其中一种
一般情况下,先要看4张牌中是否有2,3,4,6,8,Q,
如果有,考虑用乘法,将剩余的3个数凑成对应数。如果有两个相同的6,8,Q, 比如已有两个6,剩下的只要能凑成3,4,5都能算出24,已有两个8,剩下的只要能凑成2,3,4,已有两个Q,剩下的只要能凑成1,2,3都能算出24,比如(9,J,Q,Q)。如果没有2,3,4,6,8,Q,看是否能先把两个数凑成其中之一。总之,乘法是很重要的,24是30以下因数最多的整数。
(2)将4张牌加加减减,或者将其中两数相乘再加上某数,相对容易。
(3)先相乘再减去某数,有时不易想到。例如(4,10,10,J)
(6,10,10,K)
(4)必须用到乘法,且在计算过程中有分数出现。有一个规律,设4个数为a,b,c,d。必有ab+c=24或ab-c=24 d=a或b。若d=a 有a(b+c/a)=24 或 a(b-c/a)=24 如最常见的(1,5,5,5),
(2,5,5,10)因为约分的原因也归入此列。(5,7,7,J)
(4,4,7,7)(3,3,7,7)等等。(3,7,9,K)是个例外,可惜还有另一种常规方法,降低了难度。只能用此法的只有10个。
(5)必须用到除法,且在计算过程中有分数出现。这种比较难,比如(1,4,5,6),(3,3,8,8)(1,8,Q,Q)等等。
只能用此法的更少,只有7种。
(6)必须用到除法,且在计算过程中有较大数出现,不过有时可以利用平方差公式或提公因数等方法不必算出这个较大数具体等于几。比如(3,5,7,K),(1,6,J,K)等等。只能用此法的只有16种。
(7)最特殊的是(6,9,9,10),9*10/6+9=24,9是3的倍数,10是2的倍数,两数相乘的积才能整除6,再也找不出第二个类似的只能用此法解决的题目了。
需要说明的是:经计算机准确计算,一副牌(52张)中,任意抽取4张可有1820种不同组合,其中有458个牌组算不出24点,如A、A、A、5。 有1362个牌组算得出24点。
当然在一些喜欢数学的玩家而言,组合中部分无法计算出24点的组合:如之前举出的如:A、A、A、5, 2、3、3、5, 可以通过幂次方的方式计算得出24点。
例题3: A、A、A、5
计算方法:5的2次方减1 (要点:A+A=2)
例题4: 2、3、3、5
计算方法一 3的2次方加15 (要点:3*5等于15)
计算方法二 5的2次方减1 (要点:3/3=1)
计算方法三 3的3次方减3 (要点:5-2=3)
一些24点的题目:
3377:3除以7加三的和乘七
  
8583 、 8813 、 10 753。。。。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值