>  기사  >  백엔드 개발  >  100,000개의 고유한 13자리 순수 숫자 문자열을 생성하는 좋은 방법이 있습니까?

100,000개의 고유한 13자리 순수 숫자 문자열을 생성하는 좋은 방법이 있습니까?

WBOY
WBOY원래의
2016-10-11 14:23:111276검색

100,000개의 고유한 13자리 순수 숫자 문자열을 생성하는 좋은 방법이 있습니까

답글 내용:

100,000개의 고유한 13자리 순수 숫자 문자열을 생성하는 좋은 방법이 있습니까

한명씩 오세요. 13개의 0으로 시작하여 한 번에 1씩 추가하세요. . .

타임스탬프로 생성하거나 뒤에 임의의 숫자가 올 수 있습니다.

<code>package com.xtl.demo;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

/**
 * 生成20组不重复的13位数随机数
 * @author xiatianlong
 *
 * @date 2016年10月8日 上午11:44:57
 */
public class CreatRandomNumber {
    
    
    public static void main(String[] args) {
        Set<String> numberSet = new HashSet<String>();
        
        while(true){
            // 数量大于20条即结束
            if (numberSet.size()>20){
                break;
            }
            String randomNumber = createRandomNumber(13);
            numberSet.add(randomNumber);
        }
        
        for (String string : numberSet) {
            System.out.println(string);
        }
    }
    
    /**
     * 生成指定位数的随机数
     * @param length
     *             生成的位数
     * @return
     */
    public static String createRandomNumber(int length){
        String number ="";
        for (int i = 0; i<length; i++){
            int randomNumber = new Random().nextInt(10);
            number += randomNumber+"";
        }
        return number;
    }
}
</code>

성능에 대한 고려는 별로 없습니다. . .

한 방향의 모든 문자를 암호화하고 솔트를 추가하면 13비트이면 충분합니다.

Python에서 사용 가능 random.sample:

<code>random.sample(range(10**12, 10**13), 10**5)
</code>

Python2는 xrange을 사용하고, 처음부터 시작하려면 format을 사용하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.