История изменений
Исправление PolarFox, (текущая версия) :
Давайте просто возьмём, и проверим через сколько будет коллизия…
import java.util.*;
class test {
public static void main(String[] args) {
int i = 0;
Random r = new Random();
HashSet<Integer> set = new HashSet<Integer>();
while (true) {
int next = r.nextInt();
if (set.contains(next)) {
break;
} else {
i += 1;
set.add(i);
}
}
System.out.println(i);
}
}
$ for i in `seq 30`; do java test; done
46385
74635
77124
87060
152750
69924
108594
144025
150914
28097
110134
123596
65483
79068
122616
23451
90162
134238
81105
85735
83548
96561
110768
106320
124138
83998
160995
55229
100280
100503
Используй хеши или счётчик.
Исправление PolarFox, :
Давайте просто возьмём, и проверим через сколько будет коллизия…
import java.util.*;
class test {
public static void main(String[] args) {
int i = 0;
Random r = new Random();
HashSet<Integer> set = new HashSet<Integer>();
while (true) {
int next = r.nextInt();
if (set.contains(next)) {
break;
} else {
i += 1;
set.add(i);
}
}
System.out.println(i);
}
}
$ for i in `seq 30`; do java test; done
46385
74635
77124
87060
152750
69924
108594
144025
150914
28097
110134
123596
65483
79068
122616
23451
90162
134238
81105
85735
83548
96561
110768
106320
124138
83998
160995
55229
100280
100503
Используй хеши или счётчик.
Исходная версия PolarFox, :
Давайте просто возьмём, и проверим через сколько будет коллизия…
import java.util.*;
class test {
public static void main(String[] args) {
int i = 0;
Random r = new Random();
HashSet<Integer> set = new HashSet<Integer>();
while (true) {
int next = r.nextInt();
if (set.contains(next)) {
break;
} else {
i += 1;
set.add(i);
}
}
System.out.println(i);
}
}
$ for i in `seq 30`; do java test; done
46385
74635
77124
87060
152750
69924
108594
144025
150914
28097
110134
123596
65483
79068
122616
23451
90162
134238
81105
85735
83548
96561
110768
106320
124138
83998
160995
55229
100280
100503
Используй хеши.