- 浏览: 33734 次
- 性别:
- 来自: 湖南
文章分类
最新评论
public class Point24Utils2 { private static String[] opArray = { "+" , "-" , "*" , "-" }; //运算符数组 private static String[] expArray = new String[ 11 ]; //表达式数组 static { expArray[0 ] = "a m1 b m2 c m3 d" ; expArray[1 ] = "(a m1 b) m2 c m3 d" ; expArray[2 ] = "(a m1 b m2 c) m3 d" ; expArray[3 ] = "((a m1 b) m2 c) m3 d" ; expArray[4 ] = "(a m1 (b m2 c)) m3 d" ; expArray[5 ] = "a m1 (b m2 c) m3 d" ; expArray[6 ] = "a m1 (b m2 c m3 d)" ; expArray[7 ] = "a m1 ((b m2 c) m3 d)" ; expArray[8 ] = "a m1 (b m2 (c m3 d))" ; expArray[9 ] = "a m1 b m2(c m3 d)" ; expArray[10 ] = "(a m1 b) m2 (c m3 d)" ; } /** * 计算入口方法,返回实际的表达式 * @param n 用于计算24点的四个数字组成的数组 */ private static String execute(String[] n){ String a,b,c,d; //四个数字 String m1,m2,m3; //三个运算符 for ( int i= 0 ;i< 4 ;i++){ a = n[i]; for ( int j= 0 ;j< 4 ;j++){ if ( j == i ) continue ; //从未选的三个数字中选择一个数字 b = n[j]; for ( int x= 0 ;x< 4 ;x++){ if ( x == i || x == j ) continue ; //从未选的两个数字中选择一个数字 c = n[x]; for ( int y= 0 ;y< 4 ;y++){ if ( y == i || y == j || y == x ) continue ; //从未选的一个数字中选择一个数字 d = n[y]; //选择三个运算符 for ( int ta= 0 ;ta< 4 ;ta++){ m1 = opArray[ta]; for ( int tb= 0 ;tb< 4 ;tb++){ m2 = opArray[tb]; for ( int tc= 0 ;tc< 4 ;tc++){ m3 = opArray[tc]; for ( int k= 0 ;k< 11 ;k++){ //11种表达式 String result = calcalate(expArray[k], a, b, c, d, m1, m2, m3); if (result!= null ) return result; } } } } } } } } return null ; } /** * 计算表达式 * * @param exp 待验证的表达式模板 * @param a 数字1 * @param b 数字2 * @param c 数字3 * @param d 数字4 * @param m1 运算符1 * @param m2 运算符2 * @param m3 运算符3 */ private static String calcalate(String exp, String a, String b, String c, String d, String m1, String m2, String m3){ //生成计算表达式 exp = exp.replaceAll("a" , a); exp = exp.replaceAll("b" , b); exp = exp.replaceAll("c" , c); exp = exp.replaceAll("d" , d); exp = exp.replaceAll("m1" , m1); exp = exp.replaceAll("m2" , m2); exp = exp.replaceAll("m3" , m3); //执行表达式 FelEngine engine = new FelEngineImpl(); int result = ((Integer)engine.eval(exp)).intValue(); if (Math.abs(result - 24 ) < 0.1 ){ return exp; }else { return null ; } } /** * 取得能算得24的四位数字的集合 * @param count 数字组数 */ public static Set<String> genNumbers( int count){ Set<String> set = new HashSet<String>(); while ( true ){ StringBuffer sb = new StringBuffer(); //随机生成四位数字 String[] n = new String[ 4 ]; for ( int i= 0 ;i<n.length;i++){ String s = String.valueOf(Math.round(Math.floor(Math.random() * 9 )) + 1 ); n[i] = s; sb.append(s); } //计算 String result = execute(n); if (result!= null && !set.contains(sb.toString())){ set.add(sb.toString()); System.out.println(sb.toString() + " : " + result); } if (set.size()==count) break ; } return set; } public static void main(String[] args) { Set<String> set = genNumbers(5 ); //随机生成5组能算出24的数字 System.out.println("ok" ); } }
发表评论
-
HttpClient容易忽视的细节——连接关闭
2012-03-02 09:15 612HttpClient client = new HttpCli ... -
HTTPClient的多线程编程
2012-03-02 09:09 1475Axis2的连接主要采用了HttpClient进行与服务器的服 ... -
HttpClient超时区别
2012-03-02 09:07 1070HttpClient 4 设置超时 httpclient 超时 ... -
HttpClient Theading
2012-03-01 10:49 666有技术兴趣的 请加28830308群. 这篇文章概括了怎样在 ... -
HttpClient使用
2012-03-01 10:43 713有技术兴趣的 请加28830308群. HttpClien ... -
线程请求执行,一个多线程程执行HTTP请求的例子。
2012-03-01 10:40 1752package cn.lake.util; import ... -
httpclient 4 下载 文件
2012-03-01 10:38 938import java.io.File; import ja ... -
使用了httpclient实现的上传商品的demo
2012-03-01 10:36 1150package com.taobao.top.sample.u ... -
socket简介
2012-02-07 10:58 679第一步 充分理解Socket ... -
转载socket
2012-02-07 10:57 560对TCP/IP、UDP、Socket编程这些词你不会很陌生吧? ... -
Java的synchronized关键字:同步机制总结
2012-02-07 10:54 570不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对 ... -
JAVA RMI
2012-02-07 10:53 573Java RMI 指的是远程方法调用 (Remote Meth ... -
JXL生成复杂的EXCEL
2011-12-26 13:52 1376public String ExcelTaskRepo ... -
如何快速的为现有数据库建立数据字典?
2011-12-20 13:55 991大部分项目在验收时都需要向客户提供一份详细的数据字典,而编写数 ... -
在java中获取客户端真实的IP地址
2011-12-20 13:55 552public static String getRemoteA ... -
用JavaMail的API发送邮件
2011-12-20 13:55 5271、MimeMessage的包装类 public c ... -
在项目中整合FreeMarker框架
2011-12-16 15:40 579FreeMarker是一个用Java编写的模板引擎,既可以 ... -
Commons FTP范例
2011-12-16 15:33 501public class FtpUtil { privat ... -
Java实现的图片生成器
2011-12-16 15:32 517一、本图片生成器具有以下功能特性: 1、可以设置图 ... -
jacob学习总结
2011-12-16 15:27 439JACOB 就是 JAVA-COM Bridge的缩写,提供自 ...
相关推荐
在本讨论中,我们将深入探讨源码计算的相关知识点,涵盖其原理、应用以及相关的工具和技术。 源码计算的基础是编程语言的语法和语义理解。编程语言的语法规定了代码的结构和形式,而语义则关乎代码的实际含义。源码...
彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率计算app源码 彩票概率...
24点计算器是基于数学游戏24点设计的一款程序,目标是通过四则运算将四张扑克牌上的数字组合成24。这款计算器的源码对于我们学习易语言和理解计算逻辑提供了很好的实例。 在易语言中开发24点计算器,主要涉及到以下...
计算计算机易源码机垃圾源码 计算机易源码 计算机易源码 计算机易源码计算机易源码 计算机易源码
易语言源码易语言接近数计算源码.rar 易语言源码易语言接近数计算源码.rar 易语言源码易语言接近数计算源码.rar 易语言源码易语言接近数计算源码.rar 易语言源码易语言接近数计算源码.rar 易语言源码易语言接近...
微信小程序 五险一金计算 (源码)微信小程序 五险一金计算 (源码)微信小程序 五险一金计算 (源码)微信小程序 五险一金计算 (源码)微信小程序 五险一金计算 (源码)微信小程序 五险一金计算 (源码)微信小程序 五险一金...
Java 速算24点源码
通过阅读和分析源码,我们可以了解到以下几个关键知识点: 1. 股票交易数据结构:源码中可能会定义一个数据结构来存储股票交易记录,包括买入价格、卖出价格、交易数量等关键信息。理解这种数据结构对于计算盈亏至...
易语言源码易语言计算数学表达式源码.rar 易语言源码易语言计算数学表达式源码.rar 易语言源码易语言计算数学表达式源码.rar 易语言源码易语言计算数学表达式源码.rar 易语言源码易语言计算数学表达式源码.rar ...
8. **文件输入/输出**:源码可能涉及到读取和写入各种数据格式,如CSV、XML或二进制文件,以便保存和交换计算结果。 9. **科学计算中的精度控制**:在处理浮点数时,了解如何控制精度是必要的。源码可能会演示如何...
微信小程序24点计算游戏 (2)(源代码+截图)微信小程序24点计算游戏 (2)(源代码+截图)微信小程序24点计算游戏 (2)(源代码+截图)微信小程序24点计算游戏 (2)(源代码+截图)微信小程序24点计算游戏 (2)(源代码+截图)微信...
易语言源码易语言计算IP段源码.rar 易语言源码易语言计算IP段源码.rar 易语言源码易语言计算IP段源码.rar 易语言源码易语言计算IP段源码.rar 易语言源码易语言计算IP段源码.rar 易语言源码易语言计算IP段源码....
小程序源码 五险一金计算 (代码+截图)小程序源码 五险一金计算 (代码+截图)小程序源码 五险一金计算 (代码+截图)小程序源码 五险一金计算 (代码+截图)小程序源码 五险一金计算 (代码+截图)小程序源码 五险一金计算 ...
易语言源码重量计算工具易语言源码.rar 易语言源码重量计算工具易语言源码.rar 易语言源码重量计算工具易语言源码.rar 易语言源码重量计算工具易语言源码.rar 易语言源码重量计算工具易语言源码.rar 易语言源码...
微信小程序源码 五险一金计算(学习版)微信小程序源码 五险一金计算(学习版)微信小程序源码 五险一金计算(学习版)微信小程序源码 五险一金计算(学习版)微信小程序源码 五险一金计算(学习版)微信小程序源码 五险一金...
这个商品房屋税费计算源码是使用易语言编写的,主要功能是帮助用户计算购买商品房时涉及到的各种税费。在房地产交易中,税费是一个重要的组成部分,包括但不限于契税、增值税、个人所得税等,这些费用会根据购房者的...
本文将深入探讨易语言的基础知识,以及如何通过"易语言入门计算源码.zip"进行学习。 易语言的核心理念是"易学、易用、易开发",它的设计目标是降低编程的门槛,让更多的人能够参与到程序设计中来。易语言的语法结构...
易语言源码易语言计算直线点群源码.rar 易语言源码易语言计算直线点群源码.rar 易语言源码易语言计算直线点群源码.rar 易语言源码易语言计算直线点群源码.rar 易语言源码易语言计算直线点群源码.rar 易语言源码...
【标题】: "C语言二十四点游戏源码+注释.zip" 这个压缩包包含的是一个用C语言编写的二十四点游戏的源代码,它是一个基于数学逻辑和算法的小型游戏项目。二十四点游戏通常需要玩家从四张1到13的扑克牌中找到运算方式...
自动计算24点功能通常通过算法实现,该算法需要遍历所有可能的组合,检查四个数是否可以通过加减乘除和括号操作得到24。这部分代码可能会包含递归或循环,以及对数学表达式的解析和求值。 5. **事件监听**: 用户...