計算機算法設計與分析(作業)

Posted 163467wyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了計算機算法設計與分析(作業)相关的知识,希望对你有一定的参考价值。

 

渐进记号

 • O:若∃?? > 0, ??0 > 0: ∀?? ≥ ??0, 0 ≤ ?? ?? ≤ ?? ⋅ ??(??),则称??(??) = ??(?? ?? )

 • Ω:若∃?? > 0, ??0 > 0: ∀?? ≥ ??0, 0 ≤ ?? ⋅ ??(??) ≤ ?? ?? ,则称?? ?? = Ω(?? ?? )

    • ?:若?? ?? = ??(?? ?? )且?? ?? = Ω(?? ?? ),则称?? ?? = ?(?? ?? )

    • o:若∀?? > 0, ∃??0> 0: ∀?? ≥ ??0, 0 ≤ ?? ?? < ?? ⋅ ??(??),则称??(??) = ??(?? ?? )

    • ω:若∀?? > 0, ∃??0> 0: ∀?? ≥ ??0, 0 ≤ ?? ⋅ ?? ?? < ?? ?? ,则称?? ?? = ω(?? ?? )

 

統計 1~n 的頁碼中 0~9數字出現次數

 1 ~ 1eX  0~9的出現次數都爲  (X-1)*1e(X-2)

#include<bits/stdc++.h>

using namespace std;
#define ll long long

#define _for(i,a,b) for(int i = (a); i < (b); i++)
#define _rep(i,a,b) for(int i = (a); i <= (b); i++)

int main(){
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int n; 
    while(cin >> n){// 例如 2143
        int x = ceil(log10(n+1));// 防止尾數為 1 死循環
        int cnt[10] = {};
        _for(i,0,x){
            int r = ceil(log10(n+1));// 如上
            int k = n/pow(10, r-1);
            _for(j,0,10) cnt[j] += k*(r-1)*pow(10, r-2);// 記錄小於 000~999 的 0~9 的出現次數
            _for(j,0,k)  cnt[j] += (int)pow(10, r-1);// 記錄 整數  0XXX 1XXX 的 0 與 1 的出現次數
            cnt[k] += n%(int)pow(10, r-1)+1;// 記錄 2XXX 的 2 出現次數
            n %= (int)pow(10, r-1); // 如法炮製  143 43 3  
        }
        _for(i,0,x) cnt[0] -= pow(10, i);
        _for(i,0,10) cout << cnt[i] << endl;
    }
    return 0;
}

 

以上是关于計算機算法設計與分析(作業)的主要内容,如果未能解决你的问题,请参考以下文章

計算機的組成及其功能

IT行业-计算机基础知识总结

VR廣告設計與商業

計算機的啟動

計算機架構圖

AHCI vs NVMe