Estoy preocupado por el número total de, y el número total de carreras, pero no con el tamaño de cualquiera de las pistas.
Por ejemplo, $N=8$, $R=3$, $C=5$ incluye 11101010, 01101011 entre el 24 total de cadenas posibles.
Puedo calcular estos para las pequeñas $N$ bastante fácilmente, pero estoy especialmente interesado en la distribución de $N=65536$. Como esto va a resultar en grandes enteros, el registro de distribución de probabilidad es igual de útil.
He encontrado [1] y [2], que incluye esto:
Deje $N_{n;g_k,s_k}$ denotar el número de cadenas binarias que contienen por $g_k$ y $s_k$, $g_k=0,1,…,⌊\frac{s_k}{k}⌋$, $s_k=0,k,k+1,…,n$, exactamente $g_k$ carreras de 1 s de duración, al menos,$k$, con un total de 1 (con la suma de las longitudes de los recorridos de 1) exactamente igual a $s_k$ en todas las posibles cadenas binarias de longitud $n$.
Una expresión de esto es dado en la ecuación. (24):
$N_{n;g_k,s_k} = \sum_{y=0}^{n-s_k} {y+1 \elegir g_k } {s_k-(k-1)g_k-1 \elegir g_k-1} \sum_{j=0}^{⌊\frac{n-y-s_k}{k}⌋} (-1)^j {y+1-g_k \elegir j} {n-s_k-kj-g_k \elegir n-s_k-kj-y} $
for $g_k \in \{1, ..., ⌊\frac{s_k}{k}⌋\}$, $s_k \in \{k, k+1, ..., n\}$.
I think this is exactly what I'm looking for, with $k = 1$, $s_k = C$ and $g_k = R$. However, when I implemented this I did not get the expected results (Python shown below, edge cases omitted), based on comparing to counting all strings for N=8. I am working backwards to try to understand where I might have gone wrong, but not having much luck yet. I wonder if I am misunderstanding the result.
def F(x, y, n):
# x = C or s_k (cardinality)
# y = R or g_k (runCount)
# n = N (total bits)
a1 = 0
for z in range(n-x+1):
b1 = choose(z+1, y) * choose(x-1, y-1)
a2 = 0
for j in range(n-z-x+1):
a2 += (-1) ** j * choose(z+1-y, j) * choose(n-x-j-y, n-x-j-z)
a1 += b1 * a2
return a1
Note that the choose
function uses factorial, which I realize won't work for larger $N$ - but should be fine for $N=8$.
Edit: corregido un signo de error error tipográfico en la eq. (24) y el equivalente de error en el código de python.
[1] el Conteo se Ejecuta de unos y otras en las Carreras de en Cadenas binarias, Frosso S. Makri, Zaharias M. Psillakis, Nikolaos Kollas https://file.scirp.org/pdf/OJAppS_2013011110241057.pdf
[2] En caso de éxito se ejecuta de una longitud fija en la de Bernoulli secuencias: Exacto asintótica y resultados, Frosso S. Makria, Zaharias M. Psillakis http://www.sciencedirect.com/science/article/pii/S0898122110009284