Skip to main content

erdos_renyi_gnp

Function erdos_renyi_gnp 

Source
pub fn erdos_renyi_gnp(
    n: u32,
    p: f64,
    directed: bool,
    loops: bool,
    seed: u64,
) -> IgraphResult<Graph>
Expand description

Generate a random graph from the G(n, p) Erdős–Rényi model.

Every possible edge is included independently with probability p. The expected number of edges is p · max_edges(n, directed, loops).

  • n — vertex count.
  • p ∈ [0, 1] — edge probability.
  • directed — generate a directed graph (ordered pairs); when false, edges are undirected.
  • loops — when true, self-loops are allowed; when false, no self-loop edges are sampled.
  • seed — initialises an internal SplitMix64 PRNG. Same (n, p, directed, loops, seed) always yields the same graph.

§Errors

Returns IgraphError::InvalidArgument if p is NaN, infinite, or outside [0, 1].

§Examples

use rust_igraph::erdos_renyi_gnp;
// Expected edges ≈ p · n(n-1)/2 = 0.5 · 100·99/2 = 2475.
let g = erdos_renyi_gnp(100, 0.5, false, false, 42).unwrap();
assert_eq!(g.vcount(), 100);
// The actual count fluctuates around the expectation, but for
// p = 0.5 it lies in a narrow band.
let m = g.ecount();
assert!(m > 2200 && m < 2700, "ecount={m}");