import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class RandomUtil {
public static char[] lower = "abcdefghijklmnopqrstuvwxyz".toCharArray();
public static char[] upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
public static char[] num = "0123456789".toCharArray();
public static char[] letter = org.apache.commons.lang.ArrayUtils.addAll(lower,upper);
public static char[] all = org.apache.commons.lang.ArrayUtils.addAll(letter,num);
public static int LOWER_TYPE = 0;
public static int UPPER_TYPE = 1;
public static int NUMBER_TYPE = 2;
public static int LETTER_TYPE = 3;
public static int ALL_TYPE = 4;
public static Map<Integer,char[]> map = new HashMap(){{
put(LOWER_TYPE,lower);
put(UPPER_TYPE,upper);
put(NUMBER_TYPE,num);
put(LETTER_TYPE,letter);
put(ALL_TYPE,all);
}};
public static void main(String[] args) {
System.out.println(RandomUtil.randomNoRepeatString(44, ALL_TYPE));
System.out.println("finish");
}
public static String randomNoRepeatString(int total,int type){
Object o = map.get(type);
char[] array = (char[])o;
if(array == null){
throw new RuntimeException("type is error");
}
if(total > array.length){
throw new RuntimeException("total is too big , must <="+array.length);
}
char[] seq = array;
char[] output = new char[total];
Random random = new Random();
int end = array.length - 1;
for (int i = 0; i < total; i++)
{
int num = random.nextInt(end + 1);
output[i] = seq[num];
seq[num] = seq[end];
end--;
}
StringBuffer sb = new StringBuffer();
for(int i = 0;i < total;i++){
sb.append(output[i]);
}
return sb.toString();
}
}
- 浏览: 33313 次
- 性别:
- 来自: 深圳
最新评论
-
衞酆夼:
我把mysql-connector-java-5.1.25.j ...
最新glassfish配置mysql -
barryzhong:
Sorry,没看完你的帖子。请跳过
最新glassfish配置mysql -
barryzhong:
我一般都是先把mysql的connector.jar放到dom ...
最新glassfish配置mysql
相关推荐
在易语言中,生成不重复随机数是一项常见的需求,特别是在游戏开发、数据分析或者算法设计等场景。本文将深入探讨如何在易语言中实现取不重复随机数的功能。 首先,我们需要了解易语言中的随机数生成函数。在易语言...
根据提供的标题、描述以及部分代码内容,我们可以总结出在Visual Basic (简称VB)环境中生成不重复随机数的主要方法。此技术常用于各种场景,比如彩票系统、抽奖程序或需要无重复随机选择的应用。 ### 一、基本原理 ...
VBA生成不重复的随机数源码.txt
在VB.NET编程环境中,生成不重复的随机数是一项常见的需求,尤其在进行模拟、测试或者游戏开发时。...通过以上讨论,你应该能理解如何在VB.NET中实现不重复随机数的生成,并可以根据实际项目需求进行相应的调整。
不过,这种方法并不适用于需要精确无误的不重复随机数生成场景。 4. **哈希集合/字典**: 在内存允许的情况下,使用哈希集合(Python的`set`或Java的`HashSet`)或字典(Python的`dict`)记录已生成的随机数。每次...
通过这个压缩包中的“易语言取不重复随机数”资源,你可以学习到如何在易语言环境中实现这一功能,并结合实践进一步理解随机数生成和数据结构的应用。无论是初学者还是有一定编程基础的开发者,这都是一个有价值的...
总结来说,这个例子提供了一种在Java中生成指定范围内不重复随机数的方法,通过结合`Random`类和集合数据结构实现。在myEclipse环境下,只需几步简单操作,即可运行并测试这段代码。对于开发者来说,理解和掌握这种...
4. **随机数的质量**:一个高质量的随机数生成器应该具备以下特点:均匀分布(所有可能的结果出现的概率相同)、不可预测性和不可重复性。随机数生成器的质量对于其应用至关重要,尤其是在安全和科学计算方面。 5. ...
System.out.println("生成的十个不重复随机数为:"); for (int number : uniqueNumbers) { System.out.println(number); } } } ``` 在这个代码中,我们创建了一个`HashSet`来存储生成的随机数,然后在一个循环...
在VB.NET编程环境中,生成1-10之间不重复的随机数是一项常见的需求,这...以上就是关于“VB.NET生成1-10不重复随机数”的核心知识点,通过理解并实践这些内容,你可以熟练地在VB.NET中生成满足特定条件的随机数序列。
此外,`random.shuffle(x)`用于对列表x进行原地洗牌,`random.sample(population, k)`可无放回地从总体population中抽取k个不重复的元素。 对于更高级的需求,如加密或科学研究,Python还提供了`numpy.random`模块...
Java中不重复随机数的生成与分析 Java 中不重复随机数的生成与分析是软件开发中的一个重要问题。随机数以其不确定性和偶然性等特点,因此在软件开发中得到了广泛应用。例如,在软件系统的测试中,用于产生具有普遍...
在编程领域,生成特定区间内的不重复随机数是一项常见的任务,尤其在模拟、游戏开发、数据分析等场景中。本文将详细探讨如何通过移位和逻辑运算实现这一目标,以达到高效且准确的效果。 首先,我们要明确一点:生成...
在“易语言源码易语言取不重复随机数.rar”这个压缩包中,我们关注的核心知识点是如何在易语言中生成不重复的随机数。 在易语言中,生成随机数通常使用“随机数发生器”命令,它位于“系统”类别下。该命令可以生成...
巧用Java实现得到任意位永不重复的随机数,很经典的代码!
这段代码会打印出1到10之间的不重复随机数。 值得注意的是,这种方法虽然简单,但当需要生成的随机数数量非常大时(如百万级别),性能可能会成为问题,因为频繁地在集合中添加和删除元素会有一定的开销。在这种...
在本文中,我们将深入探讨如何使用C++编程语言创建一个随机数生成器。这个生成器允许用户指定随机数的范围和需要生成的个数。在C++中,生成随机数是一项基本任务,常用于各种应用,如模拟、游戏、测试等。 首先,...
- 给出了如何评估随机数生成器的随机性和不可预测性的指导; - 描述了如何在不同硬件和软件平台上实现和测试随机数生成器; - 讨论了对随机数生成器进行随机性测试的统计方法; - 提供了确保随机数生成器安全性的...
在编程领域,生成1到N的不重复随机数是一个常见的需求,这在各种场景中都有应用,例如模拟抽奖、创建随机测试数据或者在游戏中分配资源等。这个任务涉及到两个主要的知识点:随机数生成和数组去重。 首先,我们来...
本压缩包“suijishu.rar”聚焦于“简单随机数_随机数生成”,其中包含的文件“suijishu”可能是源代码或数据文件,用于演示如何生成简单的随机数。 随机数生成器(Random Number Generator, RNG)是一种能够产生一...