相关疑难解决方法(0)

如何生成随机字母数字字符串?

我一直在寻找一种简单的 Java算法来生成伪随机字母数字字符串.在我的情况下,它将被用作一个唯一的会话/密钥标识符,它"很可能"在500K+生成过程中是唯一的(我的需求实际上并不需要更复杂的东西).

理想情况下,我可以根据我的唯一性需求指定长度.例如,生成的长度为12的字符串可能看起来像"AEYGF7K0DM1X".

java string random alphanumeric

1679
推荐指数
23
解决办法
134万
查看次数

随机改组阵列

我需要随机调整以下数组:

int[] solutionArray = {1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1};
Run Code Online (Sandbox Code Playgroud)

这有什么功能吗?

java arrays shuffle

214
推荐指数
10
解决办法
42万
查看次数

范围算法中的非重复随机搜索

我正在寻找一种有效的算法,可以在一个范围内产生随机值,而不需要重复.

在伪代码中:(在Rand类中)

  Rand(long from, long to) {
    this.from = from;
    this.to = to;
    // ...
  }

  long getNumber() {

    // returns a random number in the [from, to] range
    //  which has never been returned before
  }
Run Code Online (Sandbox Code Playgroud)

用法:

  Rand r = new Rand(1, 100000000);

  long x = r.getNumber();
  long y = r.getNumber();
  ...
Run Code Online (Sandbox Code Playgroud)

从r.getNumber()返回的数字应始终与先前返回的数字不同.
当然,如果to - from + 1返回数字,算法应该重新开始(或者错误 - 不管怎么说都不重要).

注意,范围可能非常大,因此随机排列的数组(最初包含[from, to]数字)可能会溢出存储器.

random algorithm non-repetitive

1
推荐指数
1
解决办法
940
查看次数