XX牛牛 发表于 2022-5-31 21:37:11

1,2,3,4能组成多少不重复的数呢?

本帖最后由 XX牛牛 于 2022-6-12 13:58 编辑

如何1,2,3,4能组成多少个不重复的数呢?打印出来每个数{:10_279:}
举个栗子:{:10_264:}
1223、3334、1233这些是不合格的。
1234、4231、2314是合格的
求助中

isdkz 发表于 2022-5-31 21:44:40

>>> from itertools import permutations
>>> len(list(permutations('1234')))
24
>>>

当初约定 发表于 2022-5-31 21:56:08

1在最高位组成:1234、1243、1324、1342、1423、1432,共6个四位数。
2、3、4在最高位也各组成6个四位数,一共有4x6=24个四位数,排列组合{:10_256:}(摘抄自百度)楼上的是用python的库计算的,也很nb

健康的西西弗斯 发表于 2022-5-31 22:15:44

本帖最后由 健康的西西弗斯 于 2022-5-31 22:19 编辑

for i1 in range(1,5):
    for i2 in range(1,5):
      for i3 in range(1,5):
            for i4 in range(1,5):
                if i1!=i2 and i1!=i3 and i1!=i4 and i2!=i3 and i2!=i4 and i3!=i4:
                  print(i1,i2,i3,i4)
结果:
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1

a=
for i1 in a:
    for i2 in a:
      for i3 in a:
            for i4 in a:
                if i1!=i2 and i1!=i3 and i1!=i4 and i2!=i3 and i2!=i4 and i3!=i4:
                  print(i1,i2,i3,i4)

森亦简 发表于 2022-6-1 00:17:34

4*3*2*1

Twilight6 发表于 2022-6-1 00:22:19



排列组合问题,四个不同的数,你可以认为有四个位置,给四个元素进行选择

选第一个位置时,四个元素都有机会进行选择,那么此时就有 4 种情况

选第二个位置时,因为第一个位置有一个元素进行选择了,所以此时只剩 3 个元素进行选择第二个位置

同理可得,选第三个位置时,只有 2 个元素可供选择

选择第四个,也就是最后一个时,只剩一个位置了

那么最终答案为: 4*3*2*1 = 24 ,有 24 种情况

XX牛牛 发表于 2022-6-1 15:26:08

健康的西西弗斯 发表于 2022-5-31 22:15
for i1 in range(1,5):
    for i2 in range(1,5):
      for i3 in range(1,5):


我出这个问题就是不写if i1!=i2 and i1!=i3 and i1!=i4 and i2!=i3 and i2!=i4 and i3!=i4:

XX牛牛 发表于 2022-6-1 15:28:08

isdkz 发表于 2022-5-31 21:44


啊这…………
再读一边题呗!~{:10_269:}

健康的西西弗斯 发表于 2022-6-1 15:38:32

XX牛牛 发表于 2022-6-1 15:26
我出这个问题就是不写if i1!=i2 and i1!=i3 and i1!=i4 and i2!=i3 and i2!=i4 and i3!=i4:

a=4
b=1
while a!=0:
    b=a*b
    a=a-1
print(b)

isdkz 发表于 2022-6-1 15:45:49

XX牛牛 发表于 2022-6-1 15:28
啊这…………
再读一边题呗!~

有什么问题吗?

健康的西西弗斯 发表于 2022-6-1 16:35:36

XX牛牛 发表于 2022-6-1 15:26
我出这个问题就是不写if i1!=i2 and i1!=i3 and i1!=i4 and i2!=i3 and i2!=i4 and i3!=i4:

a=[]
for i1 in range(1,5):
    for i2 in range(1,5):
      for i3 in range(1,5):
            for i4 in range(1,5):
                a.append()



for i in range(len(a)-1,-1,-1):
    if len(set(a))<4:
      a.remove(a)
print(len(a))

XX牛牛 发表于 2022-6-1 18:49:29

isdkz 发表于 2022-6-1 15:45
有什么问题吗?

不是让你求几个,是让你打印出来

isdkz 发表于 2022-6-1 20:18:58

XX牛牛 发表于 2022-6-1 18:49
不是让你求几个,是让你打印出来

你那里不就是问几个吗?

你就不能自己改改?

from itertools import permutations
print('\n'.join(map(lambda x: ''.join(x), permutations('1234'))))

健康的西西弗斯 发表于 2022-6-1 21:39:54

a=[]
for i1 in range(1,5):
    for i2 in range(1,5):
      for i3 in range(1,5):
            for i4 in range(1,5):
                a.append()



for i in range(len(a)-1,-1,-1):
    if len(set(a))<4:
      a.remove(a)
print(a)

iKoala2022 发表于 2022-8-8 19:51:19

就着题主的问题,如果是任意的4位数,比如,3,5,6,9 ,要得到每一位都不重复的4位数的所有组合,比如,3569,3659等,3566,5399不算,输出具体的组合如何实现呢?
求各位大大 的实现代码?
得到结果后如何验证呢?
页: [1]
查看完整版本: 1,2,3,4能组成多少不重复的数呢?