1. 程式人生 > >The Blog Of Tianalangz

The Blog Of Tianalangz

作為聚合分析的一個例子,我們來看一個k位二進位制計數器遞增問題,計數器是的初值為0.我們用一個位數組A[0,,,K-1]作為計數器,其中K=A.length,當計數器儲存的二進位制值為x時,x的最低位儲存在A[0]中,而最高位儲存在A[k-1]中,

廢話了這麼多,

## 程式碼 ##
#include <iostream>
using namespace std;
void count(int a[], int n)
{
    int i = 0;
    while(i < n && a[i] == 1)
    {
        a[i] = 0;
        i++;
    }
    if
(i < n) { a[i] = 1; } } /*測試程式*/ int main(int argc, char const *argv[]) { int array[6] = {0, 0,0, 0, 0, 0}; for(int i = 0; i <= 21; i++) { count(array, 6); } for(int i = 5; i >= 0; i--) { cout << array[i] << " "; } return
0; }
## 這個圖是我看了一個下午才理解其中的含義 ##

你能說說最後的總代價是怎麼來的嗎?最後又是怎麼攤還分析的嗎?