'국정'에 부합 되 고 일련 번호 중의 숫자 4 를 제거 하 며 일부 번호 의 생 성 방식 에 대한 특수 처리
1760 단어 생 성
기 존의 번호 생 성 은 흐름 방식 에 따라 생 성 되 며,숫자의 생 성 은 Oracle 의 seq 를 사용 합 니 다.이렇게 하면 숫자 에 숫자 4 가 들 어 가 는 것 을 피 할 수 없다.
1234,1244 등.
기 존의 seq 생 성 방식 을 수정 하지 않 기 위해 서 는 생 성 된 번 호 를 한 번 변환 하고 변환 을 통 해 그 중의 숫자 4 를 다른 숫자 로 대체 할 방법 을 강구 합 니 다.그러나 유일 성 을 확보 하기 위해 서 는 직접 교체 처 리 를 할 수 없다.
우 리 는 평소에 컴퓨터 에서 가장 흔히 볼 수 있 는 디지털 변환 을 생각 할 수 있다.컴퓨터 에 있어 모든 데 이 터 는 바 이 너 리 이다.컴퓨터 가 다른 데 이 터 를 전면적으로 바 꿀 수 있 고 데이터 에 오류 가 발생 하지 않도록 하 는 것 은 이런 방식 이 내 가 말 한 이 장면 에 응용 할 수 있다 는 것 을 의미한다.
우 리 는 4 를 제거 한 후의 모든 숫자[0-9]집합 을 사용자 정의 할 수 있 습 니 다.모든 숫자 는 이 9 개의 숫자 로 대체 할 수 있 습 니 다.그러면 우 리 는 9 진법 이 라 고 부 릅 니 다.
코드 직접 보기:
#!/usr/bin/python
# Filename:code.py
def createCode(num):
str = ["0","1","2","3","5","6","7","8","9"]
result = []
str2 =""
isRunning = True
while isRunning:
n = num%9
#print str[n],
result.append(str[n])
num = num/9
if num <=0:
isRunning = False
else:
r = result[::-1] #sort list by desc
#print r
for item in r:
str2+=item
return str2
for i in range(0,999):
f = file('list.txt','a') # append str to file
str = createCode(i)
f.write(str+"
")
f.close()
print 'DONE.'
생 성 된 숫자 예 는 다음 과 같다.
10 진법,9 진법
1 == 0
2 == 1
3 == 2
4 == 3
5 == 5
6 == 6
7 == 7
8 == 8
9 == 9
10 == 10