代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
数字计算工具 NumberUtil
作者:
imcto
/ 发布于
2018/4/24
/
1292
import java.util.HashSet; import java.util.Random; import java.util.Set; /** * * NumberUtil.java * * @desc 数字计算工具 * @author Guoxp * @datatime Apr 7, 2013 3:52:29 PM * */ public class NumberUtil { /** 生成不重复随机数 * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * @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; } /** 生成不重复随机数 * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * @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(); System.out.println(util.sqrt(100)); } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
imcto
贡献的其它代码
(
12
)
.
取得某年(year)第几周(weeks)的星期几(weekDay)的日期
.
数字计算工具 NumberUtil
.
A*算法实现五子棋人机对弈
.
获取特定JSON格式数据节点
.
SQL被阻塞查询
.
谷歌地图添加文本标注
.
sql查询含有某列名的所有表
.
Scala调用Java类
.
最大子段和
.
多进程共享变量
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3