All pastes #2123636 Raw Edit

Untitled

public java v1 · immutable
#2123636 ·published 2012-03-03 02:52 UTC
rendered paste body
import java.math.BigDecimal;import java.util.Random;public final class Tp1 {		public static void main(String[] args) {		question1a();		question2a();		question2b();		question3a();		question3b();	}		private static BigDecimal fact(int n) {		BigDecimal fact = BigDecimal.ONE;		for (int i = 1; i <= n; i++) {			fact = fact.multiply(BigDecimal.valueOf(i));		}		return fact;	}		private static BigDecimal choisir(int r, int n) {		return fact(n).divide((fact(r).multiply(fact(n - r))));	}		//==========================================================================	// Début Question 1a	//==========================================================================	private static void question1a() {		double p = 1.;		for (double n = 364; n > 365-30; n--) {			p *= n / 365.;		}		System.out.format("1a: %.1f\n", (1-p) * 100);	}		//==========================================================================	// Début Question 2	//==========================================================================	private static final class ResultatQ2 {				public ResultatQ2(char meneur, int changements, int affiles) {			this.meneur = meneur;			this.changements = changements;			this.affiles = affiles;		}				public char meneur;		public int changements;		public int affiles;			}		//==========================================================================	// Début Question 2a	//==========================================================================	private static void question2a() {		ResultatQ2 res = question2_test();		System.out.format("2a: Meneur = %c, Changements = %d, Affilés = %d\n", res.meneur, res.changements, res.affiles);	}		private static ResultatQ2 question2_test() {		char meneur = '\0';		int affiles = 0, changements = 0, nbP = 0, nbF = 0;		Random gen = new Random();		for (int i = 0; i < 1000; i++) {			// incrémentation des nombres			if (gen.nextInt(2) == 0) nbP++; else nbF++;			// detection d'un changement			if (i == 0) {				meneur = nbP > nbF ? 'P' : 'F';			} else {				if (meneur == 'P' && nbF >= nbP) {					changements++;					meneur = 'F';				} else if (meneur == 'F' && nbP >= nbF) {					changements++;					meneur = 'P';				} else if (nbP == nbF) {					affiles = 0;					meneur = '\0';				} else {					affiles++;				}			}		}		return new ResultatQ2(meneur, changements, affiles);	}		//==========================================================================	// Début Question 2b	//==========================================================================	private static void question2b() {		double x = 0;		for (int i = 0; i < 20; i++) {			x += question2_test().affiles;		}		System.out.format("2b: Moyenne = %.2f\n", x / 20);	}		//==========================================================================	// Début Question 3a	//==========================================================================	private static final void question3a() {		for (int i = 1; i <= 100; i++) {			System.out.println("3a: " + question3a_cat(i));		}	}		private static BigDecimal question3a_cat(int n) {		return BigDecimal.valueOf(1. / ((double) n + 1.)).multiply(choisir(n, 2 * n));	}		//==========================================================================	// Début Question 3b	//==========================================================================	private static void question3b() {		for (int i = 1; i <= 100; i++) {			System.out.println("3b: " + question3b_cat(i));		}	}		private static BigDecimal question3b_cat(int n) {		return BigDecimal.valueOf((4. * n - 2) / ((double) n + 1.)).multiply(question3a_cat(n - 1));	}		//==========================================================================	// Début Question 3c	//==========================================================================	private static void question3c() {		for (int i = 1; i <= 5; i++) {			System.out.println(question3c_cat(i));		}	}		private static BigDecimal question3c_cat(int n) {		BigDecimal cat = BigDecimal.ONE;		return cat;	}		}