`

J2EE工具类:NumberUtil.java

阅读更多
package com.worthtech.app.util;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class NumberUtil {

//	生成不重复随机数1
	/** 
	     * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 
	     * @param begin 最小数字(包含该数) 
	     * @param end 最大数字(不包含该数) 
	     * @param size 指定产生随机数的个数 
	     */  
	    public int[] generateRandomNumber(int begin, int end, int size) {  
	        // 加入逻辑判断,确保begin<end并且size不能大于该表示范围  
	        if (begin >= end || (end - begin) < size) {  
	            return null;  
	        }         
	        // 种子你可以随意生成,但不能重复  
	        int[] seed = new int[end - begin];   
	      
	        for (int i = begin; i < end; i ++) {  
	            seed[i - begin] = i;  
	        }  
	        int[] ranArr = new int[size];  
	        Random ran = new Random();  
	        // 数量你可以自己定义。  
	        for (int i = 0; i < size; i++) {  
	            // 得到一个位置  
	            int j = ran.nextInt(seed.length - i);             
	            // 得到那个位置的数值  
	            ranArr[i] = seed[j];  
	            // 将最后一个未用的数字放到这里  
	            seed[j] = seed[seed.length - 1 - i];  
	        }  
	        return ranArr;  
	}
//		生成不重复随机数2
	    /** 
	         * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 
	         * @param begin 最小数字(包含该数) 
	         * @param end 最大数字(不包含该数) 
	         * @param size 指定产生随机数的个数 
	         */  
	 public Integer[] generateBySet(int begin, int end, int size) {  
        // 加入逻辑判断,确保begin<end并且size不能大于该表示范围  
        if (begin >= end || (end - begin) < size) {  
            return null;  
        }  
          
        Random ran = new Random();  
        Set<Integer> set = new HashSet<Integer>();  
        while (set.size() < size) {  
            set.add(begin + ran.nextInt(end - begin));  
        }  
          
        Integer[] ranArr = new Integer[size];  
        ranArr = set.toArray(new Integer[size]);  
        //ranArr = (Integer[]) set.toArray();  
          
        return ranArr;  
	}
	 /**
    * 判断String是否是整数
    */
    public boolean isInteger(String s){
        if((s != null)&&(s!=""))
         return s.matches("^[0-9]*$");
        else
         return false;
    }
    /**
    * 判断字符串是否是浮点数
    */
    public boolean isDouble(String value) {
	    try {
	       Double.parseDouble(value);
	       if (value.contains("."))
	    	   return true;
	       return false;
	    } catch (NumberFormatException e) {
	       return false;
	    }
    }
    /**
    * 判断字符串是否是数字
    */
    public boolean isNumber(String value) {
    	return isInteger(value) || isDouble(value);
    }

        //排序方法
	public static void sort(int[] array) {// 小到大的排序
		int temp = 0;
		for (int i = 0; i < array.length; i++) {
			for (int j = i; j < array.length; j++) {
				if (array[i] > array[j]) {
					temp = array[i];
					array[i] = array[j];
					array[j] = temp;
				}
			}
		}
	}

/**
	 * 是否是质数
	 */
	public static boolean isPrimes(int n) {
		for (int i = 2; i <= Math.sqrt(n); i++) {
			if (n % i == 0) {
				return false;
			}
		}
		return true;
	}

	/**
	 * 阶乘
	 * @param n
	 * @return
	 */
	public static int factorial(int n) {
		if (n == 1) {
			return 1;
		}
		return n * factorial(n - 1);
	}
/**
	 * 平方根算法
	 * @param x
	 * @return
	 */
	public static long sqrt(long x) {
	    long y = 0;
	    long b = (~Long.MAX_VALUE) >>> 1;
	    while (b > 0) {
	        if (x >= y + b) {
	             x -= y + b;
	             y >>= 1;
	             y += b;
	        } else {
	             y >>= 1;
	        } 
	        b >>= 2;
	   } 
	    return y;
	}
    
private int math_subnode(int selectNum, int minNum) {
		if (selectNum == minNum) {
			return 1;
		} else {
			return selectNum * math_subnode(selectNum - 1, minNum);
		}
	}

	private int math_node(int selectNum) {
		if (selectNum == 0) {
			return 1;
		} else {
			return selectNum * math_node(selectNum - 1);
		}
	}
	/**
	 * 可以用于计算双色球、大乐透注数的方法
	 * selectNum:选中了的小球个数
	 * minNum:至少要选中多少个小球
	 * 比如大乐透35选5可以这样调用processMultiple(7,5);
	 * 就是数学中的:C75=7*6/2*1
	 */
	public int processMultiple(int selectNum, int minNum) {
		int result;
		result = math_subnode(selectNum, minNum)
				/ math_node(selectNum - minNum);
		return result;
	}

// 求m和n的最大公约数   
    public static int gongyue(int m, int n) {   
        while (m % n != 0) {   
            int temp = m % n;   
            m = n;   
            n = temp;   
        }   
        return n;   
    }   
  
    /**  
     * 求两数的最小公倍数  
     */     
    public static int gongbei(int m, int n) {   
        return m * n / gongyue(m, n);   
    }
    
    /**  
     * 递归求两数的最大公约数  
     */   
    public static int divisor(int m,int n){    
        if(m%n==0){   
           return n;   
       }else{   
           return divisor(n,m%n);   
       }   
    }
    public static void main(String[] args){
//    	NumberUtil util=new NumberUtil();
    }
}

分享到:
评论

相关推荐

    j2ee.jar架包

    j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar...

    j2ee 1.4所有jar包

    activation.jar javax.servlet.jar javax.servlet.jsp.jar jboss-j2ee.jar jboss-jaxrpc.jar jboss-jsr77.jar jboss-saaj.jar mail.jar namespace.jar xml-apis.jar

    J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 )

    Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是 Sun Microsystems 推出的用于构建分布式、多层企业级应用的框架。它为开发者提供了多种服务和组件模型,包括Java Servlets、JavaServer Pages ...

    21天学通J2EE和一些J2EE书及代码].java.-.Teach.Yourself.J2EE.in.21.Days.-.Sams.(eBook-pdf)

    《21天学通J2EE》一书旨在为读者提供一个系统且高效的学习路径,以掌握Java 2 Enterprise Edition(J2EE)的核心概念和技术。J2EE是Sun Microsystems在2000年推出的一套企业级Java平台标准,它提供了一组组件和服务...

    java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.

    java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.java帮助文档\J2EE 1.4 docs.

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。

    Turbo ePrinting(J2EE版)开发指南.rar

    《Turbo ePrinting(J2EE版)开发指南》是一份专为Java企业级开发者准备的详细教程,旨在帮助他们理解和掌握如何在J2EE平台上开发和实现Turbo ePrinting系统。该指南涵盖了从基础概念到高级实践的全方位内容,旨在提升...

    J2EE考试题目及答案.pdf

    J2EE 是 Java 企业版平台的缩写,指的是 Java 语言中用于开发企业级应用程序的技术平台。J2EE 平台主要包括四层模型:客户端层、Web 层、业务逻辑层和企业信息系统层。 J2EE 平台的四层模型: * 客户端层:运行在...

    第一章 J2EE概述.ppt

    J2EE(Java Enterprise Edition),是Java EE编程技术课程的一部分,为企业级应用程序提供了一种标准化的开发框架。J2EE的出现是为了解决传统应用程序模型的种种缺陷,提供了一种可扩展、可维护、可伸缩的开发架构。...

    Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007

    《Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007》这本书是针对Java和J2EE开发者求职面试的一本指南,它提供了丰富的面试问题和解答,帮助求职者准备J2EE相关的职位面试。这本书的第二版在2007年4月发布...

    Java.J2EE.Job.Interview.Companion.2nd.Edition.Apr.2007.pdf

    ### Java/J2EE Job Interview Companion知识点总结 #### 一、书籍基本信息 - **书名**:《Java/J2EE Job Interview Companion》第二版 - **出版时间**:2007年4月 - **作者**:K. Arulkumaran 和 A. Sivayini - **...

    j2ee源码 Commonjava.java

    j2ee源码j2ee源码j2ee源码j2ee源码j2ee源码j2ee源码j2ee源Commonjava.javaCommonjava.javaCommonjava.javaCommonjava.javaCommonjava.java

    J2EE_architecture.rar_site:www.pudn.com_架构师

    J2EE提供JTA(Java Transaction API)来处理事务,JMS(Java Message Service)用于异步通信,JNDI(Java Naming and Directory Interface)提供命名和目录服务。 5. **中间件(Middleware)**:J2EE应用服务器(如...

    java-一个j2ee的开发案例程序.zip.zip

    你可以从中学习到如何将Java类、接口和框架整合起来实现一个完整的J2EE应用。 其次,"一个j2ee的开发案例程序.zip"是案例程序的源代码或二进制文件。这个压缩文件可能包含以下几个部分: 1. **源代码**:可能包括...

    archive_一个j2ee的开发案例程序.zip.zip

    标题中的"archive_一个j2EE的开发案例程序.zip.zip"表明这是一个压缩文件,其中包含了一个J2EE(Java 2 Platform, Enterprise Edition)的开发案例。J2EE是Java平台的一个版本,专为构建企业级分布式应用系统设计。...

    J2EE系列讲座之Hibernate.lesson1.rar

    5. **实体类和映射文件**:讲解如何创建Java实体类,以及对应的.hbm.xml映射文件,理解属性与数据库字段的对应。 6. **CRUD操作**:展示如何使用Hibernate进行创建(Create)、读取(Read)、更新(Update)和删除...

    Java开发语言的开发平台与J2EE编程技术问题研究.pdf

    J2EE(Java 2 Platform, Enterprise Edition)是基于Java语言的一种企业级应用开发平台,它侧重于企业级应用的开发。J2EE技术的出现,弥补了Java在企业级应用中的不足,其核心是Enterprise JavaBeans(EJB),提供了...

    javax.management.j2ee:javax.management.j2ee api的存储库

    :warning: 该项目现在是EE4J计划的一部分。 该仓库已被归档,因为所有活动现在都在。 有关整体EE4J过渡状态,请参见。 javax.management.j2ee javax.management.j2ee api的存储库

    j2ee.chm.zip_chm help id java_j2ee chm_j2ee help c++_j2ee.c_zip

    《J2EE技术详解——基于j2ee.chm.zip_chm help id java_j2ee chm_j2ee help c++_j2ee.c_zip的综合指南》 在信息技术领域,Java 2 Platform, Enterprise Edition(J2EE)是用于构建企业级应用的重要平台。它提供了...

    Java.J2EE.EJB-Enterprise.JavaBeans, 3rd Edition-Titan.Books

    《Java.J2EE.EJB-Enterprise.JavaBeans, 3rd Edition-Titan.Books》是一部针对企业级Java开发的重要参考资料,特别关注Java Enterprise Edition (J2EE) 中的Enterprise JavaBeans (EJB) 技术。这本书的第三版,由...

Global site tag (gtag.js) - Google Analytics