Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算n线节点对的组合?_Python_Python 3.x_Algorithm_Combinations - Fatal编程技术网

Python 如何计算n线节点对的组合?

Python 如何计算n线节点对的组合?,python,python-3.x,algorithm,combinations,Python,Python 3.x,Algorithm,Combinations,我有一个问题,假设我有3根电线可以连接到输入和输出节点“a”、“b”和“c”,需要计算和返回电线对的组合数 通过手动尝试解决此问题,似乎组合数只是线号的阶乘,或3,如以下示例所示: 虽然我对一种算法方法感兴趣(用Python)来解决更大的数字,但是,我的编程技能到目前为止相当糟糕 所以我尝试用输入/输出的名称初始化两个元组:(也许我应该使用集合,因为顺序不重要?) 但现在我不知道接下来会发生什么,我尝试了不同的嵌套for循环方法,但似乎无法得到正确的结果 在这种情况下,程序的输出应返回带有

我有一个问题,假设我有3根电线可以连接到输入和输出节点“a”、“b”和“c”,需要计算和返回电线对的组合数

通过手动尝试解决此问题,似乎组合数只是线号的阶乘,或3,如以下示例所示:



虽然我对一种算法方法感兴趣(用Python)来解决更大的数字,但是,我的编程技能到目前为止相当糟糕

所以我尝试用输入/输出的名称初始化两个元组:(也许我应该使用集合,因为顺序不重要?)

但现在我不知道接下来会发生什么,我尝试了不同的嵌套for循环方法,但似乎无法得到正确的结果

在这种情况下,程序的输出应返回带有组合的me列表,如下所示:

1. [['a <-> a'], ['b <-> b'], ['c <-> c']]
2. [['a <-> a'], ['b <-> c'], ['c <-> b']]
3. [['a <-> c'], ['b <-> b'], ['c <-> a']]
4. [['a <-> b'], ['b <-> a'], ['c <-> c']]
5. [['a <-> b'], ['b <-> c'], ['c <-> a']]
6. [['a <-> c'], ['b <-> a'], ['c <-> b']]
Number of combinations: 6
1。[a'],[b'],[c']
2.['a'],['bc'],['cb']]
3.[a c'],[b b'],[c a']
4.[a b'],[b a'],[c']]
5.[a b'],[b c'],[c a']]
6.[a c'],[b a'],[c b']]
组合数:6

再次感谢您,我将非常感谢您的帮助,如果这个问题很愚蠢,请原谅……

这将为您提供您期望的结果:

#!/usr/local/bin/python3

inputs = ('a', 'b', 'c')
outputs = ('a', 'b', 'c')


result = []
for l in inputs:
    for sl in outputs:
        result.append([ "{}{}{}".format(l," <-> ",sl)])
        result.append([ "{}{}{}".format(sl," <-> ",l)])

print(result)
#/usr/local/bin/python3
输入=('a','b','c')
输出=('a'、'b'、'c')
结果=[]
对于l输入:
对于sl in输出:
result.append([“{}{}{}.”格式(l,“,sl)])
result.append([“{}{}{}.format(sl,“,l)])
打印(结果)

让我知道它是否适合您。

这将为您提供您期望的结果:

#!/usr/local/bin/python3

inputs = ('a', 'b', 'c')
outputs = ('a', 'b', 'c')


result = []
for l in inputs:
    for sl in outputs:
        result.append([ "{}{}{}".format(l," <-> ",sl)])
        result.append([ "{}{}{}".format(sl," <-> ",l)])

print(result)
#/usr/local/bin/python3
输入=('a','b','c')
输出=('a'、'b'、'c')
结果=[]
对于l输入:
对于sl in输出:
result.append([“{}{}{}.”格式(l,“,sl)])
result.append([“{}{}{}.format(sl,“,l)])
打印(结果)
让我知道它是否适合你。

你想要,不要。艰苦的工作可以通过
itertools
完成;唯一要做的另一件事是输出格式

从itertools导入置换
从字符串导入ascii_小写
def导线排列(n):
如果n<0或n>len(ascii_小写):
提升值错误()
字母=ascii_小写[:n]
返回[
[“%s%s”%zip中的成对(字母,perm)]
用于排列中的排列(字母)
]
例如:

导线排列(3) [a]、[b]、[c], ['a','bc','cb'], ['ab','ba','cc'], ['ab','bc','cca'], ['ac','ba','cb'], ['AC'、'BB'、'CA'] 如果确实希望每个字符串都在其自己的列表中,请将列表中的
'%s%s'%pair
更改为
['%s%s'%pair]

如果您特别感兴趣的是
itertools.permutations
算法首先是如何生成排列的,您可以阅读文档中的。还有其他几种生成置换的标准算法,关于这些算法。

你想要的,不是。艰苦的工作可以通过
itertools
完成;唯一要做的另一件事是输出格式

从itertools导入置换
从字符串导入ascii_小写
def导线排列(n):
如果n<0或n>len(ascii_小写):
提升值错误()
字母=ascii_小写[:n]
返回[
[“%s%s”%zip中的成对(字母,perm)]
用于排列中的排列(字母)
]
例如:

导线排列(3) [a]、[b]、[c], ['a','bc','cb'], ['ab','ba','cc'], ['ab','bc','cca'], ['ac','ba','cb'], ['AC'、'BB'、'CA'] 如果确实希望每个字符串都在其自己的列表中,请将列表中的
'%s%s'%pair
更改为
['%s%s'%pair]


如果您特别感兴趣的是
itertools.permutations
算法首先是如何生成排列的,您可以阅读文档中的。还有其他几种生成置换的标准算法,关于这些算法。

您的问题并不清楚。这是你遇到麻烦的算法吗?哪种算法?您是在寻找针对特定问题(电缆撕裂?)的算法,还是想要生成组合的算法?或者,也许你知道算法并且对程序感兴趣。什么语言?pythonJavascript?你自己尝试过实现这个算法吗?请看到底是什么问题?正如@jrook所说,我们遗漏了很多信息。我们并不清楚你在问什么。这是你遇到麻烦的算法吗?哪种算法?您是在寻找针对特定问题(电缆撕裂?)的算法,还是想要生成组合的算法?或者,也许你知道算法并且对程序感兴趣。什么语言?pythonJavascript?你自己尝试过实现这个算法吗?请看到底是什么问题?正如@jrook所说,我们丢失了很多信息。