Gerar sequencias de numeros  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

Olá pessoal blz?

Seguinte, eu estou querendo gerar sequencias numericas...

eu tenho 25 numeros, de 01 à 25 respectivamente, e quero gerar uma sequencia de 15 numeros, alias, todas as sequencias possíveis com esses 25 numeros, tipo assim:

1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25

dai gerar todas as sequencias possíveis só q com 15 numeros, por exemplo, dos 25 acima gerar uma sequencia assim

5 - 3 - 7 - 10 - 2 - 22 - 11 - 13 - 4 - 20 - 17 - 6 - 1 - 23 - 15 (uma sequencia com somente 15 numeros) só um exemplo...

entenderam? gerar todas as sequencias de 15 numeros possíveis com numeros de 01 à 25...

nao to conseguindo pensar em nd pra fazer isso, alguem aceita o desafio ??? hehehe

vlw pessoal t+
[MSN]
**Popeye12345**
GUJ Master

Membro desde: 30/03/2008 20:56:41
Mensagens: 1293
Offline

Velho, esse assunto é muito batido. Procura no google que lá tem a doidado. procura por Random java.

unnamed.

there are so many monkeys at guj.
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 574
Localização: Curitiba - PR
Offline

Faz algum tempo eu tive ques escrever um método que montava todas as combinações de nove números:





talvez te ajude.

fw

Sun Certified Java Programmer 5.0
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

As permutações de 15 números sem repetição a partir de um conjunto de 25 números são, se não me engano,
25! / (25 - 15)! = 4.274.473.667.143.680.000 , um número um bocadinho grande (se você gerasse um milhão dessas permutações por segundo, você levaria um pouco mais de 135 mil e 453 anos para gerar todas). Você não quer gerar só algumas delas?


This message was edited 1 time. Last update was at 02/06/2008 17:42:16

[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 574
Localização: Curitiba - PR
Offline



nem tinha parado para pensar na explosão combinatória...

vw.

Sun Certified Java Programmer 5.0
[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 574
Localização: Curitiba - PR
Offline

aff, desconsiderem este.

This message was edited 2 times. Last update was at 02/06/2008 18:07:01


Sun Certified Java Programmer 5.0
[WWW]
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

Bom, eu nunca tinha parado pra pensar nisso...

que locura thingol !!! pra ser sincero eu neim intendi essa formula que vc falou ( 25! / (25 - 15)! ) o que significa esse ! após o número?
ja que vai demorar tanto tempo assim, teremos que gerar algumas somente

Dieval Guizelini, amanha vou dar uma olhada no codigo q vc postou, por hj chega, heheheh

vlw a ajuda t+
[MSN]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 574
Localização: Curitiba - PR
Offline

Cara,

A formula que o thingol utilizou foi de arranjo.
A(n,s) = n! / (n-s)!
que serve para calcular o número de subconjuntos de s elementos que podemos produzir com um conjunto de n elementos.
O símbolo ! siginifica fatorial, ou seja:
5! = 5x4x3x2x1 = 120.

Agora que parei para ver a fórmula, não sei se neste caso não seria combinação, uma vez que não importa a ordem dos números...

fw

Sun Certified Java Programmer 5.0
[WWW]
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

afff, deveria ter esdudado mais matematica pra nao passar por essas, uiahiuhaiahiah

bom, ja que é assim, eu vou ver q q eu faço aqui, vlw pessoal pelas explicacões ai !!!
teh a próxima...
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

Bom, se você quer as combinações de 15 elementos tomados em um conjunto de 25, temos um valor bem mais razoável, que é:

25! / 15! (25 - 15)!, que é 3.268.760, um valor bem menor e mais razoável. Mas pelo exemplo que o Cleiton nos mostrou (onde os elementos estão desordenados), eu achei que fossem permutações, não combinações.
[WWW]
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

intaum...

bom, qual a diferença entre permutacoes e combinacoes?

é isso mesmo q eu quero, combinacoes de 15 numeros tomados em um (conjunto de 25, de 01 a 25 respectivamente), só q os elementos nao precisam estar ordenados, aliás, neim devem estar ordenados, como por exemplo: 1-1-1-1-1-1-1-1-1-1-1-1-1-1-1; 1-1-1-1-1-1-1-1-1-1-1-1-1-1-2; 1-1-1-1-1-1-1-1-1-1-1-1-1-1-3......, eu quero criar aleatoriamente essa sequencia se 15 numeros tomados em um conjunto de 25, ou seja, a sequencia deve estar desorndenada como eu demonstrei no primeiro post, e elas nao devem se repetir..., nao sei se fica inviavel fazer isso devido ao numero de combinacões possiveis como o thingol demonstrou acima...

espero ter explicado melhor agora

vlw pessoal t+
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

Vou dar um exemplo mais fácil. Digamos que você faça um sorteio da Mega-Sena (6 números escolhidos entre 60 números).

O que aparece no site da Caixa são os números, tais como sorteados pela ordem de sorteio - nesse caso seriam as permutações. Por exemplo, 1 2 3 4 5 6 é diferente de 3 1 4 5 6 2.

Mas quando você vai pegar seu prêmio na Caixa, você aparece com uma combinação desses números, tais como aparecem no seu canhoto do sorteio - ou seja, para receber o prêmio, tanto faz se é 1 2 3 4 5 6 quanto 3 1 4 5 6 2. Na combinação, não importa a ordem, e sim apenas os números.

As permutações de 6 elementos escolhidos entre 60 são: 60 ! / (60 - 6)! = 36.045.979.200 possibilidades. Mas as combinações são apenas
60! / 6! (60 - 6)! = 50.063.860. Isso quer dizer que você tem uma chance a cada 50.063.860 apostas de ganhar na Mega-Sena.
[WWW]
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

ah blz, entendi !!

agora eu sei o q eu quero, hahiuahiuhaa, eu quero "só" as combinações....
mas continuo sem saber como programar essa formula...
se alguem quizer me dar uma ajudinha, será muito bem vinda !!!

vlw t+
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

http://camino.rutgers.edu/ut/utsa/cs3343/lecture25.html
O algoritmo está em C mas pode ser portado para Java com muita faclidade.
[WWW]
cleiton herrmann
JavaEvangelist
[Avatar]

Membro desde: 08/06/2006 11:38:58
Mensagens: 435
Localização: Cascavel - PR
Offline

blz thingol, vou dar uma olhada e passar pra java, ou melhor, ja q eu to dando uma estudada em c de vez enquando, vou estudar o algoritmo em c mesmo...

vlw a ajuda de tds teh a próxima !!!

This message was edited 1 time. Last update was at 03/06/2008 14:40:03

[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team