【问题标题】:Get a list of combinations , where the difference is X [closed]获取组合列表,其中差异为 X [关闭]
【发布时间】:2023-03-26 15:52:01
【问题描述】:

我必须在 python 中编写代码 - 其中 :-

  • 第一步是用户输入任意10个整数(+/-)
  • 第二步是用户输入任意一个整数 - X

输出应该是 10 个整数的组合列表,其中组合的差为 X。

例如:-

1st step - User enters ( 1,2,3,4,5,6,7,8,9,10)
2nd step - User enters ('2')

Output - (3,1) , (10,8) , (6,4) etc

【问题讨论】:

  • (10,2) 是从哪里来的??
  • 抱歉打错了 - 我的意思是 (10,8)
  • 我试过了,但我做不到...我想看看怎么做,因为我有一个复杂的问题。

标签: .net


【解决方案1】:

这是一种解决方案:

>>> list = [1,2,3,4,5,6,7,8,9,10]
>>> res = [(x, y) for x in list for y in list if (x-y)==2]
>>> res
[(3, 1), (4, 2), (5, 3), (6, 4), (7, 5), (8, 6), (9, 7), (10, 8)]
>>>

【讨论】:

  • 代码应该允许用户输入数字,因为它可以是任何东西。
  • 好吧,伙计,这是主要逻辑。您现在应该已经能够从用户那里获得输入了。
  • @learncode Here 是关于输入输出的教程。
【解决方案2】:

试试这样:

>>> import itertools
>>> filter(lambda k:True if abs(k[0]-k[1])==x else False, list(itertools.combinations(range(1,a+1), x)))
[(1, 3), (2, 4), (3, 5), (4, 6), (5, 7), (6, 8), (7, 9), (8, 10)]

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    相关资源
    最近更新 更多