标题:无重复字符串的排列组合
只看楼主
北斗星君
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-2-10
结帖率:0
已结贴  问题点数:20 回复次数:4 
无重复字符串的排列组合
要求是从0,1,2,3,4,5,6,7,8,9,这10个字符中,每组字符随机组合长度为16位的字符串。输出的格式要求是下面的样子

????????????????-????????????????-????????????????

? 代表一个字符,中间用横杠-隔开,每组都是16位长字符串,三组字符串为一组。
要求生成批量不重复的字符串组合。
小弟头疼,没思路,求大神相助。
搜索更多相关主题的帖子: 排列组合 字符串 字符 要求 重复 
2023-02-10 15:27
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:10 
回复 楼主 北斗星君
程序代码如下:
程序代码:
# 无重复字符串的排列组合
# 要求是从0,1,2,3,4,5,6,7,8,9,这10个字符中,每组字符随机组合长度为16位的字符串。输出的格式要求是下面的样子
#
# ????????????????-????????????????-????????????????
#
# ? 代表一个字符,中间用横杠-隔开,每组都是16位长字符串,三组字符串为一组。
# 要求生成批量不重复的字符串组合。
# 小弟头疼,没思路,求大神相助。

import random


my_list = []
my_list1 = []
your_list = []
your_list2 = []
your_list3 = []
k = 0

for i in range(10):
    my_list.append(input('请输入第%d个字符串:' % i))
for i in my_list:
    for j in range(len(i)):
        my_list1.append(i[j])
    # for j in range(len(my_list)):
    #     k = k + len(my_list[j])
    #     f
    # for j in range(k):
    #     pass
    # for j in my_list[i]:
    #     a = random.randint(1, 3)
    #     if a == 1:
    #         your_list.append(j)
    #     elif a == 2:
    #         your_list2.append(j)
    #     elif a == 3:
    #         your_list3.append(j)
    #     else:
    #         print('error.')
    for j in my_list1:
        a = random.randint(1, 3)
        if a == 1:
            your_list.append(j)
        elif a == 2:
            your_list2.append(j)
        elif a == 3:
            your_list3.append(j)
        else:
            print('error.')
for i in your_list:
    print(i, end = '')
print('-', end = '')
for i in your_list2:
    print(i, end = '')
print('-', end = '')
for i in your_list3:
    print(1, end = '')
print('')
print('end.')


希望对你有帮助!

会当凌绝顶,一览众山小.
2023-02-10 22:03
北斗星君
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-2-10
得分:0 
回复 2楼 东海ECS
大佬给力啊
2023-02-13 04:33
mrexcel
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:125
专家分:480
注 册:2022-11-3
得分:10 
可以用两次join函数:
from random import randint as r
for i in range(11):
    print('-'.join(list(''.join([str(r(0,9)) for k in range(16)]) for n in range(3))))


9157325456155714-1487686062824555-4882468024567072
8665919530860296-6860508424285682-4245015664192407
0274377754868771-4368866158969542-3304555799466230
2478091860486167-9743475202405944-3626086727299783
3409534936873980-8394310448994111-7037696112300426
6423734291169062-3085799956654212-5440980879978946
4865056091931302-7720478098043514-4012187231738837
1400440810459711-4306042634451008-7516036865081606
1690915494300731-1691877216749434-3238595328720368
9444898336201065-5851940415805070-6784489905487046
0591292730524435-3795360279478749-7871472793005923

16*3的随机数据,重复的概率几乎为0
2023-02-17 18:19
北斗星君
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2023-2-10
得分:0 
回复 4楼 mrexcel
大佬给力啊
2023-03-05 11:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511251-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014383 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved