一个关于排除相差情况的问题

发布于 2022-09-05 03:31:07 字数 464 浏览 8 评论 0

假设现在有数组 a = [1,2,3,4,5]
现在分别获取到 a 相差值个数为 1个,2个,3个,4个,5个 的差异数组
所以应当得到的结果是:
情况1 当与 a 相差 1 个值的的数组分别是

[2,3,4,5]    去掉1
[1,3,4,5]    去掉2
[1,2,4,5]    去掉3
[1,2,3,5]    去掉4
[1,2,3,4]    去掉5

情况2 当与 a 相差 2 个值的数组分别是

[3,4,5],[2,4,5],[2,3,5],[2,3,4] 分别排除 [1,2],[1,3],[1,4],[1,5]
...

情况3 相差3个数
依次类推

我想问的是程序如何分别获得去掉相差后的数组? 例如去掉1个数的时候该得到上面情况1中的那5种情况.
最好用python...
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幽梦紫曦~ 2022-09-12 03:31:07

这其实就是个排列组合问题,差异2个,结果就是C52个,如果允许用python标准库的话更简单了。

import itertools
def test(arr,num):
    return list(itertools.combinations(arr,len(arr)-num))
print(test([1,2,3,4,5],2))

如果不能用标准库的话可以自己写函数递归生成

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文