From c2c5fe923e8f161fdad4ad62e731b370872983a5 Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Sun, 1 Mar 2026 19:47:32 -0800 Subject: [PATCH] markov chain exercise skeleton --- .../markov/weather-chain/.rust-version | 1 + edu/exercises/markov/weather-chain/Cargo.lock | 16 ++++++++++++++++ edu/exercises/markov/weather-chain/Cargo.toml | 7 +++++++ edu/exercises/markov/weather-chain/src/main.rs | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 edu/exercises/markov/weather-chain/.rust-version create mode 100644 edu/exercises/markov/weather-chain/Cargo.lock create mode 100644 edu/exercises/markov/weather-chain/Cargo.toml create mode 100644 edu/exercises/markov/weather-chain/src/main.rs diff --git a/edu/exercises/markov/weather-chain/.rust-version b/edu/exercises/markov/weather-chain/.rust-version new file mode 100644 index 0000000..bf867e0 --- /dev/null +++ b/edu/exercises/markov/weather-chain/.rust-version @@ -0,0 +1 @@ +nightly diff --git a/edu/exercises/markov/weather-chain/Cargo.lock b/edu/exercises/markov/weather-chain/Cargo.lock new file mode 100644 index 0000000..3ad6c0e --- /dev/null +++ b/edu/exercises/markov/weather-chain/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "random" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d62d9cce151a97168445d78542558d3bddf6cf99f283c475f2eaf5cc14c364a" + +[[package]] +name = "weather-chain" +version = "0.1.0" +dependencies = [ + "random", +] diff --git a/edu/exercises/markov/weather-chain/Cargo.toml b/edu/exercises/markov/weather-chain/Cargo.toml new file mode 100644 index 0000000..4d50e59 --- /dev/null +++ b/edu/exercises/markov/weather-chain/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "weather-chain" +version = "0.1.0" +edition = "2024" + +[dependencies] +rand = "0.10.0" diff --git a/edu/exercises/markov/weather-chain/src/main.rs b/edu/exercises/markov/weather-chain/src/main.rs new file mode 100644 index 0000000..7a22ef3 --- /dev/null +++ b/edu/exercises/markov/weather-chain/src/main.rs @@ -0,0 +1,18 @@ +use rand::Rng; + +#[derive(Debug, Clone, Copy, PartialEq)] +enum Weather { Sunny, Rainy } + +struct WeatherChain { + /// transition[current][next] = probability + transition: [[f64; 2]; 2], +} + +impl WeatherChain { + fn step(&self, current: Weather, rng: &mut impl Rng) -> Weather { todo!() } + fn simulate(&self, start: Weather, steps: usize, rng: &mut impl Rng) -> Vec { todo!() } +} + +fn main() { + todo!() +}