難怪wikipedia上的演算法看來頗複雜