Untitled
unknown
c_cpp
a year ago
1.2 kB
7
Indexable
#include <iostream> #include <Eigen/Dense> using Eigen::MatrixXd; double Absd(double X) { if (X < 0) { return -X; } return X; } bool CloseToOne(MatrixXd state) { double Threshold = 0.0001; if (Absd(state(0, 0) - 1.0) <= Threshold) return true; if (Absd(state(1, 0) - 1.0) <= Threshold) return true; if (Absd(state(2, 0) - 1.0) <= Threshold) return true; } int main() { MatrixXd transition(3, 3); transition(0, 0) = 0.9; transition(0, 1) = 0.1; transition(0, 2) = 0.0; transition(1, 0) = 0.0; transition(1, 1) = 0.8; transition(1, 2) = 0.2; transition(2, 0) = 0.0; transition(2, 1) = 0.0; transition(2, 2) = 1.0; MatrixXd initial_state(3, 1); initial_state(0, 0) = 0.0; initial_state(1, 0) = 0.0; initial_state(2, 0) = 1.0; for (int i = 0; i < 10000; ++i) { MatrixXd next_state = transition * initial_state; if (CloseToOne(next_state)) { std::cout << "Pure Aloha at index i = " << i << " \n"; break; } initial_state = next_state; } }
Editor is loading...
Leave a Comment