How do you see something? (If you want to...)
You need a Java 1.1 capable Viewer for the Bernoulli Board, especially because it uses the ActionEvent scheme of 1.1. HotJava1.0 may work, and also any appletviewer of an 1.1.* JDK.
What do you see? (If you see anything...)
The Bernoulli Board is an experiment for simulating a discrete binominal distribution. It consists of a set of wooden cylinder, where a marble is dropped. With a specific probability the marble will fall to the left or to the right side. Normally the cylinder are cascadated, and it is assumed that the marble will fall from each cylinder with the same probability. With more than two lanes you may see a nearly symmetrical discrete binominal distribution of the marbles within the lanes at p=0.5, an asymmetrical at a p different from 0.5.
What is it for?
With the application you can test the internal or a self made random generator for distribution errors or other inconsistencies. The most simple experiment will be if you choose one wooden cylinder and two lanes. At p=0.5 the marble will fall to the left side if the random generated (double) number is less or equal p. At an infinite number of marbles the two lanes should be equally filled and the resulting mean value should be 0.5. If it does not, the random generator has a regular error.
Where does it come from?
In the 17th century Jacob Bernoulli (1654-1705) invented the Bernoulli numbers and worked on distribution problems. Sir Francis Galton (1822-1911) invented the board with the cylinder and shots to visualize the binomial distribution. Therefore this board is also called Galton Board. I once build a Bernoulli Board after a more inspiring math lesson with a wooden board, a round bar (4cm in diameter) cut into pieces and a thinner ledge divided into pieces for seven lanes and a guiding lane at the top. The practical problem with such a tool is, that normal glass marbles have slightly different diameter, but the cylinder have to be glued very accurate to let the marbles fall with equal probabilities to the right or left. Practically its more probably that they fall to the middle lanes.
The first program for this experiment I wrote on an AtariST in ancient times (1987) with LineA routines for testing the internal and my own random number generators because for programming games on the AtariST it was difficult to get real random numbers. It wasn't that fast as the Java applet, but I had added more animation steps inbetween and the ability for more marbles falling at once. (On the other hand the number of lanes and the diameter of the objects were fixed and the display was monochrome.)
What are the controls for?
The first button "Start!" starts a new run and resets the counters.
The second button "Stop!" stops the current run and will display some statistics, for instance d as the mean value of the weighted marbles fallen, the total number of marbles fallen into each lane ("0=", "1=", ...) and the theoretical number of marbles for each lane if the probability wasn't change for one run ("1'=", "2'=",...). The statistics will be deleted for the next "Start!" or "Continue!"
The third button "Continue!" will continue the current run without resetting the counters. You can press "Continue!" also for refreshing the display of the applet.
The choice dial lets you change the probability for the marbles. After changing it its normally useful to start a new run, but for playing around you can change the value within a run anytime.
The slider lets you change the speed of the falling marbles.
What else can you do?
Within the source, there are three finals you can change for some other board layouts: "walzend" for the diameter of the cylinders, "kugeld" for the diameter of the marbles and "lanes" for the number of lanes. The number of lanes must be more than 1 and less than 21, the diameters of the cylinders and the marbles should be an even number. For recompiling the Bernoulli Board you'll need a Java 1.1 compliant compiler, best if better than 1.1.3. On the other hand... you can do whatever you like with the source... for instance making it more flexible for resizing, improving the animation of the dropping marbles, adding more colors, more statistics, audio, more gimmicks...
-- jd --