史上最全的随机数生成java算法

在多个指定区间内生成随机数,且随机数总和固定算法 在多个指定区间内生成随机数,且随机数总和固定算法 一、介绍 最近项目上遇到了一个需求就是在多个指定区间内生成总和恒定的随机数。 示例:在[1-3]、[4-20]、[24-100]区间上分别生成一个随机数且要求随机数总和为40。 输出:随机数 a = 2 、b = 5 、c = 33. 想了一整天,最后用一种不是太完美的方法解决了这个问题。 二、思路简述 在多个指定区间生成随机数这个好弄,但是要求总和恒定就有点难办了。 下边的思路我会用用上面的示例来解释。 首先我们可以确定的是这个随机数的总和肯定是要&g 阅读详情

原文:史上最全的随机数生成java算法

源代码下载地址:http://www.zuidaima.com/share/1585762703215616.htm

前段时间有其他牛人分享的随机数激起了我分享随机数的想法

java随机字符补充版

【maven+junit】 java生成指定为位数的随机密码

我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法:

1 String password = RandomUtil.generateString(10);

源码如下:

package com.javaniu.core.util;

import java.util.Random;

/**
* @author www.zuidaima.com
**/
public class RandomUtil {
	public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	public static final String NUMBERCHAR = "0123456789";

	/**
	 * 返回一个定长的随机字符串(只包含大小写字母、数字)
	 * 
	 * @param length
	 *            随机字符串长度
	 * @return 随机字符串
	 */
	public static String generateString(int length) {
		StringBuffer sb = new StringBuffer();
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length())));
		}
		return sb.toString();
	}

	/**
	 * 返回一个定长的随机纯字母字符串(只包含大小写字母)
	 * 
	 * @param length
	 *            随机字符串长度
	 * @return 随机字符串
	 */
	public static String generateMixString(int length) {
		StringBuffer sb = new StringBuffer();
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			sb.append(ALLCHAR.charAt(random.nextInt(LETTERCHAR.length())));
		}
		return sb.toString();
	}

	/**
	 * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)
	 * 
	 * @param length
	 *            随机字符串长度
	 * @return 随机字符串
	 */
	public static String generateLowerString(int length) {
		return generateMixString(length).toLowerCase();
	}

	/**
	 * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)
	 * 
	 * @param length
	 *            随机字符串长度
	 * @return 随机字符串
	 */
	public static String generateUpperString(int length) {
		return generateMixString(length).toUpperCase();
	}

	/**
	 * 生成一个定长的纯0字符串
	 * 
	 * @param length
	 *            字符串长度
	 * @return 纯0字符串
	 */
	public static String generateZeroString(int length) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; i++) {
			sb.append('0');
		}
		return sb.toString();
	}

	/**
	 * 根据数字生成一个定长的字符串,长度不够前面补0
	 * 
	 * @param num
	 *            数字
	 * @param fixdlenth
	 *            字符串长度
	 * @return 定长的字符串
	 */
	public static String toFixdLengthString(long num, int fixdlenth) {
		StringBuffer sb = new StringBuffer();
		String strNum = String.valueOf(num);
		if (fixdlenth - strNum.length() >= 0) {
			sb.append(generateZeroString(fixdlenth - strNum.length()));
		} else {
			throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
					+ "的字符串发生异常!");
		}
		sb.append(strNum);
		return sb.toString();
	}

	/**
	 * 每次生成的len位数都不相同
	 * 
	 * @param param
	 * @return 定长的数字
	 */
	public static int getNotSimple(int[] param, int len) {
		Random rand = new Random();
		for (int i = param.length; i > 1; i--) {
			int index = rand.nextInt(i);
			int tmp = param[index];
			param[index] = param[i - 1];
			param[i - 1] = tmp;
		}
		int result = 0;
		for (int i = 0; i < len; i++) {
			result = result * 10 + param[i];
		}
		return result;
	}

	public static void main(String[] args) {
		System.out.println("返回一个定长的随机字符串(只包含大小写字母、数字):" + generateString(10));
		System.out
				.println("返回一个定长的随机纯字母字符串(只包含大小写字母):" + generateMixString(10));
		System.out.println("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"
				+ generateLowerString(10));
		System.out.println("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"
				+ generateUpperString(10));
		System.out.println("生成一个定长的纯0字符串:" + generateZeroString(10));
		System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"
				+ toFixdLengthString(123, 10));
		int[] in = { 1, 2, 3, 4, 5, 6, 7 };
		System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));
	}
}


有图有真相:

史上最全的随机数生成java算法


.NET适配HarmonyOS进展 1. 前言 目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情。我目前业余时间正在移植Avalonia到HarmonyOS,去年在.NET Conf CN上分享过,目前又取得一点进展,所以本文把所有问题进行整合与大家进行分享。 阅读详情

相关推荐

World Creator地形导入UE

导出预设选择高度图(heigh map)格式选择PNG 16位,或者RAW 16位,需要反转y轴(与虚幻不同),命名格式会自动带一个× , 将×改成_ 或者删掉自己命名 (虚幻名称不支持x符号)导入虚幻 , 修改Z轴 , 就是用 地形最高 - 地形最低 , 然后除以512 , 再乘以100。把这个数字填入Z轴缩放 , 点击生成即可。

UE星空 2154

史上最全的java随机数生成算法(转)

史上最全的java随机数生成算法

云淡风轻、仅此一抹 4万+

【EPICS学习记录】根据官方教程创建一个IOC应用

参照官网给出的IOC创建教程逐步操作完成了一个IOC应用的创建,官网教程中有部分过程表述的不清晰,自己摸索之后完成了IOC的创建,并把流程记录下来。其中有一些操作不是很理解,有问题或者建议欢迎指正。

yifeng_H的博客 3661

Java随机生成0-9不重复数字

Java随机生成0-9不重复数字 public static Random myRandom = new Random(System.currentTimeMillis()); public static String getRandom() { String Num = ""; List<String> list = new ArrayList<String>(); for (int i = 0; i < 10

QQ_1357581075,百无一用是书生 3279

Unity Addressable资源缓存路径自定义指南:告别C盘爆满烦恼

本文详细介绍了如何自定义Unity Addressable系统的资源缓存路径,解决其默认存储在C盘导致的磁盘空间不足问题。通过配置CacheInitializationSettings并编写编辑器脚本,开发者可以将缓存迁移至项目目录,实现资源的集中管理,提升团队协作效率与开发环境一致性。

pytorch8learner的博客 475

1.5元主控搞定高精度电流电压采集?STC8G1K08+INA180A3硬件设计全解析

本文详细解析了如何利用成本仅1.5元的STC8G1K08单片机与INA180A3电流检测放大器,构建一套高精度、低成本的电流电压采集系统。文章深入剖析了硬件设计精髓,包括利用MCU内部上拉电阻直驱数码管以节省成本、INA180A3的配置与计算,以及实现高频率采集并与上位机高速通信的软件策略,为嵌入式开发中的极致性价比设计提供了完整方案。

weixin_29166013的博客 600

java生成8位随机自然数数_实用的随机数生成类Random:测试(随机产生100个不重复的正整数)...

实用的随机数生成类Random:测试(使用Random类随机生成100个不重复的正整数)一、之前我们使用随机数用的是Math类的random()方法:tips:产生随机数(0~9中任意整数)的方法:int random = (int)(Math.random()*10);1.商场幸运抽奖程序。会员号的百位数字等于产生的随机数即为幸运会员。public class GoodLuck{public s...

weixin_34552961的博客 2876

MATLAB机械臂建模实战:标准D-H法与改进D-H法到底选哪个?(附代码对比)

本文深入解析MATLAB中机械臂建模的标准D-H法与改进D-H法的本质区别,提供详细的代码对比和可视化结果。通过实际案例,帮助读者根据应用场景选择合适方法,并避免常见建模陷阱。特别关注Link函数和SerialLink工具的使用技巧,提升机械臂建模效率。

grape的博客 1121

JAVA生成八位不重复的随机数最快的方法(省时间省空间)

JAVA生成八位不重复的随机数最快的方法

码字码字码字 5606

ResNet理论基础与具体实现(详细教程)

论文地址:Deep Residual Learning for Image Recognition ​ Identity Mappings in Deep Residual Networks pytroch源码地址:resnet 0x00 前言 ResNet是2015年就提出的网络结构,中文名字叫作深度残差网络,主要作用是图像分类。现在在图像分割、目标检测等领域都有很...

coordinate的博客 8329

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

在指定范围内生成多个不重复随机数(详解)

运行截图 Q:如何在1~31范围内生成100000个不重复的随机数? 所需知识:Random的使用:1.调包 2.实例化 Random AAA = new Random(); 3.创建 AAA.nextInt(x)+y;//表示[ y , x+y-1 ]范围 import java.util.Random;//调包 public class Test1 { public static void main(String[] args) { long start = System.curr.

ZJH 1095

[Python图像处理] 二.OpenCV+Numpy库读取与修改像素

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分...

杨秀璋的专栏 3万+

史上最全的java随机数生成算法 转

史上最全的java随机数生成算法 转

qq_43680149的博客 425

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java随机算法_史上最全的随机数生成java算法

前段时间有其他牛人分享的随机数激起了我分享随机数的想法我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法:String password = RandomUtil.generateString(10);源码如下:package com.javaniu.core.util;import java.util.Random;public class RandomUtil {pub...

weixin_35178718的博客 436

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java实现随机数生成算法_史上最全的java随机数生成算法分享

package com.javaniu.core.util;import java.util.Random;public class RandomUtil {public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";public static final...

weixin_28914869的博客 315

java 随机数生成算法_史上最全的java随机数生成算法[转载]

1 packagecom.zuidaima.core.util;23 importjava.util.Random;45 public classRandomUtil {6 public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";7 p...

weixin_36246453的博客 261

java随机数_史上最全的java随机数生成算法分享

package com.javaniu.core.util;import java.util.Random;public class RandomUtil {public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";public static final...

weixin_39628405的博客 247

史上最全的java随机数生成算法

转自他人博客,代码自认为比较ok,固不做解释,请自行体会!package com.javaniu.core.util;import java.util.Random;public class RandomUtil { public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN

Record Feel 542

java 随机数算法_史上最全的java随机数生成算法分享(转)

1 packagecom.javaniu.core.util;2 importjava.util.Random;3 public classRandomUtil {4 public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";5 public sta...

weixin_39732491的博客 134

史上最全的java随机数生成算法[转载]

1 package com.zuidaima.core.util; 2 3 import java.util.Random; 4 5 public class RandomUtil { 6 public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEF...

weixin_30379973的博客 191

史上最全的java随机数/字符串生成算法(转)

代码如下:   [java] view plain copy   print? package com.zuidaima.core.util;      import java.util.Random;      public class RandomUtil {       public static final String ALLCHAR = "0123...

weixin_33842328的博客 418
上一篇: 浏览器 仿新浪头像裁剪 有图有真相!!!
下一篇: 8款样式新颖的jQueryCSS3网页菜单
springmvc_springdata
博客等级 码龄12年 197粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值