猿问

精美的Python代码用于整数分区

我试图编写代码来解决标准的整数分区问题(Wikipedia)。我写的代码一团糟。我需要一个优雅的解决方案来解决该问题,因为我想改善自己的编码风格。这不是作业问题。


HUWWW
浏览 669回答 3
3回答

慕哥9229398

虽然这个答案很好,但我还是建议以下skovorodkin的答案:>>> def partition(number):...     answer = set()...     answer.add((number, ))...     for x in range(1, number):...         for y in partition(number - x):...             answer.add(tuple(sorted((x, ) + y)))...     return answer... >>> partition(4)set([(1, 3), (2, 2), (1, 1, 2), (1, 1, 1, 1), (4,)])如果要所有排列(即(1,3)和(3,1))更改answer.add(tuple(sorted((x, ) + y))为answer.add((x, ) + y)
随时随地看视频慕课网APP
我要回答