| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3466 人关注过本帖
标题:算术问题(24点)
只看楼主 加入收藏
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用soft_wind在2006-6-3 10:48:00的发言:
其实都是用穷举,哎!

这里穷举没什么错呀,要找出有限多解,算法复杂度不高的时候穷举就没问题。


http://myajax95./
2006-06-04 11:23
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
不知道用float来表示没个数是否够用。
例如下面的问题:
3 3 7 7

3/7 = 3/7
3/7 + 3 = 24/7
24/7 * 7 = 24。


http://myajax95./
2006-06-04 11:25
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

这是3 3 7 7的解.
Please input four number between 1-12:
3 3 7 7
3/7=0.428571
0.428571+3=3.42857
3.42857*7=24

恩,4张24点的情况不是很多,但当5张的时候就够受了。
小时候经常玩这个数学小游戏。


对不礼貌的女生收钱......
2006-06-04 11:36
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
版主,帮忙看个问题,下面这道题我想了一个晚上,调到现在还没完成。
请您帮忙看下,谢谢了
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=69440&page=1

对不礼貌的女生收钱......
2006-06-04 11:38
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
嗯,竟然没得23.999999。不错。

http://myajax95./
2006-06-04 11:40
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

我用c++做过一个,希望对你有帮助。

lIxeUCW6.rar (9.6 KB) 算术问题(24点)



我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2006-06-04 11:45
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
/*
以下代码仅给出
24点游戏一个解
或者判定其无解
*/
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define EPS 1e-8
#define DIN double /*或int*/
#define MAX 10 /* 或13 */
char strs[12],operator[]="+-*/",opch[][3]={"+","-","×","÷"};
DIN ans(int ith,DIN x,DIN y)
{ switch(operator[ith-1])
{ case '+': return x+y;
case '-': return x-y;
case '*': return x*y;
case '/': if(y)if(sizeof(DIN)==sizeof(int)&&(int)x%(int)y==0
||sizeof(DIN)==sizeof(double))return x/y;
default : return -1; }
}
int ok2(DIN x,DIN y)
{ int ix; for(ix=1; ix<=4; ix++)
if(fabs(ans(ix,x,y)-24)<EPS)return(ix);
return(0);
}
int ok3(DIN a,DIN b,DIN c)
{ int i,j,k; DIN x[3];
x[0]=a; x[1]=b; x[2]=c;
for(i=0; i<3; i++)
for(j=0; j<3; j++)if(j!=i)
for(k=0; k<3; k++)if(k!=i && k!=j)
{ int ix,imid; DIN y;
for(ix=1; ix<=4; ix++)
{ y=ans(ix,x[i],x[j]); if(y<=0)continue;
if((imid=ok2(y,x[k]))!=0)
{ if(i==0)printf("(%s%s%d)%s%d\n",strs,opch[ix-1],
(int)x[j],opch[imid-1],(int)x[k]);
else if(j==0)printf("(%d%s%s)%s%d\n",(int)x[i],opch[ix-1],
strs,opch[imid-1],(int)x[k]);
else if(k==0)printf("(%d%s%d)%s%s\n",(int)x[i],opch[ix-1],
(int)x[j],opch[imid-1],strs);
return(1);
}
}
} return(0);
}
int point24(int p[4])
{ int a,b,c,d,i,ix; DIN y;
for(a=0; a<4; a++)
for(b=0; b<4; b++)if(b!=a)
for(c=0; c<4; c++)if(c!=a && c!=b)
for(d=0; d<4; d++)if(d!=a && d!=b && d!=c)
for(ix=1; ix<=4; ix++)
{ y=ans(ix,p[a],p[b]); if(y<=0)continue;
strs[0]='('; itoa(p[a],&strs[1],10);
strcat(strs,opch[ix-1]); i=strlen(strs);
itoa(p[b], &strs[i],10); i=strlen(strs);
strs[i]=')'; strs[i+1]='\0';
if(ok3(y,p[c],p[d]))return(1);
} return(0);
}
main( )
{ int p[4],total,cannot; printf("4 cards: ");
scanf("%d%*c%d%*c%d%*c%d",p,p+1,p+2,p+3);
point24(p);
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-04 12:05
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
//续前:若添加下列红色代码,则可做全面检测
main( )
{ int p[4],total,cannot; printf("4 cards: ");
scanf("%d%*c%d%*c%d%*c%d",p,p+1,p+2,p+3);
point24(p);

total=0; cannot=0;
for(p[0]= 1 ; p[0]<=MAX; p[0]++)
for(p[1]=p[0]; p[1]<=MAX; p[1]++)
for(p[2]=p[1]; p[2]<=MAX; p[2]++)
for(p[3]=p[2]; p[3]<=MAX; p[3]++)
{ total++; if(!point24(p)){ cannot++;
printf("%d,%d,%d,%d\n",p[0],p[1],p[2],p[3]); }
} printf("MAX=%d,TOTAL=%d,CANNOT=%d\n",MAX,total,cannot);
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-04 12:10
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-05 10:49
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-05 10:50
快速回复:算术问题(24点)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034414 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved