`
QuarterLifeForJava
  • 浏览: 177716 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

24点算法的Java低级简易实现

阅读更多
package test;

/**
 * @author QuarterLifeForJava
 */
public class Test {
	
	public static void main(String[] args) {
		int x[] = {8,8,3,3};
		int y[] = new int[x.length];
		for(int a=0;a<4;a++){
			for(int b=0;b<4;b++){
				for(int c=0;c<4;c++){
					for(int d=0;d<4;d++){
						if(a!=b&&b!=c&&c!=d&&d!=a&&a!=c&&b!=d){
							y[0] = x[a];
							y[1] = x[b];
							y[2] = x[c];
							y[3] = x[d];
							for(int i=0;i<4;i++){
								circle(y,i);
							}
						}
					}
				}
			}
		}
		
	}
	
	//边界判断
	public static boolean boundaryJudgment(double result){
		if(result>=23.99999999999999&&result<=24.00000000000001){
			return true;
		}else{
			return false;
		}
	}
	
	//加
	public static double jia(double x,double y){
		return x+y;
	}
	
	//减
	public static double jian(double x,double y){
		return x-y;
	}
	
	//乘
	public static double cheng(double x,double y){
		return x*y;
	}
	
	//除
	public static double chu(double x,double y){
		return x/y;
	}
	
	//循环选择
	public static double change(int num,double x,double y){
		switch(num){
			case 0:
				return jia(x,y);
			case 1:
				return jian(x,y);
			case 2:
				return cheng(x,y);
			case 3:
				return chu(x,y);
		}
		return 0;
	}
	
	//循环计算
	public static void circle(int x[],int choice){
		double mid = 0;
		double y = 0;
		double z = 0;
		for(int i=0;i<4;i++){
			mid = change(i,x[0],x[1]);
			z = mid;
			for(int j=0;j<4;j++){
				mid = z;
				switch(choice){
					case 0:
						mid = change(j,mid,x[2]);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,mid,x[3]);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 1:
						mid = change(j,mid,x[2]);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,x[3],mid);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 2:
						mid = change(j,x[2],mid);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,mid,x[3]);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
					case 3:
						mid = change(j,x[2],mid);
						for(int k=0;k<4;k++){
							y = mid;
							mid = change(k,x[3],mid);
							if(boundaryJudgment(mid)){
								System.out.println("可算24点");//想输出结果,请自己写个方法,这里略了
								System.exit(0);
							}else{
								mid = y;
							}
						}
						break;
				}
			}
		}
	}
}
分享到:
评论

相关推荐

    几个推荐算法的java实现

    本项目提供了一些推荐算法的Java实现,包括slopeone、SVD(奇异值分解)以及基于物品邻接的SVD(ItemNeighborSVD)。下面我们将详细探讨这些算法及其在Java中的实现。 1. **slopeone**: - Slope One是一种简单的...

    祖冲之密码算法Java实现

    9. **性能优化**:虽然祖冲之算法本身已经设计得很高效,但在Java中实现时,仍需要注意内存管理和计算性能,以适应可能的大规模数据加密需求。 10. **文档编写**:为了方便其他开发者理解和使用你的实现,需要编写...

    java国密算法实现

    总的来说,Java国密算法实现涉及了椭圆曲线加密和哈希函数两大核心概念,通过合理运用这些算法,可以构建安全可靠的加密通信和数据保护系统。在具体编程时,需要对算法原理有深入理解,并熟练掌握相关库的使用,以...

    DBSCAN聚类算法java实现

    java版的DBSCAN聚类算法实现,是典型的算法思路实现,遍历未访问的所有点,如果是核心点,就新建一个簇,然后遍历其邻域内的所有点集A,不断扩展,如果簇内的点时核心点,就将其邻域所有点纳入点集A,并从点集移除已...

    基于令牌桶算法的Java限流实现

    基于令牌桶算法的Java限流实现 在软件系统中,限流机制是一个重要的环节,它可以防止系统资源被过度使用,避免系统崩溃或性能下降。常见的限流算法有多种,如漏桶算法、令牌桶算法、滑动窗口算法等。在Java中,我们...

    java mrp算法实现

    【Java MRP算法实现】是基于Java编程语言构建的一个现代物料需求计划(Material Requirements Planning,简称MRP)系统。MRP系统是企业资源规划(ERP)的重要组成部分,它主要用于优化企业的生产计划,确保在正确的...

    1204 Java 遗传算法排课java sqlserver.rar_java排课算法_排课_排课系统java_遗传算法Java

    遗传算法在Java排课系统中的应用涉及到以下几个关键知识点: 1. **遗传算法**:遗传算法是一种全局优化方法,通过模拟生物进化的遗传过程,包括选择、交叉和变异操作,来逐步改进解的质量。在排课问题中,每个解...

    SVM 算法 java 实现

    支持向量机(Support Vector Machine,简称SVM)是一种广泛应用于分类和回归分析的机器学习算法。...总的来说,Encog为Java开发者提供了一个强大且易用的SVM实现工具,使得在Java环境中应用SVM算法变得简单而高效。

    道格拉斯-普克抽稀算法,java 实现

    道格拉斯-普克抽稀算法,java 实现

    多边形填充算法java实现

    在给定的标题“多边形填充算法java实现”中,我们可以推断这是一个Java编程项目,它实现了对多边形内部进行填充的功能。描述中提到的“扫描线算法”是实现这一功能的常见方法,这种方法基于逐行扫描图像并处理与...

    详解Java实现的k-means聚类算法

    Java实现的k-means聚类算法详解 k-means聚类算法是一种常用的无监督学习算法,用于对数据进行聚类分析。该算法的主要思想是将相似的数据点聚类到一起,形成不同的簇。Java语言是实现k-means聚类算法的不二之选。 ...

    AES加密算法(java)实现

    这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。...本软件是用java语言开发,实现了AES算法对文件的加密和解密,并在界面上加了进度条,来提示用户加密解密的进度。如果不足之处,欢迎留言。

    Java实现随机森林算法

    在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...

    KrigingCore_java_克里金插值算法实现_克里金算法_

    在实际应用中,这个Java实现可能会提供接口供用户输入数据点和目标点,然后调用内部的克里金插值算法进行计算。为了提高效率和灵活性,代码可能还支持不同类型的克里金方法(如简单克里金、普通克里金、泛克里金等)...

    JAVA 抽奖算法,JAVA 抽奖算法·

    该JAVA抽奖算法通过合理的概率缩放、累积概率计算以及随机数生成与比较等步骤,实现了基于不同概率分布的灵活抽奖功能。对于实际应用场景来说,这种算法不仅简单高效,而且易于扩展,能够满足多种不同的需求。

    BP算法的java实现

    BP算法的JAVA实现,BP神经网络的数学原理及其算法实现,实验使用IRIS数据集,BP神经网络,BP即Back Propagation的缩写,也就是反向传播的意思,顾名思义,将什么反向传播?文中将会解答。不仅如此,关于隐层的含义...

    数值算法与实现之JAVA插值算法

    【数值算法——JAVA实现的插值算法.示例】

    java实现银行家算法代码

    用java实现银行家调度算法,避免进程死锁!

    JAVA实现的A*算法

    利用JAVA语言编程实现的经典A*算法,复制到eclipse即可运行

    模糊匹配算法java实现

    Java作为一种流行的编程语言,提供了丰富的库和工具来实现各种模糊匹配算法。本篇将深入探讨如何使用Java实现模糊匹配,并介绍一些核心的概念和技术。 首先,我们要理解模糊匹配的基本原理。模糊匹配是指在两个字符...

Global site tag (gtag.js) - Google Analytics