1. Answer 2015 2. public class Question2 { public static boolean isIncreasing(int[] a) { for (int i = 0; i < a.length-1; i++) { if (a[i+1] < a[i]) return false; } return true; } public static void main(String[] args) { int[] a = new int[args.length]; for (int i = 0; i < args.length; i++) { a[i] = Integer.parseInt(args[i]); } System.out.println(isIncreasing(a)); } } 3. public class DiceStats { int[] rolls; public DiceStats() { rolls = new int[6]; } public void addRoll(int roll) { rolls[roll-1]++; } public double[] getFrequences() { int sum = 0; for (int roll : rolls) sum += roll; double[] freqs = new double[rolls.length]; for (int i = 0; i < rolls.length; i++) { freqs[i] = ((double) rolls[i]) / ((double) sum); } return freqs; } public boolean isFair(double epsilon) { double prob = 1.0/6.0; for (double freq : getFrequences()) { if (freq < prob-epsilon || freq > prob+epsilon) return false; } return true; } public static void main(String[] args) { int n = Integer.parseInt(args[0]); double eps = Double.parseDouble(args[1]); DiceStats stats = new DiceStats(); for (int i = 0; i < n; i++) { int roll = (int) (1 + Math.random()*6); stats.addRoll(roll); } double[] freqs = stats.getFrequences(); for (int i = 0; i < freqs.length; i++) { System.out.println(freqs[i]); } System.out.println(stats.isFair(eps)); } } 4. public static void smooth(double[] values) { if (values.length < 2) return; double last = values[0]; values[0] = (values[0] + values[1]) / 2; for (int i = 1; i < values.length-1; i++) { double tmp= values[i]; values[i] = (last + values[i] + values[i+1]) / 3; last = tmp; } values[values.length-1] = (last + values[values.length-1]) / 2; } 5. public static List getNumbers(File phonebook, String name) throws FileNotFoundException { List numbers = new ArrayList(); Scanner scanner = new Scanner(phonebook); while (scanner.hasNext()) { String name1 = scanner.next(); String number = scanner.next(); if (name.equals(name1)) numbers.add(number); } return numbers; }