24点算法


<INPUT id=a type="text"><br>
<INPUT id=b type="text"><br>
<INPUT id=c type="text" ><br>
<INPUT id=d type="text"><br>
<span id="ppp" name="ppp">24点牌算法:</span><br>
<br><span id="ppps" name="ppps"></span><br>
<input type="button" οnclick="dosumstr()" id=button1 name=button1 value="24点牌算法">
<script>
var strings=""
var string2=""
var resultary=new Array
var jk=0
function dosumstr()
{
resultary.splice(0,resultary.length)
var A,B,C,D 
var g=new Array
 g[0]=document.all.a.value
 g[1]=document.all.b.value
 g[2]=document.all.c.value
 g[3]=document.all.d.value
 //for loop the sequence of the 4 numbers
   for (var i=0;i<4;i++)
    {
        A = g[i];
  inner:
  for (var j=0;j<4;j++)
   {
    if(i==j)
    {
    continue inner;//从未选的三个数字中选择一个数字
    }
    else
    {
    B = g[j];
    }
    inner2:
   for (var x=0;x<4;x++)
   {
    if (j == x||i==x)
    {
    continue inner2;//从未选的两个数字中选择一个数字
    }
    else
    {
    C = g[x];
    }
    inner3:
    for (var y=0;y<4;y++)
    {
     if (x==y||i==y||j==y)
     {
     continue inner3;//从未选的一个数字中选择一个数字
     }
     else
     {
     D = g[y];
     }
    if(i!=j&&i!=x&&i!=y&&j!=x&&j!=y&&x!=y)
    {
    sum24(A,B,C,D)
    }
    }
   }
  }
 }
 var bbstr=resultary.join("<br>")
 for(var ii=0;ii<resultary.length;ii++)
 {
  filter:
  for(var jj=ii+1;jj<resultary.length;jj++)
  {
   if(String(resultary[ii])==String(resultary[jj]))
   {
   resultary.splice(jj,1);
   }
   else
   {
   continue filter;
   }
  }
 }
 
 var results=resultary.join("<br>")
 document.all.ppp.innerHTML=results
}

function sum24(A,B,C,D)
{
 var a=new Array
 var X,Y,Z
 a[0]="parseFloat(A)XparseFloat(B)YparseFloat(C)ZparseFloat(D)"    
 a[1]="(parseFloat(A)XparseFloat(B))YparseFloat(C)ZparseFloat(D)"  
 a[2]="(parseFloat(A)XparseFloat(B)YparseFloat(C))ZparseFloat(D)"    
 a[3]="(parseFloat(A)XparseFloat(B))Y(parseFloat(C)ZparseFloat(D))"
 a[4]="parseFloat(A)XparseFloat(B)Y(parseFloat(C)ZparseFloat(D))"
 a[5]="parseFloat(A)X(parseFloat(B)YparseFloat(C)ZparseFloat(D))"
 a[6]="parseFloat(A)X(parseFloat(B)YparseFloat(C))ZparseFloat(D)"
 a[7]="parseFloat((parseFloat(A)XparseFloat(B))YparseFloat(C))ZparseFloat(D)"
 a[8]="parseFloat(A)XparseFloat(((parseFloat(B)YparseFloat(C))ZparseFloat(D)))" 
 a[9]="parseFloat((parseFloat(A)X(parseFloat(B)YparseFloat(C))))ZparseFloat(D)" 
 a[10]="parseFloat(A)XparseFloat((parseFloat(B)Y(parseFloat(C)ZparseFloat(D))))"
 /*a[0]="AXBYCD" 
 a[1]="(AXB)YCZD"
 a[2]="(AXBYC)ZD"
 a[3]="(AXB)Y(CZD)"
 a[4]="AXBY(CZD)"
 a[5]="AX(BYCZD)"
 a[6]="AX(BYC)ZD"
 a[7]="((AXB)YC)ZD"
 a[8]="AX((BYC)ZD)"
 a[9]="(AX(BYC))ZD"
 a[10]="AX(BY(CZD))"*/
 var b=new Array
 b[0]="*"
 b[1]="+"
 b[2]="-"
 b[3]="/"
 var sumall=new Array
 var ints=0
  for(var i=0;i<a.length;i++)
  {
   for(var j=0;j<4;j++)
   {
    for(var k=0;k<4;k++)
    {
     for(var l=0;l<4;l++)
     {
     var re =/X/g;             // 创建正则表达式模式。
     var re2 =/Y/g;
     var re3 =/Z/g;
     var r = a[i].replace(re, String(b[j]));
     r=r.replace(re2, String(b[k]));
     r=r.replace(re3, String(b[l]));
     sumall[ints]=String(r)
     ints++
     }
    }
   }
  } 

 for(var il=0;il<sumall.length;il++)
 { 

  eval("var tempstr="+sumall[il])

  if(tempstr==24)
  {
     var reps=/parseFloat/g;
     var re1 =/parseFloat/(A/)/g;             // 创建正则表达式模式。
     var re12 =/parseFloat/(B/)/g;
     var re13 =/parseFloat/(C/)/g;
     var re14 =/parseFloat/(D/)/g;
     var rs = sumall[il].replace(re1, String(A));
     rs=rs.replace(re12,String(B));
     rs=rs.replace(re13,String(C));
     rs=rs.replace(re14,String(D));
     rs=rs.replace(reps,"")
    resultary[jk]=String(rs)
    jk++
  }

 }

}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值