偶然复杂度(Accidental complexity)是指电脑软件开发过程中所引入不必要的复杂度。偶然复杂度不是待求解问题的本质,相对而言, 本质复杂度和待求解问题的本质有关,是无法避免的。偶然复杂度一般是因为选用求解问题的方法时所引入的[1]

有时偶然复杂度可以归因于像无效的规划等错误,不过有时偶然复杂度是求解问题时伴随产生的副作用。例如因为记忆体用完而产生的复杂度是一种偶然复杂度,但只要决定使用电脑求解问题,就会存在这种复杂度。

好的软件架构、设计及实现可以将偶然复杂度降到最低,过多的偶然复杂度是一个反面模式的例子。

参考资料

编辑