A
Java Course Outline
Using the Java By Dissection
book
by Ira
Pohl and
Charlie McDowell
/* ZodiacExample.java Christine Dunham * * The purpose of this program is to display the probability of two people * at a party having the same zodiac sign. This will be done for parties of * 2 to 12 people. */ public class ZodiacExample { public static void main (String[] args) { int people = 12; float probability, totalProbability, numOfSameSigns; // do for 2 to 12 people for (int i = 2; i <= 12; i++) { numOfSameSigns = 0.0f; // do for 100 trials for (int x = 1; x <= 100; x++) { if(isSameSign(i)) numOfSameSigns++; }//end of 100 trials loop probability = (float)(numOfSameSigns/100.0f); System.out.println("For 100 trials of " + i + " people, the probability of two people"); System.out.println("having the same zodiac sign is " + probability + "."); }//end of number of people loop }//end of main public static boolean isSameSign(int peopleAtParty) { int aries = 0, taurus = 0, gemini = 0, cancer = 0; int leo = 0, virgo = 0, libra = 0, scorpio = 0, sagittarius = 0; int capricorn = 0, aquarius = 0, pisces = 0, sign; for(int i = 1; i <= peopleAtParty; i++) { sign = (int)(Math.random() * 12); switch (sign) { case 0: aries++; break; case 1: taurus++; break; case 2: gemini++; break; case 3: cancer++; break; case 4: leo++; break; case 5: virgo++; break; case 6: libra++; break; case 7: scorpio++; break; case 8: sagittarius++; break; case 9: capricorn++; break; case 10: aquarius++; break; case 11: pisces++; break; }// end of switch }//end of loop if (aries >= 2) return true; if (taurus >= 2) return true; if (gemini >= 2) return true; if (cancer >= 2) return true; if (leo >= 2) return true; if (virgo >= 2) return true; if (libra >= 2) return true; if (scorpio >= 2) return true; if (sagittarius >= 2) return true; if (capricorn >= 2) return true; if (aquarius >= 2) return true; if (pisces >= 2) return true; return false; }// end of isSameSign method } // end of class