我试图在不使用任何 Random() 函数的情况下生成无意义的单词。我发现我可以使用当前时钟或鼠标坐标。我选择使用当前时钟。这是我写的代码。
private final char[] charray = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
private char getRandomCharacter(){
return charray[random(charray.length)];
}
private int random(int value){
value =(int) System.nanoTime()% 52;
return value;
}
protected Randomizer(){
boolean running = true;
int count = 0;
int max = 5;
while(running){
StringBuilder sb = new StringBuilder();
int size = random(25) + random(25);
for (int i = 0; i < size; i++) {
sb.append(getRandomCharacter());
}
System.out.println("Random Line : " + sb.toString());
if (count++ == max) {
running = false;
System.out.println("All of them are random.");
}
}
}
public static void main(String[] args) {
new Randomizer();
}
我期待这样的输出:
axdlMkjiIfjcmqQopv 等。
但我得到这样的东西:
ZNNrrrUUUUxxxxbbbhhhLLLLoooRRRRRRvvvYYYYBBBBfffI 或 JmmmPPKKKKnnnnRRBeeHHHHlllllOOOOrrrVVVVV
为什么连续的太多了。nanoTime太慢了还是什么?我在此之前使用了 currentTimeMillis,但情况更糟。我想不通,也找不到任何关于如何随机使用当前时钟的来源。
白猪掌柜的
人到中年有点甜
HUH函数
相关分类