博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Random随机数相关工具类
阅读量:6440 次
发布时间:2019-06-23

本文共 3227 字,大约阅读时间需要 10 分钟。

  hot3.png

package com.shuqian.tools;import java.util.Random;/** * Random随机数相关工具类 */public class RdTools {	public static void main(String[] args) {		String str = "";		for(int i=0;i<100;i++){			//str = gtEx(); //随机表达式			str = gtZs(); //整数表达式			str = str.replaceAll(".0","");			System.out.println("["+i+"][表达式] "+str);		}	}		/** 递归获取整数 */	public static String gtZs(){		String str = gtEx();		if(".0".equals(str.substring(str.length()-2))){			return str;		}else{			System.out.println("[递归] "+str);			return gtZs();		}	}			/** 获取3个随机数(1-9),进行随机加减乘数运行(+、-、*、/),返回整数运算结果的表达式 */	public static String gtEx(){		String str = gtRdNum()+gtRdEx()+gtRdNum()+gtRdEx()+gtRdNum();				double ts = 0.00;		//优先计算乘除(第一个运算符)		if("*".equals(str.substring(1,2)) || "/".equals(str.substring(1,2))){			if("*".equals(str.substring(1,2))){				ts = Integer.parseInt(str.substring(0,1))*Integer.parseInt(str.substring(2,3));			}else{				ts = Integer.parseInt(str.substring(0,1))/Integer.parseInt(str.substring(2,3));			}						//第二个运算符			if("+".equals(str.substring(3,4))){				ts = ts+Integer.parseInt(str.substring(4,5));			}else if("-".equals(str.substring(3,4))){				ts = ts-Integer.parseInt(str.substring(4,5));			}else if("*".equals(str.substring(3,4))){				ts = ts*Integer.parseInt(str.substring(4,5));			}else if("/".equals(str.substring(3,4))){				ts = ts/Integer.parseInt(str.substring(4,5));			}		}else{			//优先计算乘除(第二个运算符)			if("*".equals(str.substring(3,4)) || "/".equals(str.substring(3,4))){				if("*".equals(str.substring(3,4))){					ts = Integer.parseInt(str.substring(2,3))*Integer.parseInt(str.substring(4,5));				}else{					ts = Integer.parseInt(str.substring(2,3))/Integer.parseInt(str.substring(4,5));				}								//第二个运算符				if("+".equals(str.substring(1,2))){					ts = Integer.parseInt(str.substring(0,1))+ts;				}else if("-".equals(str.substring(1,2))){					ts = Integer.parseInt(str.substring(0,1))-ts;				}else if("*".equals(str.substring(1,2))){					ts = Integer.parseInt(str.substring(0,1))*ts;				}else if("/".equals(str.substring(1,2))){					ts = Integer.parseInt(str.substring(0,1))/ts;				}			}else{				//第一个运算符				if("+".equals(str.substring(1,2))){					ts = Integer.parseInt(str.substring(0,1))+Integer.parseInt(str.substring(2,3));				}else{					ts = Integer.parseInt(str.substring(0,1))-Integer.parseInt(str.substring(2,3));				}				//第二个运算符				if("+".equals(str.substring(3,4))){					ts = ts+Integer.parseInt(str.substring(4,5));				}else{					ts = ts-Integer.parseInt(str.substring(4,5));				}			}		}		return str+"="+ts;	}		static Random rd = new Random();	/** 产生1-9之间随机数 */	public static int gtRdNum(){		return rd.nextInt(9)+1; //(0-9内)+1 变相的变成了 1-10内	}	/** 产生(+、-、*、/)之间随机运算符 */	public static String gtRdEx(){		int ex = rd.nextInt(4); // 0+、1-、2*、3/		if(ex == 0){ return "+";}		if(ex == 1){ return "-";}		if(ex == 2){ return "*";}		if(ex == 3){ return "/";}		return "";	}}

 

[0][表达式] 9*5*1=45

[1][表达式] 5/1-8=-3
[2][表达式] 2-6/3
[3][表达式] 8-1/5=8
[4][表达式] 2*3/1=6
[5][表达式] 5-1*8=-3
[6][表达式] 3-8-9=-14
[7][表达式] 1*6-5=1
[递归] 1*8/7=1.1428571428571428
[8][表达式] 6*1+2=8
[9][表达式] 6-5+6=7
[10][表达式] 7*8+8=64
[11][表达式] 8*5-9=31
[12][表达式] 8+4*7=36
[13][表达式] 7/8-2=-2
[14][表达式] 6*9+3=57
[15][表达式] 4/5/4

 

转载于:https://my.oschina.net/matol/blog/735444

你可能感兴趣的文章
DELL服务器iDRAC相关设置
查看>>
JVM学习笔记(一)------基本结构
查看>>
$@等特定shell变量的含义
查看>>
我的友情链接
查看>>
(超详细版)Linux下Hadoop2.7.1集群环境的搭建(3台为例)
查看>>
策略模式、上下文与内部类的思考
查看>>
关于getCurrentUrl的获取问题
查看>>
2014年工作中遇到的20个问题:120-140
查看>>
elk系列4之kibana图形化操作【转】
查看>>
逆向project实战--Acid burn
查看>>
Apache Solr-6.0.1 (OpenLogic CentOS 7.2)
查看>>
java中List和Array相互转换
查看>>
目前支持WebGL的浏览器有哪些?
查看>>
ARKit从入门到精通(1)-ARKit初体验
查看>>
debug
查看>>
配置文件git config介绍
查看>>
IIS7的应用程序池详细解析
查看>>
java类路径classpath和包
查看>>
Information Retrieval 倒排索引 学习笔记
查看>>
【Git】Git-add之后-忽略部分文件的方法
查看>>