玩24点游戏怎么玩。2,2,8,9。该怎么做?

1429人阅读
程序员需要的逻辑思维(32)
24点游戏的分类:
如果按照可能出现的数字来分类的话,有2类:
(1)扑克牌类:1,2,3,4,5,6,7,8,9,10,11,12,13
(2)计算器类:0,1,2,3,4,5,6,7,8,9
毫无疑问,用扑克牌玩的24点游戏,都是第(1)类扑克牌类,用计算器玩的24点游戏,都是第(2)类计算器类。
如果按照运算规则来分类的话,首先24的基本规则:
4个数字可以任意排序,可以任意加括号,运算符+-*/这4个可以选择,但是在选择的时候有2类:
(a)无限制任意选择
(b)必须满足,在计算的过程中不会出现2个数的除法产生分数的情况,在此限制之下运算符可以任选
这2类的区别是,(a)类允许(5-1/5)*5这样的式子,而(b)类不允许
24点游戏的求解:
大致可以分2类:
1,先枚举4个数在表达式中的顺序,24种,然后再枚举计算顺序和运算符,使得4个数化为3个数,
然后再化为2个数,最后化为1个数看是不是24
2,从4个数里面任取2个数,枚举计算顺序和运算符变成1个数,使得总共化为3个数
然后再化为2个数,最后化为1个数看是不是24
编程之美上面用的就是第2类
在我的博客里面,用的是第1类,游戏规则是第(1)类(b)类
为了方便,将代码略微修改变成如下代码:
#include&iostream&
using namespace std;
bool ok(int a, int b)
if (a + b == 24 || a - b == 24 || a*b == 24 || a != 0 && a == 24 * b)
cout && a && & & && b && endl;
return true;
return false;
bool ok(int a, int b, int c)
if (b == 0)
if (ok(a, c))return true;
return false;
if (c == 0)
if (ok(a, b))return true;
return false;
if (ok((a + b), c) || ok((a - b), c) || ok((a * b), c))return true;
if (a%b == 0 && ok(a / b, c))return true;
if (ok(a, b + c) || ok(a, b - c) || ok(a, b * c))return true;
if (b%c == 0 && ok(a, b / c))return true;
return false;
bool ok(int a, int b, int c, int d)
if (ok(a + b, c, d) || ok(a - b, c, d) || ok(a * b, c, d))return true;
if (a%b == 0 && ok(a / b, c, d))return true;
if (ok(a, b + c, d) || ok(a, b - c, d) || ok(a, b * c, d))return true;
if (b%c == 0 && ok(a, b / c, d))return true;
if (ok(a, b, c + d) || ok(a, b, c - d) || ok(a, b, c * d))return true;
if (c%d == 0 && ok(a, b, c / d))return true;
return false;
bool ok1(int a, int b, int c, int d)
if (ok(a, b, c, d) || ok(a, c, b, d) || ok(b, a, c, d) || ok(b, c, a, d) || ok(c, a, b, d) || ok(c, b, a, d))return true;
return false;
int main()
int a, b, c, d;
while (scanf(&%d %d %d %d&,&a,&b,&c,&d))
if (ok1(a, b, c, d) || ok1(b, c, d, a) || ok1(c, d, a, b) || ok1(d, a, b, c))cout && &Yes& && endl;
else cout && &No& && endl;
下面讨论(a)和(b)的区别,到底有多少例子(以下简称必出现分数例子),是在(b)类规则下是计算不出结果的,在(a)类下是可以的。
比如1,5,5,5就是一个特殊例子,
不难发现,这样的例子只有6种情况:
(a-b/c)*d 和 (b/c-a)*d 和&(a+b/c)*d 和&& d/(a-b/c)和 d/(b/c-a)
和&d/(a+b/c)
以下将可以用上述6种方法计算出来的例子称为可出现分数例子。
必出现分数例子,肯定都是可出现分数例子,但是反过来未必,
比如9,9,6,2,(9+9-6)*2=24,(2+6/9)*9=24
实际上,可出现分数例子,如果包含0的话,就一定不是必出现分数例子,
比如0,2,6,8,8/(2/6-0)=24,8*6/2-0=24
所以下面讨论,对于扑克牌类,可出现分数例子有哪些,其中又有哪些是必出现分数例子。
将6种情况化成整型方程:
(a*c-b)*d=24*c&和&(b-a*c)*d=24*c&和&(a*c+b)*d=24*c&和&c*d=24*(a*c-b)&和&c*d=24*(b-a*c)&和&c*d=24*(a*c+b)
求出所有可出现分数例子的代码:
#include&iostream&
using namespace std;
bool ok(int a, int b, int c, int d)
if ((a*c - b)*d == 24 * c || (b - a*c)*d == 24 * c || (a*c + b)*d == 24 * c)return true;
if (c*d == 24 * (a*c - b) || c*d == 24 * (b - a*c) || c*d == 24 * (a*c + b))return true;
return false;
int main()
for (int a = 1; a &= 13; a++)for (int b = 1; b &= 13; b++)
for (int c = 1; c &= 13; c++)for (int d = 1; d &= 13; d++)
&& ok(a, b, c, d))cout && a && & & && b && & & && c && & & && d && endl;
1 11 13 13
1 13 11 11
再看着其中有多少组是必出现分数例子。
可以把上面的2个代码整合起来,也可以把上面的输出输入到第1个程序里面判断。
最后可以得到,必出现分数例子只有如下17个(其中有2个是重复的)
1 3 4 6 & & ——— 6/(1-3/4)
1 5 4 6 & & ——— 6/(5/4-1)
1 5 6 4 & & ———4/(1-5/6) (这2个是重复的)
1 6 8 6 & & ——— 6/(1-6/8)
1 12 8 12& ———12/(12/8-1)
2 2 11 11 & &——— (2+2/11)*11
2 2 13 13 & & ——— (2-2/13)*13
2 4 10 10 & ———(2+4/10)*10
2 10 7 7 & ———(2+10/7)*7
3 3 7 7 & ——— (3+3/7)*7
3 5 2 12 &——— 12/(3-5/2)
3 8 3 8 & &——— 8/(3-8/3)
4 4 7 7 & &——— (4-4/7)*7
5 1 5 5 & &——— (5-1/5)*5
5 2 10 5 &——— (5-2/10)*5
5 11 7 7 ——— (5-11/7)*7
7 11 5 5 &———(7-11/5)*5
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:629682次
积分:13559
积分:13559
排名:第911名
原创:657篇
评论:90条
阅读:1401
文章:31篇
阅读:33244
文章:52篇
阅读:52309
文章:275篇
阅读:279759
文章:228篇
阅读:241030
(11)(20)(59)(75)(20)(9)(6)(25)(80)(100)(42)(143)(67)当前位置: >>
24点111213=24?开始游戏 游戏规则 游戏规则给出4个数字,所给数字均为有理数,用加、 减、乘、除(可加括号)把给出的数算成 24.每个数必须用一次且只能用一次,先 算出结果者获胜。 例:3、8
、8、9 答案1:(9―8)×8×3 答案2: 3×8 ÷(9―8) 答案3:(9―8÷8)×3开始游戏 (10-3-3)×6答案33610 13-(4-3×5)答案13354 11+13+13-13答案13131311 11+6×3-5答案11653 4+(5-3)×10答案10345 5×2+10+4答案51042 游戏结束科目:初中数学
题型:填空题
“24点游戏”:用下面这组数凑成24点(每个数只能用一次).2,6,7,8.算式________.
科目:初中数学
来源:江西省期中题
题型:填空题
“24点游戏”:用下面这组数凑成24点(每个数只能用一次).2,6,7,8.算式(&&& ).
精英家教网新版app上线啦!用app只需扫描书本条形码就能找到作业,家长给孩子检查作业更省心,同学们作业对答案更方便,扫描上方二维码立刻安装!
请输入姓名
请输入手机号动作 - 24点,24点游戏,24点游戏大全|||||
搞笑 - 24点,24点游戏,24点游戏大全||||| |
射击 - 24点,24点游戏,24点游戏大全|||||
女生 - 24点,24点游戏,24点游戏大全||||||
白领 - 24点,24点游戏,24点游戏大全|||||
体育 - 24点,24点游戏,24点游戏大全|||||
请后,查看自己收藏的小游戏
大家都在玩
24点,24点游戏,24点游戏大全
24点,24点游戏,24点游戏大全
[积分小游戏]3518人挑战
[积分小游戏]3402人挑战
[积分小游戏]3015人挑战
[积分小游戏]2609人挑战
[积分小游戏]2125人挑战
[积分小游戏]2000人挑战
[积分小游戏]1920人挑战
[积分小游戏]1809人挑战
[积分小游戏]1778人挑战
[积分小游戏]1606人挑战
[积分小游戏]1606人挑战
[积分小游戏]1493人挑战
[积分小游戏]1414人挑战
[积分小游戏]1311人挑战
24点,24点游戏,24点游戏大全
1[冒险]2[策略]3[策略]4[动作]5[动作]6[敏捷]7[策略]8[动作]9[策略]10[策略]11[冒险]12[冒险]13[休闲]14[休闲]15[休闲]1617181920
2[装扮]3[休闲]4[益智]5[益智]6[休闲]7[动作]8[冒险]9[休闲]10[益智]11[益智]12[益智]13[敏捷]14[敏捷]15[休闲]1617181920
做蛋糕小游戏,美眉做蛋糕小游戏,美女做蛋糕小游戏,做蛋糕小游戏下载,做蛋糕小游戏大全,做饭小游戏,做饭小游戏大全
各类游戏任你选
做蛋糕小游戏,美眉做蛋糕小游戏,美女做蛋糕小游戏,做蛋糕小游戏大全,做饭小游戏,做饭小游戏大全 (欢迎和我们交换友情链接,合作QQ#)

我要回帖

更多关于 计算器24点游戏怎么玩 的文章

 

随机推荐