计算24点

算24点 算法经典 回溯法 算24点 算法经典 回溯法 简单实现,简单改一下格式,就要成为自己的了! 立即下载

<html>
<head>
<title>24点</title>
<meta name="author" content="dlpower@163.com">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>

<body>
<br>
计算24点(加、减、乘、除、括号) Javascript版 v1.1<br><br>
作者:<a href='mailto:dlpower@163.com'>dlpower@163.com</a> (转贴请注明作者)<br><br>
2004-04-26 <br><br><br><br>
<form>
请输入四个数字(1-13):<br><br>
<input type="text" name="fa" size="2">
<input type="text" name="fb" size="2">
<input type="text" name="fc" size="2">
<input type="text" name="fd" size="2">
<br><br><input type="button" name="btn" onclick="javascript:funCount()" value="  计算  ">
</form>


<br><br>
<br><br>
一副牌(52张)中,任意抽取4张可有1820种不同组合,其中有458个牌组算不出24点。
<br><br>
二十世纪80年代中期,孙士杰从上海到美国定居。孙士杰有几位邻居是美国人。邻居家<br>
的小孩到他家串门,他没有别的玩具供孩子们玩,就灵机一动,拿出一副扑克来教他们<br>
玩“24点”。谁知,这一玩,竟令美国孩子着了迷。这些孩子又把这种游戏带回家中和<br>
学校,人们发现这种游戏对开发智力十分有益,后来就在全美推广开了。

 


<script language="JavaScript">
function log(str)
{
 document.write("<br>"+str);
}

//生成计算表达式
function genExpress(exp,a,b,c,d,m1,m2,m3)
{
 var exp=exp.replace("a",a);
 exp=exp.replace("b",b);
 exp=exp.replace("c",c);
 exp=exp.replace("d",d);
 exp=exp.replace("m1",m1);
 exp=exp.replace("m2",m2);
 exp=exp.replace("m3",m3);
 return exp;
}


var answer = new Array();//正确答案的表达式
var counter = 0;//答案的个数

//测试表达式是否正确
function test(expn,a,b,c,d,m1,m2,m3)
{
 var exp;
 var ret;
 exp = genExpress(expn,a,b,c,d,m1,m2,m3);//生成计算表达式
 eval("ret = "+exp);
 if ( Math.abs(ret - 24) < 0.1 )
 {
  exp = exp.replace(";","");
  exp = replaceAll(exp,"*","×");
  exp = replaceAll(exp, "/","÷");
  var have = false;
  for ( var i=0; i<counter; i++)
  {
   if ( exp == answer[i] )
   {
    have = true;
    break;
   }
  }
  if ( !have )
  {
   answer[counter] = exp;
   counter++;
   log("<font color=red><b>"+counter+":&nbsp;&nbsp;"+exp+"</b></font>");
  }
 }
}

function replaceAll (streng, soeg, erstat)
{
 var st = streng;
 if (soeg.length == 0)
  return st;
 var idx = st.indexOf(soeg);
 while (idx >= 0)       
 { 
  st = st.substring(0,idx) + erstat + st.substr(idx+soeg.length);
  idx = st.indexOf(soeg);
 }
 return st;
}

var n = new Array();//四个数字

//接收四个输入框的数字,调用主程序
function funCount()
{
 n[0] = document.forms[0].fa.value;
 n[1] = document.forms[0].fb.value;
 n[2] = document.forms[0].fc.value;
 n[3] = document.forms[0].fd.value;
 if ( n[0] > 0 && n[1] > 0 && n[2] > 0 && n[3] > 0 && n[0] < 14 && n[1] < 14 && n[2] < 14 && n[3] < 14 )
 {
  log("<font size=5><b>"+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+"的24点答案:</b></font><br>");
  log("<input type='button' onclick='history.back(-1);' value=' 再来一次 '><br>");
  funMain();
  if ( counter == 0 )
  {
   log("没有答案!");
  }
 }
 else
 {
  alert("输入错误!");
 }
}

//主程序
function funMain()
{
    var m = new Array();
 //四种运算符
    m[0] = "+";
    m[1] = "-";
    m[2] = "*";
    m[3] = "/";
   
 //11种表达式
    var exp1 = "a m1 b m2 c m3 d;";
    var exp2 = "(a m1 b) m2 c m3 d;";
    var exp3 = "(a m1 b m2 c) m3 d;";
    var exp4 = "((a m1 b) m2 c) m3 d;";
    var exp5 = "(a m1 (b m2 c)) m3 d;";
    var exp6 = "a m1 (b m2 c) m3 d;";
    var exp7 = "a m1 (b m2 c m3 d);";
    var exp8 = "a m1 ((b m2 c) m3 d);";
    var exp9 = "a m1 (b m2 (c m3 d));";
    var exp10 = "a m1 b m2(c m3 d);";
    var exp11 = "(a m1 b) m2 (c m3 d);";
   
    var a,b,c,d;//四个数字
    var m1,m2,m3;//三个运算符
   
    for (var i=0;i<4;i++)
    {
     a = n[i];
     for (var j=0;j<4;j++)
     {
   if ( i == j ) continue;//从未选的三个数字中选择一个数字
      b = n[j];
      for (var x=0;x<4;x++)
      {
    if ( x == j || x == i ) continue;//从未选的两个数字中选择一个数字
       c = n[x];
       for (var y=0;y<4;y++)
       {
     if ( y == x || y == j || y == i ) continue;//从未选的一个数字中选择一个数字
        d = n[y];
   
        for (var ta=0;ta<4;ta++)
        {
         m1 = m[ta];      
         for (var tb=0;tb<4;tb++)
         {
          m2 = m[tb];      
          for (var tc=0;tc<4;tc++)
          {
           m3 = m[tc];    
           for (var k=1;k<12;k++)
           {
            eval("test(exp"+k+",a,b,c,d,m1,m2,m3);");
           }
          }
         }
        }
       }
      }
     }
    }
}
</script>
</body>

</html>

Ubuntu24.04/20.04设置网络共享文件夹 Ubuntu20.04利用向日葵远程控制时,不能传输文件。使用linux版本QQ来传输是可以的,不过linuxqq功能真的很弱。因此,打算在Ubuntu系统中建立一个共享文件夹,可在局域网中访问。 1、新建共享文件夹 获取root权限,或者登陆root账户。可在/home文件夹(或其它文件夹)下新建一个文件夹,如share。 右击文件夹,选择“本地网络共享”菜单。按下图设置。 点击确定。如果系统已经安装了samba服务器,就可以进入第3步。如果没有,会提示安装,按提示安装,可能会出错,可进. 阅读详情

相关推荐

Zoom AI 技术架构研究:联合式方法与多模态集成

通过 Zoom AI 开放平台,企业可以自定义 AI 模块 (如法律合规审查、客户反馈分析),扩展应用场景。这种开放平台策略使企业能够根据自身需求定制 AI 功能,满足特定业务需求。

shao.bing的专栏 1318

算24点的一般方法及例题

据说一副牌(52张)中,任意抽取4张可有1820种不同组合,其中有458个牌组算不出24点。 下面几组是比较难的:4,4,7,7 (4-4/7)*7 1,5,5,5 (5-1/5)*55,5,5,5 5*5-5/51,3,4,6 6/(1-3/4) “算24点”作为一种扑克牌智力游戏,还应注意计算中的技巧问题。计算时,我们不可能把牌面上的4个数的不...

weixin_33850015的博客 3万+

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1321

24点javascript自动计算

在线计算24点 进去之前,可尝试自己算算这个24点 3 3 8 8 能算出的绝对不是一般人啊。 <!Doctype html><html> <head> <title>24点终结者</title> <meta name="viewport" content="initial-scale=1" /&g...

sliang733的博客 3553

SC-FDMA

<br />SC-FDMA(Single-carrier Frequency-Division Multiple Access,單載波分頻多工),是LTE的上行鏈路的主流多址。<br />SC-FDMA是單波載(Single-carrier),與OFDMA相比之下具有的較低的PAPR(峰值/平均功率比,peak-to-average power ratio),比多載波的PAPR低1-3dB左右(PAPR是由于多載波在频域叠加引起)。更低的PAPR可以使行動終端(mobile terminal)在發送功效方面

jod的专栏 3299

08 rk3568 模拟smi mdio RTL8367RB(一)

前提需求:硬件连接普通gpio ,RTL8367RB需要mdio通信 使用的gpio是 MDC GPIO3_B3 (SMI时钟线) MDIO GPIO3_B4 (SMI数据线) 2. 数据结构与枚举 3.1 GPIO 初始化(地址映射) 内核无法直接访问物理地址,通过ioremap将 GPIO 控制器的物理地址映射为虚拟地址,后续通过虚拟地址操作 GPIO 寄存器。 3.2 设置引脚方向 3.3 设置电平 3.4 读取电平 6. SMI 总线时序实现 SMI 总线通信依赖严格的时序(起始信号、

qq_39451352的博客 541

计算24点程序代码

如何计算二十四点#include<stdio.h> char mark[4]={'+','-','*','/'}; float cal(float x,float y,int mark) { switch(mark) { case 0:return x+y; case 1:return x-y; case 2:return x*y; case 3:return

徐奕的专栏 2万+

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

点查(Point Lookup)是指通过 ​​唯一键(Primary Key)​​ 快速定位并返回单条或少量数据的查询模式。例如:根据用户 ID 查询用户信息、根据订单号查询订单详情等。点查的核心诉求是 ​​低延迟​​ 和 ​​高吞吐​​,适用于实时风控、在线分析等场景。​​定义主键表结构​​,优化数据分布。​​构建过滤条件​​,使用指定查询键。​​执行查询并处理结果​​,结合流式更新实现实时查询。

阿华田的博客 533

Java 语言 计算 24 点

计算 24 点 游戏: 任意 输入 4 个数字,进行计算,判断结果能否等于 24. 若 有,则 具体的 输出表达式 这里的计算 24 点,有两种形式 下面式子中 * 可能是 + - * / 第一种: (a * ( b * ( c * d ))) 第二种: (a * b)+ ( c * d ) 或 (a * b)- ( c * d ) import java.util.Arrays; imp...

Bruce's blog 808

【示波器专题】无源探头的常用附件

使用探头进行测试,我们不仅要知道探头的原理,还需要了解探头的常用附件及其使用方式,这样才能在尽可能在测试中提高效率且减少出错的概率

一点硬件 692

TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate

这篇被 ICLR 2026 接收的论文提出了一种名为TurboQuant的全新在线向量量化(Vector Quantization, VQ)算法。该研究的核心目标是解决大语言模型(LLM)在长上下文推理时面临的 KV Cache 显存消耗瓶颈,以及大规模向量数据库在近似最近邻检索中的存储与延迟问题。有别于现有技术,TurboQuant 是一种无需任何校准数据、无需训练的在线算法(Data-oblivious)。

c_cpp_csharp的专栏 120

计算24点C#代码

C#代码,并修正前门c++代码的一个bug using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Calc24Points { public class Cell { public enum

I have a adream 3524

大模型复杂问答能力评测框架:从原理到实践

在人工智能领域,大语言模型(LLM)的评估是衡量其实际应用价值的关键环节。其核心原理在于通过系统化的评测框架,对模型的理解、推理、整合与表达能力进行量化分析。传统的NLP基准测试往往侧重于事实性检索或简单推理,难以全面反映模型在应对多跳推理、隐含条件、长上下文整合等复杂现实任务时的真实性能。因此,专门针对复杂问答设计的评测技术应运而生,其价值在于为模型选型、效果优化和瓶颈诊断提供数据驱动的科学依据。该技术广泛应用于需要深度逻辑判断的业务场景,如智能投顾、法律咨询、医疗诊断等。本文聚焦的`tan92hl/Co

weixin_28679635的博客 362

Python 小程序:计算24点

使用较为简单的函数编写24点的小程序,整理24点表格,方便且休闲。

m0_73180626的博客 2987

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

qt实现24点计算

突然接触24点游戏,突发奇想,是否可以全排列方式来进行计算,首先,建立一个类 class S_24_C { public: #define Max_Num (4*3*2) //#define Max_Num1 (4*4*4*4) S_24_C(); unsigned char sour_num[4]; unsigned char sour_num_order;//填入sour_num的下标 unsigned char order_date[Max_Num]

qq_43683623的博客 1174

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

一个计算24点的程序

using System;class TwentyFourPoint{ private  char[] card = new char[4]; private  char[] tempSortCard = new char[4]; private  char[] sortCard = new char[96]; private  char[] symbol = {+,-,*,/};

给从前的我 1947

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

24点算法java_Java计算24点 | 学步园

/**** @author hlb* 功能:给定四个整数组成的数字,计算所有24点的算式* 实现简单,有待完善*/public class jisuan24 {//插入排序public static int[] cr(int[] arr){for(int i = 1; i < arr.length; i ++){int tmp = arr[i];int j = i - 1;while(tmp...

weixin_39600328的博客 241

javascript计算24点

24点计算器。 精简版: function $(id){return document.getElementById(id)}window.onload=i;function i(){$('c').onclick=c}function c(){var n=$('n').value;$('a').innerHTML="正在计算";var q=n.split(" ");if(q.length

352

24点计算器

24点游戏中每张牌必须只能用一次,如抽出的牌是3、8、8、9,那么算式为(9-8)×8×3或3×8÷(9-8)或(9-8÷8)×3等。24点游戏是一种益智游戏,24点是把4个整数(一般是正整数)通过加减乘除以及括号运算,使最后的计算结果是24的一个数学游戏,24点可以考验人的智力和数学敏感性,它能在游戏中提高人们的心算能力。24点计算器中能列举出所有的可能计算结果.

羊逸羊的博客 540

24点可不可以用计算机算出,24点计算器

24点计算器是基于24点扑克牌智力游戏研发的一款数学计算软件,通过24点计算器,用户能够快速得出4个数字算出24的方法。在24点计算器这款软件中,用户只要将你需要考虑的4个数字输入进去,然后点击计算,软件就能自动帮你得出这几个数字的加减乘除结果,非常方便好用,你不用再消耗自己的脑细胞了。而且这款软件包体小巧,操作简单,让你轻松就能获得乐趣,快来试试吧!24点计算器怎么玩?“24点计算器”作为一种扑...

weixin_39690963的博客 1459

C++/Qt 计算24点

C++/Qt 计算24点 ​ 游戏的算法可描述如下:4个1-10的数字,用加、减、乘、除和括号把数子算成24,每个数字都必须使用到,且只能用一次。 ​ 用C++写会更加的方便: ​ 在这本书中要求了表达式中数字的顺序不能改变,所以在7.7节 中提供的算法不具有普遍适应性,但是算法的思路还是很简单并且清晰。不需要多动脑袋。在他的基础上,可以轻易的扩展成一般的算法。 一些比较难的24点计算 1 3 9 10 1 4 5 6 1 5 5 5 2 7 10 10 3 3 7 7 3 3

读书笔记 3423

javafx 制作 24点游戏 24点计算器 24点算法

源码地址:https://github.com/woniu9524/24-point 项目简介 这是一个二十四点小程序,功能分成二十四点游戏和二十四点计算器两个部分。目标及其实现如下。 目标:控制台输入4个数字,产生一组解 实现:【24点计算机—一个结果】 目标:测试所有二十四点问题,给出每组的所有解 实现:【24点游戏----生成所有解筛选游戏难度】 目标:JavaFX GUI 美化1、2 实现:【制作了GUI界面】 目标:对于一般问题:多于4张牌,并且答案不是24的也能处理 * 实现:【24点计算器—所

weixin_45791222的博客 1175

N个数计算24点

<br />N个数计算24点<br />问题:<br />    N个1到13之间的自然数,找出所有能通过加减乘除计算(每个数有且只能用一次)得到24的组合?<br /> <br />计算24点常用的算法有:① 任取两个数,计算后,将结果放回去,再从剩下的数中任取两个,如此反复直到只剩下一个数;② 先构建前缀/后缀表达式,再计算该表达式;③ 用集合保存中间结果,集合间两两进行合并计算得到新集合(或者对给定的一个集合,对其所有的子集合进行合并计算)。<br />本文采用第一种方法。定义六种操作符:ADD、SU

flyinghearts的专栏 3466

24点计算

我认为这个程序最难的点是那五种计算方法,只要列出了计算方法,然后判断四个数字能不能等于24,按照自己的想法设计出程序的界面就行了。有一个我犯的低级错误!!!!就是输出的四个数字i j k l ,放到计算方法中时,数字要输正确,一个数字只能用一次!!!!不然就这么个 低级错误 找了好久好久还有 四个数字要用浮点型,因为里面涉及 除法。

qq_60093337的博客 498
下一篇: 配置Apache James邮件服务器
dlpower
博客等级 码龄23年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值