import java.util.*; public class RandomSMForbidden { static Random gen; static void shuffle(ArrayList v){ int j,n; n = v.size(); Object temp; for (int i=n-1;i>0;i--){ j = gen.nextInt(i+1); temp = v.get(i); v.set(i,v.get(j)); v.set(j,temp); } } static Edge randomSelect(ArrayList v){ if (v.isEmpty()) return null; return v.get(gen.nextInt(v.size())); } public static void main(String[] args) throws Exception { gen = new Random(); int n = Integer.parseInt(args[0]); double p = 1.0; // probability of an edge double pForbidden = 0.0; // probability that a selected edge is forbidden ArrayList[] V = new ArrayList[n]; ArrayList E = new ArrayList(); ArrayList agent = new ArrayList(n); int forbidden = 0; for (int i=0;i(); if (args.length >= 2) p = Double.parseDouble(args[1]); System.out.println(n); for (int i=0;i= gen.nextDouble()){ V[i].add(j); V[j].add(i); E.add(new Edge(i,j)); } for (int i=0;i)V[i]) System.out.print((j+1) +" "); System.out.println(); } if (args.length >= 3){ pForbidden = Double.parseDouble(args[2]); for (Edge e : E) if (pForbidden >= gen.nextDouble()){ System.out.println("forbidden "+ (e.v+1) +" "+ (e.w+1)); forbidden++; } } //System.out.println("selected: " + E.size() + " forbidden: "+ forbidden); } }