24点算法大全

作者&投稿:淳红 (若有异议请与网页底部的电邮联系)
24点算法大全~

(3/7+3)*7=24

  下面是我自己写的一个程序:

  我的解法是把这个问题分解成了两个子问题,首先求出4个数字的无重复全排列,放到一个数组里面,再对没一个排列情况,从头到尾穷举所有的四则运算情况。注意到除法是特殊的,我用x/y表示x除以y,用x|y表示x分之y。注意到,如果穷举的解得到-24的话,只需要把有减法的地方调换一下顺序就可以了,代码如下
  /***********************************************************************************/
  #include
  #include
  #include
  #include
  int index[4]={0,1,2,3};//used to generate subscription collection
  int sub[4]; //used in p() only
  float f[4]={8.0f,3.0f,3.0f,8.0f};//the 24 point numbers
  float fs[24][4];//all possible permutaions of f
  float tmp[4]; //used for buf
  int g_number=0; //number of permutations
  float RES[4];
  char op[3];
  void p(int idx){//求全排列的函数
  if(idx==4){
  for(int i=0;i<4;++i){tmp[i]=f[sub[i]];}
  for(int g=0;g<g_number;++g){if(memcmp(fs[g],tmp,sizeof(float)*4)==0)return;}
  for(int i=0;i<4;++i){fs[g_number][i]=f[sub[i]];}
  g_number++;
  return;
  }
  for(int i=0;i<4;++i){//make subscription collections
  bool dupflag=false;
  for(int j=0;j<idx;++j){if(sub[j]==i)dupflag=true;}
  if(dupflag==true)continue;
  sub[idx]=index[i];
  p(idx+1);
  }
  }
  void solve(int L){//对某个排列,递归求所有四则运算的结果,找到就退出
  if(L==3){
  if(fabs(fabs(RES[L])-24.0f)<0.01f){
  printf("Found solution,RES=%f,((%d%c%d)%c%d)%c%d
",RES[L],
  (int)f[0],op[0],
  (int)f[1],op[1],
  (int)f[2],op[2],
  (int)f[3]);
  exit(0);
  }
  return;
  }
  for(int j=0;j<5;++j){//j judges for operators
  if(j==0){RES[L+1]=RES[L]+tmp[L+1];op[L]='+';solve(L+1);}
  if(j==1){RES[L+1]=RES[L]-tmp[L+1];op[L]='-';solve(L+1);}
  if(j==2){RES[L+1]=RES[L]*tmp[L+1];op[L]='*';solve(L+1);}
  if(j==3&&tmp[L+1]!=0)
  {RES[L+1]=RES[L]/tmp[L+1];op[L]='/';solve(L+1);}
  if(j==4&&RES[L+1]!=0)
  {RES[L+1]=tmp[L+1]/RES[L];op[L]='|';solve(L+1);}
  }
  }
  int main(int argc,char* argv[]){//should avoid 0
  f[0]=atoi(argv[1]);
  f[1]=atoi(argv[2]);
  f[2]=atoi(argv[3]);
  f[3]=atoi(argv[4]);
  p(0);
  for(int i=0;i<g_number;++i){
  memcpy(tmp,fs[i],sizeof(float)*4);
  RES[0]=tmp[0];
  for(int t=0;t<4;++t){ printf("%d,",(int)tmp[t]); }
  printf("
");
  solve(0);
  }
  printf("Found no solution :(
");
  return 0;
  }

  ----------编译运行,运行时的参数就是4个数字
  g++ p.cpp && ./a.out 1 5 5 5
  1,5,5,5,
  Found solution,RES=-24.000000,((1/5)-5)*5
  g++ p.cpp && ./a.out 8 3 3 8
  8,3,3,8,
  Found solution,RES=-24.000006,((8/3)-3)|8
  上面这个解写出来就是
  8
  --------- = 24
  3-(8/3)
  主程序为了简化,省去了对输入的检查,楼主可以自己添加。

(3÷7+3)×7

(3*7)+(7-4)

(3/7+3)*7

38--44




24点算法:有3、4、13、6四个数每数用一次进行加减乘除后等于24?_百 ...
回答:确定有解吗

七点8×4点876的简便算法
七点8×4点876的简便算法 七点8×4点876 = 38.0328 没有简算 直接计算

美国GPA算法中4.0是相当于百分制的多少?
相当于百分之84。普通算法:百分制中的90分以上可视为4分,80分以上 为3分,70分以上为2分,60分以上为1分。标准算法:加权平均分除以一百再乘以4。

我是1986年农历10月初7,下午4点多出生,用称骨的算法是几量几钱
1986丙寅 6钱 十月 8钱 初七 8钱 申时 8钱 0.6+0.8+0.8+0.8=3两 http:\/\/baike.baidu.com\/view\/3205806.htm?fr=aladdin

4.9.4.4.二十四点怎么箅?
(9-4)×4+4 =5×4+4 =24 所以4、9、4、4二十四点算法为(9-4)×4+4=24

如何实现3点4点和5点的FFT算法?有知道的麻烦讲一下感激不尽啊!_百度...
FFT 用于 2 的 整数次方 的 点数 的 时序 信号 做快速 傅里叶 变换。一般要求输入 大量的 时序点 例如几百几千点,计算 谱。 没听说过 用于 3,4,5 点的。当然,你可以用 内插法,把它插成 512 点,1024点 后再 做 FFT. 不过,有无实用价值不知道了。

有4张扑克牌点数分别是5.4.3.1.经过怎样的运算才能得到24呢?请至少写...
你好!用1,3,4,5算24点,共有52种算法。[﹙4×5﹚+3]+1 [5-﹙1-4﹚]×3 [﹙5+4﹚-1]×3 3×[4-﹙1-5﹚]﹙3+1﹚+﹙5×4﹚[5×﹙1+3﹚]+4 [4-﹙1-5﹚]×3 4+[﹙1+3﹚×5]3×[﹙5-1﹚+4]4+[5×﹙3+1﹚]﹙4-1﹚×﹙3+5﹚3×[﹙5...

五点1×4点7+5点9×4点9-4点九的简便算法是啥
五点1×4点7+5点9×4点9-4点九的简便算法是啥 五点1×4点7+5点9×4点9-4点九 =4.9*(5.1+5.9-1)=4.9*10 =49

2,4,6,10,二十四点算法
2乘以4等于8 8加6等于14 14加10等于24

四分位数详细资料大全
与中位数不同的是,四分位数位置的确定方法有几种,每种方法得到的结果会有一定差异,但差异不会很大。基本介绍 中文名 :四分位数 外文名 :quartile 属性 :统计学中将排列的数字分为四等分 套用 :统计学中的箱线图绘制 相关算法 :将n个数进行排列 示例 :必须先确定四分...

杂多县13916876801: 算24点:291010 -
子丰友硫磺:[答案] 用2,9,10,10算24点,共有12种算法. 10+[9+﹙10÷2﹚] 9+[10+﹙10÷2﹚] ﹙9+10﹚+﹙10÷2﹚ [9+﹙10÷2﹚]+10 [﹙10÷2﹚+9]+10 ﹙10÷2﹚+﹙9+10﹚ 10+[﹙10÷2﹚+9] 9+[﹙10÷2﹚+10] [﹙10÷2﹚+10]+9 [10+﹙10÷2﹚]+9 ﹙10+9﹚+﹙10÷2﹚ ﹙10÷2...

杂多县13916876801: 24点计算方法 -
子丰友硫磺:[答案] 很简单就是:凑数24=15+9=25-1=12*2=96/4等等,还有些特殊运算符,举例如下5÷5=11.常规方法:5*(5-1/5)2.几个特殊运算:(5-5/5*1)!=4!=4*3*2*1=24(5-1*5/5)!1*(5-5/5)!(5-1)!*5/5 5!/(5+5mod1)=5!/(5+0) √5 * √5 *5...

杂多县13916876801: 24点计算方法 -
子丰友硫磺: 很简单就是:凑数 24=15+9=25-1=12*2=96/4等等,还有些特殊运算符,举例如下 5÷5=1 1. 常规方法: 5*(5-1/5) 2. 几个特殊运算: (5-5/5*1)!=4!=4*3*2*1=24 (5-1*5/5)! 1*(5-5/5)! (5-1)!*5/5 5!/(5+5mod1)=5!/(5+0) √5 * √5 *5-1

杂多县13916876801: 有没有快速算24点的方法? -
子丰友硫磺: 算24点一般利用以下三个算式:8*3、6*4、12*2.

杂多县13916876801: 1 3 9 10四张牌算24点 -
子丰友硫磺:[答案] 你好!24点游戏规则:每个数字只用一次,但可以调换顺序,只允许加、减、乘、除等四则运算,可以使用括号改变运算顺序. 用1,3,9,10算24点,共有4种算法. [3*﹙10+1﹚]-9 [3*﹙1+10﹚]-9 [﹙1+10﹚*3]-9 [﹙10+1﹚*3]-9

杂多县13916876801: 4.5.6.12.怎么算24点 -
子丰友硫磺:[答案] 用4,5,6,12算24点,共有16种算法. ﹙6+4﹚*﹙12÷5﹚ 12*[﹙6+4﹚÷5] [12*﹙4+6﹚]÷5 ﹙6+4﹚÷﹙5÷12﹚ ﹙4+6﹚÷﹙5÷12﹚ 12÷[5÷﹙4+6﹚] ﹙4+6﹚*﹙12÷5﹚ ﹙12÷5﹚*﹙6+4﹚ ﹙12÷5﹚*﹙4+6﹚ [﹙4+6﹚*12]÷5 12÷[5÷﹙6+4﹚] [﹙4+6﹚÷5]*...

杂多县13916876801: 用2、3、4、6这四张牌上的数算“24”点,你能想出五种算法吗?用算式表示出来. -
子丰友硫磺:[答案] 2+4+(3*6)=24 2*6+4*3=24 (2*4)*(6-3)=24 (3-2)*4*6=24 6*4/(3-2)=24 ((4+2)*3)+6=24 (4-2+6)*3=24 (6*2-4)*3=24 ((6-3)*2)*4=24

杂多县13916876801: 求二十四点的算法~(要看内容)注意:是要带有负数的,如: - 2,5, - 6, - 1是要求带有负数的二十四点的算法, -
子丰友硫磺:[答案] (-6*10)/3-4=-24 3*(10-6+4)=24 -6*3-10+4=-24 3*(10+4-6)=24 (3*4-10)²*(-6) =-24

杂多县13916876801: 24点算法14561 4 5 6 算24点 -
子丰友硫磺:[答案] (4÷(1-(5÷6)))=24 (6÷((5÷4)-1))=24

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网