Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 其它应用

如何用access计算四张扑克牌得出24点的概率

时 间:2011-01-15 00:00:00
作 者:云中老鼠   ID:17697  城市:广州
摘 要:    如何用穷举法找到任意四张扑克牌计算出24点的概率,并针对不同牌组给出一个对应的答案。
正 文:

问题:一幅扑克去掉大小王,任意抽取四张,能计算出24点的概率多少?

解决方案:
扑克有52张,点数1-13。任意抽取四张,总排列数P(52,4)=6497400种。
其中,大部分能通过四则运算得到结果24,用穷举法发现共有5142072种可以得到24的结果。另外有1355328种无法计算出24。
例如:1,1,1,8可以通过((1+1)+1)×8计算出24,而1,1,1,1到1,1,1,7都无法计算出24来。
所以,玩扑克24点玩得出24这个计算结果的概率应该是5142072/6497400=79.2%。

如何用Access实现穷举法呢:
将1-13的牌进行排列组合不难,将+-*/排列组合也不难,就是如何处理运算顺序及括号问题。
如果程序运行前不把这个考虑好,就会进入无休止的循环,不狠心按^break都不行。
①四则运算,对于4个数字,要运算3次,排列数是4的3次方=64次;
②选四个数字出来运算,排列数是13的4次方=28561;
③运算次序,对于任意4个数,选择了3个符号进行运算,如果都是从左到右运算,就已经通过循环计算出来了,如果是先计算两侧再计算中间,就要多计算一次看结果是否正确。例如(9-1)*(4-1),不管如何换数字和符号的排位,如果不是按照先两侧再中间运算的次序,是得不出结果的。
光看前三个循环,次数就不少了。因为计算太多,就交给Access计算了,我当时用Access计算了5-10分钟。

详见附件

点击下载此附件

如果有更好的算法或更准确的答案,希望给予批评指导,谢谢!



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助