扑克牌算24点的原理?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 21:59:18
扑克牌算24点的原理?

扑克牌算24点的原理?
扑克牌算24点的原理?

扑克牌算24点的原理?
1、概述
给定4个整数,其中每个数字只能使用一次;任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏.这方面的程序很多,一般都是穷举求解.本文介绍一种典型的算24点的程序算法,并给出两个具体的算24点的程序:一个是面向过程的C实现,一个是面向对象的java实现.
2、基本原理
基本原理是穷举4个整数所有可能的表达式,然后对表达式求值.
表达式的定义:expression = (expression|number) operator (expression|number)
因为能使用的4种运算符 + - * / 都是2元运算符,所以本文中只考虑2元运算符.2元运算符接收两个参数,输出计算结果,输出的结果参与后续的计算.
由上所述,构造所有可能的表达式的算法如下:
(1) 将4个整数放入数组中
(2) 在数组中取两个数字的排列,共有 P(4,2) 种排列.对每一个排列,
(2.1) 对 + - * / 每一个运算符,
(2.1.1) 根据此排列的两个数字和运算符,计算结果
(2.1.2) 改表数组:将此排列的两个数字从数组中去除掉,将 2.1.1 计算的结果放入数组中
(2.1.3) 对新的数组,重复步骤 2
(2.1.4) 恢复数组:将此排列的两个数字加入数组中,将 2.1.1 计算的结果从数组中去除掉
可见这是一个递归过程.步骤 2 就是递归函数.当数组中只剩下一个数字的时候,这就是表达式的最终结果,此时递归结束.
在程序中,一定要注意递归的现场保护和恢复,也就是递归调用之前与之后,现场状态应该保持一致.在上述算法中,递归现场就是指数组,2.1.2 改变数组以进行下一层递归调用,2.1.3 则恢复数组,以确保当前递归调用获得下一个正确的排列.
括号 () 的作用只是改变运算符的优先级,也就是运算符的计算顺序.所以在以上算法中,无需考虑括号.括号只是在输出时需加以考虑.

扑克牌算24点的原理? 怎样用连续的4张扑克牌算出24点 用扑克牌算24点,方法 扑克牌算24点,什么牌算不出来 下面四张扑克牌的点数,经过怎样的运算才能得到24点呢?扑克牌分别是:扑克牌3,扑克牌9,扑克牌4,扑克牌5.(要有详细过程和算试,写得详细的人我会采纳.) 扑克牌读心术的原理是什么? 扑克牌7、2、3、4.算24点 2、3、4、6四张扑克牌算24点 算24点是我国传统的数学游戏,如果扑克牌的点数分别是3.3.7.7,用他们凑成24点的算式是() 24点概率的问题(尖端数学,24点 52张扑克牌 无解概率是多少?24点 40张扑克牌(无J、Q、K)无解概率是多少?24点 52张扑克牌 红色是整数,黑色是负数,无解概率是多少?24点 40张扑克牌 红色是整数 扑克牌的 扑克牌游戏加减乘除的玩法.两个人玩的,不是24点 有一种“24点”的扑克牌游戏(2,3,4,5)组成24 小明玩24点游戏时抽到的四张扑克牌分别是3,3,7,7, 扑克牌的24点游戏怎么玩 四张牌是5 8 11 13 关于扑克牌的知识扑克牌是根据历学原理制成的,其中的大小王分别代表什么呢? 用扑克牌算“24点”,即运用加、减、乘、除和乘方的混合运算(可使用括号,但牌不得重复),使运算结果为24或-24.其中红色扑克牌代表正数,黑色扑克牌代表负数,A,2,3,…,K依次代表1,2,3,…,13.某同 亮亮和尼尼玩扑克牌算24点游戏发出了4张牌2,2,3,9请你列出两个不同的式子算出24来