Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Micilini Roll

logica de criação de chaves

Recommended Posts

Bem pessoal eu tenho um esquema para criar chaves, estas chaves são unicas, elas possuem o seguinte formato:

# + [0-9] + [0-9] +[0-9] + [A-Z] + [A-Z] + [0-9]

#000AA0
#455RG7

Realizando os calculos ali podemos ter mais de 600 mil chaves, so que seguinte, as chaves são geradas em forma crescente ate chegar ao #999ZZ9 (que é a ultima chave), no meu caso eu pensei o seguinte:

 

#000AA0

#000AA1

#000AA2

....

#000AA9 -> Chegou ao 9 que é o ultimo agora é incrementar os 3 primeiros numeros

#001AA9

#002AA9

.....

#999AA9 -> chegou ao 999 que é o ultimo agora é incrementar uma das letras, resetar tudo e seguir

#000AB0

#000AB1

#000AB2

....

#999AB9 -> incrementa o B para C ate chegar em Z

...

#999AZ9 -> Quando chegar em Z, continua em Z mas muda a outra letra

#000BZ0

#000BZ1

....

#999ZZ9 -> Ultima chave a ser gerada

 

Olha pessoal nao sei se este metodo é o mais correto, eu so sei que deve dar mais de 600 mil chaves e menos de 700 mil, acredito que haja algo de errado na minha contagem, nao sei...o que voces acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu realizei o seguinte calculo:

# + [0-9] + [0-9] +[0-9] + [A-Z] + [A-Z] + [0-9]

#  = 1 simbolo

[0-9] = 10 numeros

​[0-9] = 10 numeros

​[0-9] = 10 numeros

[A-Z] = 26 letras

[A-Z] = 26 letras

​[0-9] = 10 numeros

Então 1 x 10 x 10 x 10 x 26 x 26 x 10 = 676000.

 

Mas aquela maneira como estou criando as chaves em ordem esta certa? Um dia na soma total vai contar 6,76m?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oh sim, esqueci de colocar mais um 0, é verdade 6 milhões de chaves, bem 6 milhões é muita coisa, nao sei se vou ter tantos usuarios assim.

 

Mas com relação aquela logica que mandei acima:

 

 

#000AA0

#000AA1

#000AA2

....

#000AA9 -> Chegou ao 9 que é o ultimo agora é incrementar os 3 primeiros numeros

#001AA9

#002AA9

.....

#999AA9 -> chegou ao 999 que é o ultimo agora é incrementar uma das letras, resetar tudo e seguir

#000AB0

#000AB1

#000AB2

....

#999AB9 -> incrementa o B para C ate chegar em Z

...

#999AZ9 -> Quando chegar em Z, continua em Z mas muda a outra letra

#000BZ0

#000BZ1

....

#999ZZ9 -> Ultima chave a ser gerada

 

Ela esta certa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não no caso ali eu disse umas 600 milhões de chave por ai, mas 6,76m ta de bom tamanho ate porque o sistema pra processar estas chaves ele reconhece 7 caracteres, e como nao sei se um dia chega a mais de 6 milhões de usuarios, então acredito eu que por enquanto esta de bom tamanho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espera ai que essa logica que propus acima é falha, o que eu tinha pensado é o seguinte:

 

#000AA0

#001AA0

#002AA0

......

#999AA0

 

Quando chegar ao 999 iremos trocar o 0 ali para 1, e refazer tudo denovo:

 

#000AA1

#001AA1

#002AA1

.....

 

Dai quando chegar em 9 como abaixo:

 

#999AA9

 

Iremos incrementar a letra ficando:

 

#000AB0

.....

#000AC0

......

#000AD0

 

E assim por diante ate chegar AZ, nisso quando chegar, iremos mudar a primeira letra ficando: BZ, CZ, DZ ate chegar em ZZ.

 

Mas se pensarmos um pouco iremos nos deparar com um pequeno problema:

 

E quando iremos ter um TG ou um BQ? Não iremos ter pois so poderemos ter deveriados de A + 26 letras e deveridados de 26 letras + Z.

 

Então como resolvemos este problema?

 

Simples: Quando chegar em AZ, nos iremos incrementar a primeira letra e resetar a segunda, exemplo:

 

AA

AB

AC

AD

....

AZ

 

BA

BB

BC

BD

 

....

 

CA

CB

CC

CD

...

 

E assim sucessivamente ate chegar em ZZ, acredito que desta forma chega aos 6 milhões sim, mas ainda nao testei e nen sequer construi o codigo rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas é assim mesmo que você estava pensando antes, não?

 

Por que não faz contagem como se fosse numérica (começando do último 'algarismo')? Ex.:

 

#000AA0

#000AA1

#000AA2

 

[...]

 

#000AB0

#000AB1

#000AB2

 

[...]*[...]

 

#000BA0

#000BA1

#000BA2

 

etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.