1,2,3,4能组成多少不重复的数呢?
本帖最后由 XX牛牛 于 2022-6-12 13:58 编辑如何1,2,3,4能组成多少个不重复的数呢?打印出来每个数{:10_279:}
举个栗子:{:10_264:}
1223、3334、1233这些是不合格的。
1234、4231、2314是合格的
求助中
>>> from itertools import permutations
>>> len(list(permutations('1234')))
24
>>> 1在最高位组成:1234、1243、1324、1342、1423、1432,共6个四位数。
2、3、4在最高位也各组成6个四位数,一共有4x6=24个四位数,排列组合{:10_256:}(摘抄自百度)楼上的是用python的库计算的,也很nb 本帖最后由 健康的西西弗斯 于 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) 4*3*2*1
排列组合问题,四个不同的数,你可以认为有四个位置,给四个元素进行选择
选第一个位置时,四个元素都有机会进行选择,那么此时就有 4 种情况
选第二个位置时,因为第一个位置有一个元素进行选择了,所以此时只剩 3 个元素进行选择第二个位置
同理可得,选第三个位置时,只有 2 个元素可供选择
选择第四个,也就是最后一个时,只剩一个位置了
那么最终答案为: 4*3*2*1 = 24 ,有 24 种情况
健康的西西弗斯 发表于 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: isdkz 发表于 2022-5-31 21:44
啊这…………
再读一边题呗!~{:10_269:} 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) XX牛牛 发表于 2022-6-1 15:28
啊这…………
再读一边题呗!~
有什么问题吗? 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))
isdkz 发表于 2022-6-1 15:45
有什么问题吗?
不是让你求几个,是让你打印出来 XX牛牛 发表于 2022-6-1 18:49
不是让你求几个,是让你打印出来
你那里不就是问几个吗?
你就不能自己改改?
from itertools import permutations
print('\n'.join(map(lambda x: ''.join(x), permutations('1234')))) 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)
就着题主的问题,如果是任意的4位数,比如,3,5,6,9 ,要得到每一位都不重复的4位数的所有组合,比如,3569,3659等,3566,5399不算,输出具体的组合如何实现呢?
求各位大大 的实现代码?
得到结果后如何验证呢?
页:
[1]