算法 ’ 目录归档

java生成不重复随机数

一个简单的java生成不重复随机数的算法

public class T {
  public static void main(String[] args) {
    // 种子你可以随意生成,但不能重复
    int[] seed = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int[] ranArr = new int[9];
    Random ran = new Random();
    // 数量你可以自己定义。
    for (int i = 0; i < seed.length; i++) {
      // 得到一个位置
      int j = ran.nextInt(seed.length - i);
      // 得到那个位置的数值
      ranArr[i] = seed[j];
      // 将最后一个未用的数字放到这里
      seed[j] = seed[seed.length - 1 - i];
    }
    System.out.println("ranArr:" + Arrays.toString(ranArr));
  }
}

布隆过滤器 Bloom Filter

布隆过滤器

布隆过滤器(Bloom Filter)是1970年由Burton Howard Bloom提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。

阅读全文

return top