偶然複雜度

偶然複雜度 ( Accidental complexity ) 是指電腦軟體開發過程中所引入不必要的複雜度 。 偶然複雜度不是待求解問題的本質 ， 相對而言 ， 本質複雜度和待求解問題的本質有關 ， 是無法避免的 。 偶然複雜度一般是因爲選用求解問題的方法時所引入的 。 有時偶然複雜度可以歸因於像無效的規劃等錯誤 ， 不過有時偶然複雜度是求解問題時伴隨產生的副作用 。 例如因爲記憶體用完而產生的複雜度是一種偶然複雜度 ， 但只要決定使用電腦求解問題 ， 就會有在這種複雜度 。 好的軟體架構 、 設計及實現可以將偶然複雜度降到最低 ， 過多的偶然複雜度是一個反面模式的例子 。