package ee.esutoniagodesu.util;
import java.util.*;
/**
* class for creating random variables of any kind
*/
public final class JCRandom {
/**
* generates random integet value
*
* @param start start
* @param end end
* @return value between start and end
*/
public static int between(int start, int end) {
int result;
end += 1;
if (end > start) {
Random rand = new Random();
int interval = Math.abs(end - start);
result = start + rand.nextInt(interval);
} else if (end == start) {
result = start;
} else {
throw new IllegalArgumentException();
}
return result;
}
/**
* @param seed seed
* @return value between 0 and seed
*/
public static int integer(int seed) {
Random rand = new Random();
return rand.nextInt(seed);
}
/**
* generates double matrix with randomly initiated relations.
*
* @param ydim - y dimension
* @param xdim - x dimension
* @param count - how many relations
* @param value - relation value
* @return double matrix
*/
public static double[][] getMatrix(int ydim, int xdim, int count,
double value) {
double[][] result = new double[ydim][xdim];
List<Integer> keys = new ArrayList<>();
int n = ydim * xdim;
for (int i = 0; i < n; i++) {
keys.add(i);
}
Collections.shuffle(keys);
int pos, y, x;
for (int i = 0; i < count; i++) {
pos = keys.get(i);
x = pos % xdim;
y = (pos - x) / xdim;
result[y][x] = value;
}
return result;
}
public static String random13B() {
return Long.toString(UUID.randomUUID().getMostSignificantBits(), Character.MAX_RADIX);
}
}