为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2019-10-09 15:12:23
我试图编写代码来解决标准的整数分区问题(Wikipedia)。我写的代码一团糟。我需要一个优雅的解决方案来解决该问题,因为我想改善自己的编码风格。这不是作业问题。
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

虽然这个答案很好,但我还是建议以下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)


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 668 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信