[off] Probabilidade

Olá,

Se possuo a seguinte sequência de caracteres:

String alpha = “ABC”;

E fosse gerar “palavras” aleatórias utilizando três letras por vez eu teria no máximo 9 palavras:

ABC
ACB
BCA
BAC
CAB
CBA

Mas caso eu fosse gerar uma sequência com 4 letras. Quais seriam a posibilidade (em quantidade)?

Alguém sabe fazer esse cálculo?

Abraços,
Hélio

Numero de Posicoes^Possibilidades

Tipo ABC.

Se tu vai ter 3 casas, e cada uma pode ser ABC, logo seria

3x3x3

Se são 3 cadas e quatro posicoes, seria

4x4x4x4.

Entendeu?

fatorial de n, sendo n o número de letras.
se não for isso é arranjo ou combinação de n letras.

Depende exatamente do que voce quer:

Se as letras podem repetir vc deve fazer o calculo como o nbluis mostrou ali em baixo. Mas se as letras nao podem ser repetidas vc devem fazer:

4x3x2x1

Na primeira casa vc pode ter as 4 opçoes, na segunda vc so pode ter mais 3 opções pq uma ja foi usada na primeira casa, e assim por adiante…

[quote=marcosbrandao]Depende exatamente do que voce quer:

Se as letras podem repetir vc deve fazer o calculo como o nbluis mostrou em cima. Mas se as letras nao podem ser repetidas vc devem fazer:

4x3x2x1

Na primeira casa vc pode ter as 4 opçoes, na segunda vc so pode ter mais 3 opções pq uma ja foi usada na primeira casa, e assim por adiante…[/quote]

[quote=heliob]E fosse gerar “palavras” aleatórias utilizando três letras por vez eu teria no máximo 9 palavras:

ABC
ACB
BCA
BAC
CAB
CBA[/quote]

Vc quis dizer 6 palavras :wink:

3! = 3 x 2 x 1 = 6

[quote=heliob]Olá,

Se possuo a seguinte sequência de caracteres:

String alpha = “ABC”;

E fosse gerar “palavras” aleatórias utilizando três letras por vez eu teria no máximo 9 palavras:

ABC
ACB
BCA
BAC
CAB
CBA

Mas caso eu fosse gerar uma sequência com 4 letras. Quais seriam a posibilidade (em quantidade)?
[/quote]

Se vc fosse gerar palavras aleatoriamente teria tb AAB , ACC , BAA etc… Nesse caso seriam mais as combinações possiveis.
Se vc quer saber apenas de quantas formas diferentes vc pode rearrajar as letras,então ai a resposta é o factorial no numero de letras (desde que elas sejam todas diferentes)… como ja foi dito. Vc quer aleatório ou não?

Você está falando de análise combinatória, matéria aprendida no segundo grau.

No caso, arranjo, permutação e combinação.

Dá uma olhada nesses links:
http://www.mundofisico.joinville.udesc.br/PreVestibular/2005-1/mod1/node59.html
http://www.numaboa.com.br/criptologia/matematica/combinatoria.php
http://www.sosmatematica.com/Anacomb.htm

Creio que seu caso seja resolvido através de arranjo, uma vez que você não quer letras se repitam.

Valew Galera.

Então pra eu calcular as possibilidades estaria certo esse algoritimo? No caso é sempre o número multiplicado por ele menos 1.

<?php function calcula($n){ if($n == 0) return $n; return $n * ($n-1) + calcula($n-1); } $resultado = calcula(29); echo $resultado; ?>

Abraços,
Hélio

[quote=heliob]Valew Galera.

Então pra eu calcular as possibilidades estaria certo esse algoritimo? No caso é sempre o número multiplicado por ele menos 1.

<?php function calcula($n){ if($n == 0) return $n; return $n * ($n-1) + calcula($n-1); } $resultado = calcula(29); echo $resultado; ?>

Abraços,
Hélio[/quote]

Esse algortimo estaria certo para calcular fatorial. Calculo de propabilidade depende do problema.
Só que esse algoritmo não consegue calcular factorial de todos os numeros (aliás, nenhum consegue).
Em java vc tem duas hipoteses 1) Usa BigInteger e consegue calcular o factorial de qq numero que a memoria da sua máquina permitir
2) simplifica o calculo de probabildiade( por exemplo uma combinação (n,K) pode ser simplifica programaticamente para calcular factoriais de numeros mais pequenos que n e k )
3) Usa 1 e 2 em conjunto.