@@ -127,22 +127,17 @@ function randbn(
127127end
128128
129129" maps 1:binomial(n,2) into an upper triangle of [1,n]×[1,n]"
130- function trianglemap (r)
131- j = floor (Int, (1 + sqrt (8 r- 7 ))/ 2 ) + 1
132- i = r - binomial (j- 1 ,2 )
133- Edge (i, j)
130+ function trianglemap (r, n)
131+ j, i = fldmod1 (r, n - 1 )
132+ i ≥ j ? Edge (i + 1 , j) : Edge (n - i + 1 , n - j + 1 )
134133end
135134
136135" maps 1:n*(n-1) into non-diagonal elements of [1,n]×[1,n]"
137- function nondiagmap (r,n)
138- j = div (r- 1 , n- 1 )
139- i = r - j* (n- 1 )
140- j += 1
141- i += (i >= j)
142- Edge (i, j)
136+ function nondiagmap (r, n)
137+ j, i = fldmod1 (r, n - 1 )
138+ i ≥ j ? Edge (i + 1 , j) : Edge (i, j)
143139end
144140
145-
146141"""
147142 erdos_renyi(n, p)
148143
@@ -182,7 +177,7 @@ function erdos_renyi(
182177 g = if is_directed
183178 SimpleDiGraphFromIterator (nondiagmap (r,n) for r in seq)
184179 else
185- SimpleGraphFromIterator (trianglemap (r) for r in seq)
180+ SimpleGraphFromIterator (trianglemap (r,n ) for r in seq)
186181 end
187182 # complete to exactly n vertices
188183 add_vertices! (g, n - nv (g))
0 commit comments