int findSwaps( int n, int a[] )
{
int count = 0, i, j, temp, b[100000];
for( i = 0; i < n; i++ ) {
b[i] = a[i];
}
for( i = 0; i < n; i++ ) {
for( j = 0; j < n - 1; j++ ) {
if( b[j] > b[j+1] ) {
temp = b[j];
b[j] = b[j+1];
b[j+1] = temp;
count++;
}
}
}
return count;
}本題請你計算對於不同的陣列大小n,陣列元素交換次數的期望值為何(即count的期望值)?也就是說,當陣列大小為 n,且陣列元素a[]分別為1~n的值之隨機分佈時,若呼叫findSwaps()無限多次,則count的平均值應為多少?Input
輸入的第一個整數為T( <= 1000)表示測試資料的組數,接下來有T列,每列為一個整數 n (1 <= n <= 100000)。Output
請對每個 n 之值輸出count的期望值為何,若非整數請輸出最簡分數,輸出格式請參考範例資料。Sample Input
2 1 2
Sample Output
Case 1: 0 Case 2: 1/2
原文出處
沒有留言:
張貼留言