
Count grid partitions
enum_count_partitions.RdCount the number of valid partitions of an nrow by ncol grid into
num_parts connected pieces. Part sizes can be constrained either as a
range via min_size and max_size, or as an explicit set of allowed sizes
via exact_sizes. Prefer this over enum_partitions() when only the count
is needed, as it avoids storing all partitions in memory.
Usage
enum_count_partitions(
nrow,
ncol,
num_parts,
min_size = NULL,
max_size = NULL,
exact_sizes = NULL,
contiguity = c("rook", "queen"),
progress = TRUE
)Arguments
- nrow
Integer. Number of rows in the grid.
- ncol
Integer. Number of columns in the grid.
- num_parts
Integer. Number of parts to partition the grid into.
- min_size
Integer or
NULL. Minimum number of cells per part. Must be supplied together withmax_size; mutually exclusive withexact_sizes.- max_size
Integer or
NULL. Maximum number of cells per part. Must be supplied together withmin_size; mutually exclusive withexact_sizes.- exact_sizes
Integer vector or
NULL. The exact set of allowed part sizes. For example,exact_sizes = c(4, 8)allows parts of size 4 or 8 only. Mutually exclusive withmin_size/max_size.- contiguity
Character. Either
"rook"(default) for edge-adjacency or"queen"for edge-and-corner adjacency.- progress
Logical. Whether to report enumeration progress. Default
TRUE.
Examples
# Count partitions of a 2x3 grid into 2 rook-connected parts of size 3
enum_count_partitions(2, 3, num_parts = 2, min_size = 3, max_size = 3)
#> ■ 0% | ETA: ?
#> ■■■■■■■■■■■ 33% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■ 67% | ETA: 0s
#> [1] 3
# Count with exact sizes
enum_count_partitions(4, 4, num_parts = 3, exact_sizes = c(4, 8))
#> ■ 0% | ETA: ?
#> ■ 1% | ETA: 1s
#> ■■ 2% | ETA: 1s
#> ■■ 3% | ETA: 1s
#> ■■ 4% | ETA: 1s
#> ■■ 5% | ETA: 1s
#> ■■■ 5% | ETA: 1s
#> ■■■ 6% | ETA: 1s
#> ■■■ 7% | ETA: 1s
#> ■■■ 8% | ETA: 1s
#> ■■■■ 9% | ETA: 1s
#> ■■■■ 10% | ETA: 1s
#> ■■■■ 11% | ETA: 1s
#> ■■■■■ 12% | ETA: 1s
#> ■■■■■ 13% | ETA: 1s
#> ■■■■■ 14% | ETA: 1s
#> ■■■■■ 14% | ETA: 1s
#> ■■■■■■ 15% | ETA: 1s
#> ■■■■■■ 16% | ETA: 1s
#> ■■■■■■ 17% | ETA: 1s
#> ■■■■■■ 18% | ETA: 1s
#> ■■■■■■■ 19% | ETA: 1s
#> ■■■■■■■ 20% | ETA: 1s
#> ■■■■■■■ 21% | ETA: 1s
#> ■■■■■■■ 22% | ETA: 1s
#> ■■■■■■■■ 23% | ETA: 1s
#> ■■■■■■■■ 23% | ETA: 1s
#> ■■■■■■■■ 24% | ETA: 1s
#> ■■■■■■■■■ 25% | ETA: 1s
#> ■■■■■■■■■ 26% | ETA: 1s
#> ■■■■■■■■■ 27% | ETA: 1s
#> ■■■■■■■■■ 28% | ETA: 1s
#> ■■■■■■■■■■ 29% | ETA: 1s
#> ■■■■■■■■■■ 30% | ETA: 1s
#> ■■■■■■■■■■ 31% | ETA: 1s
#> ■■■■■■■■■■ 32% | ETA: 1s
#> ■■■■■■■■■■■ 32% | ETA: 1s
#> ■■■■■■■■■■■ 33% | ETA: 1s
#> ■■■■■■■■■■■ 34% | ETA: 1s
#> ■■■■■■■■■■■■ 35% | ETA: 1s
#> ■■■■■■■■■■■■ 36% | ETA: 1s
#> ■■■■■■■■■■■■ 37% | ETA: 1s
#> ■■■■■■■■■■■■ 38% | ETA: 1s
#> ■■■■■■■■■■■■■ 39% | ETA: 1s
#> ■■■■■■■■■■■■■ 40% | ETA: 1s
#> ■■■■■■■■■■■■■ 41% | ETA: 1s
#> ■■■■■■■■■■■■■ 41% | ETA: 1s
#> ■■■■■■■■■■■■■■ 42% | ETA: 1s
#> ■■■■■■■■■■■■■■ 43% | ETA: 1s
#> ■■■■■■■■■■■■■■ 44% | ETA: 0s
#> ■■■■■■■■■■■■■■■ 45% | ETA: 0s
#> ■■■■■■■■■■■■■■■ 46% | ETA: 0s
#> ■■■■■■■■■■■■■■■ 47% | ETA: 0s
#> ■■■■■■■■■■■■■■■ 48% | ETA: 0s
#> ■■■■■■■■■■■■■■■■ 49% | ETA: 0s
#> ■■■■■■■■■■■■■■■■ 50% | ETA: 0s
#> ■■■■■■■■■■■■■■■■ 50% | ETA: 0s
#> ■■■■■■■■■■■■■■■■ 51% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■ 52% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■ 53% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■ 54% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■ 55% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■ 56% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■ 57% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■ 58% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■ 59% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■ 59% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■ 60% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■ 61% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■ 62% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■ 63% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■ 64% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■ 65% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■ 66% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■ 67% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■ 68% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■ 68% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■ 69% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■ 70% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■ 71% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■ 72% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■ 73% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■ 74% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■ 75% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■ 76% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■ 77% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■ 77% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■ 78% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■ 79% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■ 80% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■ 81% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■ 82% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■ 83% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■ 84% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■ 85% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 86% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 86% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 87% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 88% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 89% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 90% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 91% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 92% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 93% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 94% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 95% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 95% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 96% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 97% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 98% | ETA: 0s
#> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 99% | ETA: 0s
#> [1] 326