Dada una matriz de enteros, cada elemento en la matriz se puede aumentar en un número fijo con alguna probabilidad , . Tengo que encontrar la cantidad esperada de intercambios que se realizarán para ordenar la matriz usando el ordenamiento de burbujas .N b p [ i ] 0 ≤ i < n
He intentado lo siguiente:
La probabilidad de un elemento para se puede calcular fácilmente a partir de las probabilidades dadas.i < j
Usando lo anterior, he calculado el número esperado de swaps como:
double ans = 0.0; for ( int i = 0; i < N-1; i++ ){ for ( int j = i+1; j < N; j++ ) { ans += get_prob(A[i], A[j]); // Computes the probability of A[i]>A[j] for i < j.
Básicamente llegué a esta idea porque el número esperado de intercambios se puede calcular por el número de inversiones de la matriz. Entonces, haciendo uso de la probabilidad dada, estoy calculando si un número se intercambiará con un número .A [ j ]
Tenga en cuenta que los elementos de la matriz inicial pueden estar en cualquier orden, ordenados o sin clasificar. Entonces cada número puede cambiar con cierta probabilidad. Después de esto, tengo que calcular el número esperado de intercambios.
He publicado una pregunta similar antes, pero no tenía todas las restricciones.
No obtuve ninguna pista sobre si estoy en el camino correcto o no, así que enumeré todas las restricciones aquí. Por favor, dame algunas pistas si estoy pensando en el problema de manera incorrecta.