- 论坛徽章:
- 769
|
本帖最后由 Herowinter 于 2016-01-20 23:08 编辑
回复 1# bmne
下面的代码会生成[a-z]仅出现一次的8位字符排列,你可以把str改成想要的字符集,比如允许
a出现2次,就放2个a, 把num改成你想要生成的数目。这个算法不能保证生成的20个8位字符串
肯定不重复。
- echo|awk 'BEGIN{char_set="abcdefghijklmnopqrstuvwxyz";num=20;srand()} {for(i=1;i<=num;i++){str=char_set;s="";for(j=1;j<=8;j++){r=int(100*rand())%length(str)+1;x=substr(str,r,1);s=s""x;sub(x,"",str)}print i": "s}}'
- 1: ksyhmocj
- 2: lwxmjgrb
- 3: iqdeukwb
- 4: yirqfptu
- 5: bqctuxeo
- 6: osrapbfg
- 7: fusekcqa
- 8: ukxdgbth
- 9: nmsadirw
- 10: jguaitzf
- 11: tahefyzl
- 12: qhwpfaut
- 13: cgyrnzqk
- 14: kfclxdgp
- 15: rhpuyjkv
- 16: uqpjlenf
- 17: ypjlebwg
- 18: ibeortxm
- 19: eihpbxgq
- 20: rpfkwolq
复制代码 |
|