Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/niaggar/go-board
Simulation of galton board
https://github.com/niaggar/go-board
galton-board go physics simulation
Last synced: about 1 month ago
JSON representation
Simulation of galton board
- Host: GitHub
- URL: https://github.com/niaggar/go-board
- Owner: niaggar
- License: mit
- Created: 2023-10-18T21:36:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-16T13:12:12.000Z (3 months ago)
- Last Synced: 2024-09-17T15:38:21.303Z (3 months ago)
- Topics: galton-board, go, physics, simulation
- Language: Go
- Homepage:
- Size: 5.88 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Galton Board Simulation in Go
> Implementation for solving an IPT 2023 problem![Galton Board](./img/galton-board.png)
This is a Go application that simulates a Galton Board, also known as a "bean machine" or "quincunx." The Galton Board is a device that demonstrates the central limit theorem and the normal distribution of particles as they bounce off pins and fall into bins.
> # IPT Problem
>
> Dropping a set of beads on a board with evenly distributed pegs results in a binomial distribution. Is it possible to generate other kinds of distributions by varying some parameters (pegs size, pegs distribution, bead format, etc.)? Is it possible to achieve a distribution that does not obey the central limit theorem in an i.i.d. scenario? What happens to the distribution when one makes the board vibrate?
>## Usage
1. Make sure you have Go installed on your system.
2. Clone this repository:
```bash
git clone https://github.com/niaggar/go-board3. Create a folder named "data/configs" where you will save the configurations for the experiments you will run.
4. Create your first configuration using the "model.config.json" file as a base, and modify fields such as the number of particles (performance could be affected).
5. Execute.
```bash
go run main.goAnother way is to run the console files corresponding to the system you need to compile the application, and then open the executable.