import java.util.Random; public class RBM { public int N; public int n_visible; public int n_hidden; public double[][] W; public double[] hbias; public double[] vbias; public Random rng; public double uniform(double min, double max) { return rng.nextDouble() * (max - min) + min; } public int binomial(int n, double p) { if(p < 0 || p > 1) return 0; int c = 0; double r; for(int i=0; i