+ -
当前位置:首页 → 问答吧 → [紧急]生成随机数

[紧急]生成随机数

时间:2011-12-14

来源:互联网

给定一个字符串生成一个与之相应的随机01序列,不同的字符串要生成不同的01序列,序列长度可以人为设定,该如何实现啊?用C和C++,谢谢

作者: Iamtheodore   发布时间: 2011-12-14

/**
* 产生随机字符串
* */
private static Random randGen = null;
private static char[] numbersAndLetters = null;

public static final String randomString(int length) {
if (length < 1) {
return null;
}
if (randGen == null) {
randGen = new Random();
numbersAndLetters = ("0123456789abcdefghijklmnopqrstuvwxyz" +
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
//numbersAndLetters = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
}
char [] randBuffer = new char[length];
for (int i=0; i<randBuffer.length; i++) {
randBuffer[i] = numbersAndLetters[randGen.nextInt(71)];
//randBuffer[i] = numbersAndLetters[randGen.nextInt(35)];
}
return new String(randBuffer);
}

//调用此方法randomString(int),int是字符串的长度,即可产生指定长度的随机字符串

作者: wcg_jishuo   发布时间: 2011-12-14

谢谢,不过我的意思是给定一个字符串产生随机序列,不同的字符串可能长度相同,但根据他们生成的字符串必须不同,而且每个字符串生成的序列是固定的

作者: Iamtheodore   发布时间: 2011-12-14

也可以说产生一个字符串与随机序列的一一映射,当然可以允许有很小的概率下不同的字符串可能产生相同的随机序列

作者: Iamtheodore   发布时间: 2011-12-14

26(小写字母)+26(大写字母)+10个数字产生的字符
就设序列长度62,随即产生字符串,如果对应的字符出现就该位设为1,没有就为0
这样肯定是唯一的。。

作者: zhaghi   发布时间: 2011-12-14

引用 3 楼 iamtheodore 的回复:
也可以说产生一个字符串与随机序列的一一映射,当然可以允许有很小的概率下不同的字符串可能产生相同的随机序列

hash

作者: cfvmario   发布时间: 2011-12-14

类似MD5

作者: zhao4zhong1   发布时间: 2011-12-14

热门下载

更多